Back to OIM Explorer

QER.CompositionApi.Server.PlugIn/QER.CompositionApi.Delegation/GlobalDelegationApi.cs

Decompiler Source FileQER.CompositionApi.Server.PlugIn.GlobalDelegationApiDecompiled Source

1 extracted method/event/call references in GlobalDelegationApi.

Source: F:\Claude\.tmp\oim-decompiled-full\0990_One_Identity_Manager_QER.CompositionApi.Server.PlugIn.dll\QER.CompositionApi.Delegation\GlobalDelegationApi.cs

Source size: 29.439 characters

Interpretation

  • Decompiled source file. Use method/event registrations and call-site extraction to connect back to DialogMethod, QBMEvent, and API layers.

Relations

  • CallFunctionAsync: UniversalSubstitute at line 192

Typed Edges

  • No typed edges extracted for this source.

References

  • No direct source references extracted.

Referenced By

  • No direct source references extracted.

C# source-derived context

Generated by pattern extraction from the decompiled C# source and decompile index. This is factual source evidence, not inferred behavior.

reads entity values references DB/Dialog objects

Summary: classes GlobalDelegationApi, FkWhereClauseContext, _003C_003Ec__DisplayClass0_0; methods MoveNext, SetStateMachine, _003CBuild_003Eb__0, Build, CheckPersonIsValidAsync, GetCountRolesOwnedAsync; references DelegableItem, Delegation, OrgRoot, Person; markers reads entity values, references DB/Dialog objects

Classes

GlobalDelegationApi FkWhereClauseContext _003C_003Ec__DisplayClass0_0

DB/Dialog object references

OIM key/entity markers

UID_PersonSender UID_PersonReceiver UID_OrgRoot UID_Person UID_Org

API/entity calls

TryResult GetValue User StartUnitOfWork From Source SqlFormatter GetValue

Registrations / handlers

None extracted.

Complete Source

C#683 lines
1using System;2using System.Collections;3using System.Collections.Generic;4using System.Diagnostics;5using System.Runtime.CompilerServices;6using System.Runtime.InteropServices;7using System.Threading;8using System.Threading.Tasks;9using System.Web;10using QBM.CompositionApi.Crud;11using QBM.CompositionApi.DataSources;12using QBM.CompositionApi.Definition;13using QBM.CompositionApi.Handling;14using QER.CompositionApi.Portal;15using VI.Base;16using VI.DB;17using VI.DB.Entities;1819namespace QER.CompositionApi.Delegation;2021public class GlobalDelegationApi : IApiProviderFor<PortalApiProject>, IApiProvider22{23	private class FkWhereClauseContext : IFkWhereClauseContext24	{25		public IEntity Entity => null;2627		[field: CompilerGenerated]28		public IRequest Request29		{30			[CompilerGenerated]31			get;32		}3334		public string ParentTableName => "Person";3536		public IServerProperty ChildColumn => null;3738		public FkWhereClauseContext(IRequest request)39		{40			Request = request;41		}42	}4344	[CompilerGenerated]45	private sealed class _003C_003Ec__DisplayClass0_046	{47		[StructLayout((LayoutKind)3)]48		private struct _003C_003CBuild_003Eb__0_003Ed : IAsyncStateMachine49		{50			public int _003C_003E1__state;5152			public AsyncTaskMethodBuilder _003C_003Et__builder;5354			public GlobalDelegationInput input;5556			public IRequest request;5758			public _003C_003Ec__DisplayClass0_0 _003C_003E4__this;5960			public CancellationToken ct;6162			private TryResult<IEntity> _003CtryPersonFrom_003E5__2;6364			private IEntity _003CpersonFrom_003E5__3;6566			private ConfiguredTaskAwaiter<TryResult<IEntity>> _003C_003Eu__1;6768			private IUnitOfWork _003Cu_003E5__4;6970			private ConfiguredValueTaskAwaiter<object> _003C_003Eu__2;7172			private ConfiguredTaskAwaiter _003C_003Eu__3;7374			private void MoveNext()75			{76				//IL_00c1: Unknown result type (might be due to invalid IL or missing references)77				//IL_00c6: Unknown result type (might be due to invalid IL or missing references)78				//IL_00ce: Unknown result type (might be due to invalid IL or missing references)79				//IL_0171: Unknown result type (might be due to invalid IL or missing references)80				//IL_0176: Unknown result type (might be due to invalid IL or missing references)81				//IL_017e: Unknown result type (might be due to invalid IL or missing references)82				//IL_0128: Unknown result type (might be due to invalid IL or missing references)83				//IL_0133: Unknown result type (might be due to invalid IL or missing references)84				//IL_0138: Unknown result type (might be due to invalid IL or missing references)85				//IL_013c: Unknown result type (might be due to invalid IL or missing references)86				//IL_0141: Unknown result type (might be due to invalid IL or missing references)87				//IL_0324: Unknown result type (might be due to invalid IL or missing references)88				//IL_0329: Unknown result type (might be due to invalid IL or missing references)89				//IL_0331: Unknown result type (might be due to invalid IL or missing references)90				//IL_039e: Unknown result type (might be due to invalid IL or missing references)91				//IL_03a3: Unknown result type (might be due to invalid IL or missing references)92				//IL_03ab: Unknown result type (might be due to invalid IL or missing references)93				//IL_0411: Unknown result type (might be due to invalid IL or missing references)94				//IL_0416: Unknown result type (might be due to invalid IL or missing references)95				//IL_041e: Unknown result type (might be due to invalid IL or missing references)96				//IL_0078: Unknown result type (might be due to invalid IL or missing references)97				//IL_0083: Unknown result type (might be due to invalid IL or missing references)98				//IL_0088: Unknown result type (might be due to invalid IL or missing references)99				//IL_008c: Unknown result type (might be due to invalid IL or missing references)100				//IL_0091: Unknown result type (might be due to invalid IL or missing references)101				//IL_0156: Unknown result type (might be due to invalid IL or missing references)102				//IL_0158: Unknown result type (might be due to invalid IL or missing references)103				//IL_0355: Unknown result type (might be due to invalid IL or missing references)104				//IL_0360: Unknown result type (might be due to invalid IL or missing references)105				//IL_0365: Unknown result type (might be due to invalid IL or missing references)106				//IL_0369: Unknown result type (might be due to invalid IL or missing references)107				//IL_036e: Unknown result type (might be due to invalid IL or missing references)108				//IL_03c8: Unknown result type (might be due to invalid IL or missing references)109				//IL_03d3: Unknown result type (might be due to invalid IL or missing references)110				//IL_03d8: Unknown result type (might be due to invalid IL or missing references)111				//IL_03dc: Unknown result type (might be due to invalid IL or missing references)112				//IL_03e1: Unknown result type (might be due to invalid IL or missing references)113				//IL_02d7: Unknown result type (might be due to invalid IL or missing references)114				//IL_02e6: Unknown result type (might be due to invalid IL or missing references)115				//IL_02eb: Unknown result type (might be due to invalid IL or missing references)116				//IL_02ef: Unknown result type (might be due to invalid IL or missing references)117				//IL_02f4: Unknown result type (might be due to invalid IL or missing references)118				//IL_00a6: Unknown result type (might be due to invalid IL or missing references)119				//IL_00a8: Unknown result type (might be due to invalid IL or missing references)120				//IL_0383: Unknown result type (might be due to invalid IL or missing references)121				//IL_0385: Unknown result type (might be due to invalid IL or missing references)122				//IL_03f6: Unknown result type (might be due to invalid IL or missing references)123				//IL_03f8: Unknown result type (might be due to invalid IL or missing references)124				//IL_0309: Unknown result type (might be due to invalid IL or missing references)125				//IL_030b: Unknown result type (might be due to invalid IL or missing references)126				int num = _003C_003E1__state;127				_003C_003Ec__DisplayClass0_0 _003C_003Ec__DisplayClass0_ = _003C_003E4__this;128				try129				{130					ConfiguredTaskAwaiter<TryResult<IEntity>> val;131					TryResult<IEntity> result;132					string text = default(string);133					switch (num)134					{135					default:136						val = CheckPersonIsValidAsync(new DbObjectKey("Person", string.IsNullOrEmpty(input.UidPersonFrom) ? request.Session.User().Uid : input.UidPersonFrom), _003C_003Ec__DisplayClass0_.modifierService, request, "UID_PersonSender", ct).ConfigureAwait(false).GetAwaiter();137						if (!val.IsCompleted)138						{139							num = (_003C_003E1__state = 0);140							_003C_003Eu__1 = val;141							((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<TryResult<IEntity>>, _003C_003CBuild_003Eb__0_003Ed>(ref val, ref this);142							return;143						}144						goto IL_00dd;145					case 0:146						val = _003C_003Eu__1;147						_003C_003Eu__1 = default(ConfiguredTaskAwaiter<TryResult<IEntity>>);148						num = (_003C_003E1__state = -1);149						goto IL_00dd;150					case 1:151						val = _003C_003Eu__1;152						_003C_003Eu__1 = default(ConfiguredTaskAwaiter<TryResult<IEntity>>);153						num = (_003C_003E1__state = -1);154						goto IL_018d;155					case 2:156					case 3:157					case 4:158						break;159						IL_00dd:160						result = val.GetResult();161						_003CtryPersonFrom_003E5__2 = result;162						if (!string.IsNullOrEmpty(input.UidPersonTo))163						{164							val = CheckPersonIsValidAsync(new DbObjectKey("Person", input.UidPersonTo), _003C_003Ec__DisplayClass0_.modifierService, request, "UID_PersonReceiver", ct).ConfigureAwait(false).GetAwaiter();165							if (!val.IsCompleted)166							{167								num = (_003C_003E1__state = 1);168								_003C_003Eu__1 = val;169								((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<TryResult<IEntity>>, _003C_003CBuild_003Eb__0_003Ed>(ref val, ref this);170								return;171							}172							goto IL_018d;173						}174						goto IL_0195;175						IL_018d:176						val.GetResult();177						goto IL_0195;178						IL_0195:179						_003CpersonFrom_003E5__3 = _003CtryPersonFrom_003E5__2.Result;180						text = ((input.UidOrgRoot != null) ? ((object)new MultiValueProperty(input.UidOrgRoot)).ToString() : null);181						_003Cu_003E5__4 = request.Session.StartUnitOfWork();182						break;183					}184					try185					{186						ConfiguredValueTaskAwaiter<object> val3;187						ConfiguredTaskAwaiter val2;188						ConfiguredTaskAwaitable val4;189						switch (num)190						{191						default:192							val3 = _003CpersonFrom_003E5__3.CallFunctionAsync("UniversalSubstitute", new object[12]193							{194								input.UidPersonTo,195								input.ValidFrom.GetValueOrDefault(),196								input.ValidUntil,197								input.UseForShop,198								input.UseForShopCompliance,199								input.UseForAttestation,200								input.KeepMeInformed,201								input.UseForHeadPerson,202								input.UseForHeadOrg,203								text,204								null,205								input.OrderReason ?? ""206							}, ct).ConfigureAwait(false).GetAwaiter();207							if (!val3.IsCompleted)208							{209								num = (_003C_003E1__state = 2);210								_003C_003Eu__2 = val3;211								((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).AwaitUnsafeOnCompleted<ConfiguredValueTaskAwaiter<object>, _003C_003CBuild_003Eb__0_003Ed>(ref val3, ref this);212								return;213							}214							goto IL_0340;215						case 2:216							val3 = _003C_003Eu__2;217							_003C_003Eu__2 = default(ConfiguredValueTaskAwaiter<object>);218							num = (_003C_003E1__state = -1);219							goto IL_0340;220						case 3:221							val2 = _003C_003Eu__3;222							_003C_003Eu__3 = default(ConfiguredTaskAwaiter);223							num = (_003C_003E1__state = -1);224							goto IL_03ba;225						case 4:226							{227								val2 = _003C_003Eu__3;228								_003C_003Eu__3 = default(ConfiguredTaskAwaiter);229								num = (_003C_003E1__state = -1);230								break;231							}232							IL_0340:233							val3.GetResult();234							val4 = _003Cu_003E5__4.PutAsync(_003CpersonFrom_003E5__3, ct).ConfigureAwait(false);235							val2 = ((ConfiguredTaskAwaitable)(ref val4)).GetAwaiter();236							if (!((ConfiguredTaskAwaiter)(ref val2)).IsCompleted)237							{238								num = (_003C_003E1__state = 3);239								_003C_003Eu__3 = val2;240								((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter, _003C_003CBuild_003Eb__0_003Ed>(ref val2, ref this);241								return;242							}243							goto IL_03ba;244							IL_03ba:245							((ConfiguredTaskAwaiter)(ref val2)).GetResult();246							val4 = _003Cu_003E5__4.CommitAsync(ct).ConfigureAwait(false);247							val2 = ((ConfiguredTaskAwaitable)(ref val4)).GetAwaiter();248							if (!((ConfiguredTaskAwaiter)(ref val2)).IsCompleted)249							{250								num = (_003C_003E1__state = 4);251								_003C_003Eu__3 = val2;252								((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter, _003C_003CBuild_003Eb__0_003Ed>(ref val2, ref this);253								return;254							}255							break;256						}257						((ConfiguredTaskAwaiter)(ref val2)).GetResult();258					}259					finally260					{261						if (num < 0 && _003Cu_003E5__4 != null)262						{263							((System.IDisposable)_003Cu_003E5__4).Dispose();264						}265					}266					_003Cu_003E5__4 = null;267				}268				catch (System.Exception exception)269				{270					_003C_003E1__state = -2;271					_003CtryPersonFrom_003E5__2 = null;272					_003CpersonFrom_003E5__3 = null;273					((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetException(exception);274					return;275				}276				_003C_003E1__state = -2;277				_003CtryPersonFrom_003E5__2 = null;278				_003CpersonFrom_003E5__3 = null;279				((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetResult();280			}281282			[DebuggerHidden]283			private void SetStateMachine(IAsyncStateMachine stateMachine)284			{285				((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetStateMachine(stateMachine);286			}287		}288289		public IModifierService modifierService;290291		[AsyncStateMachine(typeof(_003C_003CBuild_003Eb__0_003Ed))]292		internal System.Threading.Tasks.Task _003CBuild_003Eb__0(GlobalDelegationInput input, IRequest request, CancellationToken ct)293		{294			//IL_0002: Unknown result type (might be due to invalid IL or missing references)295			//IL_0007: Unknown result type (might be due to invalid IL or missing references)296			//IL_0026: Unknown result type (might be due to invalid IL or missing references)297			//IL_0027: Unknown result type (might be due to invalid IL or missing references)298			_003C_003CBuild_003Eb__0_003Ed _003C_003CBuild_003Eb__0_003Ed = default(_003C_003CBuild_003Eb__0_003Ed);299			_003C_003CBuild_003Eb__0_003Ed._003C_003Et__builder = AsyncTaskMethodBuilder.Create();300			_003C_003CBuild_003Eb__0_003Ed._003C_003E4__this = this;301			_003C_003CBuild_003Eb__0_003Ed.input = input;302			_003C_003CBuild_003Eb__0_003Ed.request = request;303			_003C_003CBuild_003Eb__0_003Ed.ct = ct;304			_003C_003CBuild_003Eb__0_003Ed._003C_003E1__state = -1;305			((AsyncTaskMethodBuilder)(ref _003C_003CBuild_003Eb__0_003Ed._003C_003Et__builder)).Start<_003C_003CBuild_003Eb__0_003Ed>(ref _003C_003CBuild_003Eb__0_003Ed);306			return ((AsyncTaskMethodBuilder)(ref _003C_003CBuild_003Eb__0_003Ed._003C_003Et__builder)).Task;307		}308	}309310	[StructLayout((LayoutKind)3)]311	[CompilerGenerated]312	private struct _003CCheckPersonIsValidAsync_003Ed__1 : IAsyncStateMachine313	{314		public int _003C_003E1__state;315316		public AsyncTaskMethodBuilder<TryResult<IEntity>> _003C_003Et__builder;317318		public DbObjectKey personKey;319320		public IModifierService modifierService;321322		public string columnName;323324		public IRequest request;325326		public CancellationToken ct;327328		private Query _003Cquery_003E5__2;329330		private System.Collections.Generic.IEnumerator<IPropertyModifier> _003C_003E7__wrap2;331332		private System.Collections.Generic.IEnumerator<FkWhereClause> _003C_003E7__wrap3;333334		private System.Collections.Generic.IEnumerator<IFkWhereClauseProvider> _003C_003E7__wrap4;335336		private ConfiguredTaskAwaiter<string> _003C_003Eu__1;337338		private ConfiguredTaskAwaiter<TryResult<IEntity>> _003C_003Eu__2;339340		private void MoveNext()341		{342			//IL_023b: Unknown result type (might be due to invalid IL or missing references)343			//IL_0240: Unknown result type (might be due to invalid IL or missing references)344			//IL_0248: Unknown result type (might be due to invalid IL or missing references)345			//IL_01f2: Unknown result type (might be due to invalid IL or missing references)346			//IL_01fd: Unknown result type (might be due to invalid IL or missing references)347			//IL_0202: Unknown result type (might be due to invalid IL or missing references)348			//IL_0206: Unknown result type (might be due to invalid IL or missing references)349			//IL_020b: Unknown result type (might be due to invalid IL or missing references)350			//IL_0101: Unknown result type (might be due to invalid IL or missing references)351			//IL_0106: Unknown result type (might be due to invalid IL or missing references)352			//IL_010e: Unknown result type (might be due to invalid IL or missing references)353			//IL_0220: Unknown result type (might be due to invalid IL or missing references)354			//IL_0222: Unknown result type (might be due to invalid IL or missing references)355			//IL_00b8: Unknown result type (might be due to invalid IL or missing references)356			//IL_00c3: Unknown result type (might be due to invalid IL or missing references)357			//IL_00c8: Unknown result type (might be due to invalid IL or missing references)358			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)359			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)360			//IL_00e6: Unknown result type (might be due to invalid IL or missing references)361			//IL_00e8: Unknown result type (might be due to invalid IL or missing references)362			int num = _003C_003E1__state;363			TryResult<IEntity> result3;364			try365			{366				ConfiguredTaskAwaiter<TryResult<IEntity>> val;367				if (num != 0)368				{369					if (num == 1)370					{371						val = _003C_003Eu__2;372						_003C_003Eu__2 = default(ConfiguredTaskAwaiter<TryResult<IEntity>>);373						num = (_003C_003E1__state = -1);374						goto IL_0257;375					}376					_003Cquery_003E5__2 = Query.From(personKey).SelectAll();377					_003C_003E7__wrap2 = ((System.Collections.Generic.IEnumerable<IPropertyModifier>)modifierService.GetPropertyModifiers("Delegation", columnName)).GetEnumerator();378				}379				try380				{381					if (num == 0)382					{383						goto IL_006f;384					}385					goto IL_01a9;386					IL_01a9:387					if (((System.Collections.IEnumerator)_003C_003E7__wrap2).MoveNext())388					{389						IPropertyModifier current = _003C_003E7__wrap2.Current;390						_003C_003E7__wrap3 = current.FkWhereClauses.GetEnumerator();391						goto IL_006f;392					}393					goto end_IL_0049;394					IL_006f:395					try396					{397						if (num == 0)398						{399							goto IL_0095;400						}401						goto IL_0178;402						IL_0178:403						if (((System.Collections.IEnumerator)_003C_003E7__wrap3).MoveNext())404						{405							FkWhereClause current2 = _003C_003E7__wrap3.Current;406							_003C_003E7__wrap4 = ((System.Collections.Generic.IEnumerable<IFkWhereClauseProvider>)current2.WhereClauseProviders).GetEnumerator();407							goto IL_0095;408						}409						goto end_IL_006f;410						IL_0095:411						try412						{413							if (num != 0)414							{415								goto IL_0147;416							}417							ConfiguredTaskAwaiter<string> val2 = _003C_003Eu__1;418							_003C_003Eu__1 = default(ConfiguredTaskAwaiter<string>);419							num = (_003C_003E1__state = -1);420							goto IL_011d;421							IL_011d:422							string result = val2.GetResult();423							if (!string.IsNullOrEmpty(result))424							{425								_003Cquery_003E5__2 = _003Cquery_003E5__2.AddClause(new WhereClause(result));426							}427							goto IL_0147;428							IL_0147:429							if (((System.Collections.IEnumerator)_003C_003E7__wrap4).MoveNext())430							{431								IFkWhereClauseProvider current3 = _003C_003E7__wrap4.Current;432								FkWhereClauseContext context = new FkWhereClauseContext(request);433								val2 = current3.GetWhereClauseAsync(context, ct).ConfigureAwait(false).GetAwaiter();434								if (!val2.IsCompleted)435								{436									num = (_003C_003E1__state = 0);437									_003C_003Eu__1 = val2;438									_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<string>, _003CCheckPersonIsValidAsync_003Ed__1>(ref val2, ref this);439									return;440								}441								goto IL_011d;442							}443						}444						finally445						{446							if (num < 0 && _003C_003E7__wrap4 != null)447							{448								((System.IDisposable)_003C_003E7__wrap4).Dispose();449							}450						}451						_003C_003E7__wrap4 = null;452						goto IL_0178;453						end_IL_006f:;454					}455					finally456					{457						if (num < 0 && _003C_003E7__wrap3 != null)458						{459							((System.IDisposable)_003C_003E7__wrap3).Dispose();460						}461					}462					_003C_003E7__wrap3 = null;463					goto IL_01a9;464					end_IL_0049:;465				}466				finally467				{468					if (num < 0 && _003C_003E7__wrap2 != null)469					{470						((System.IDisposable)_003C_003E7__wrap2).Dispose();471					}472				}473				_003C_003E7__wrap2 = null;474				val = request.Session.Source().TryGetAsync(_003Cquery_003E5__2, EntityLoadType.Interactive, ct).ConfigureAwait(false)475					.GetAwaiter();476				if (!val.IsCompleted)477				{478					num = (_003C_003E1__state = 1);479					_003C_003Eu__2 = val;480					_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<TryResult<IEntity>>, _003CCheckPersonIsValidAsync_003Ed__1>(ref val, ref this);481					return;482				}483				goto IL_0257;484				IL_0257:485				TryResult<IEntity> result2 = val.GetResult();486				if (!result2.Success)487				{488					throw new HttpException(400, "You cannot create delegations for this identity.");489				}490				result3 = result2;491			}492			catch (System.Exception exception)493			{494				_003C_003E1__state = -2;495				_003Cquery_003E5__2 = default(Query);496				_003C_003Et__builder.SetException(exception);497				return;498			}499			_003C_003E1__state = -2;500			_003Cquery_003E5__2 = default(Query);501			_003C_003Et__builder.SetResult(result3);502		}503504		[DebuggerHidden]505		private void SetStateMachine(IAsyncStateMachine stateMachine)506		{507			_003C_003Et__builder.SetStateMachine(stateMachine);508		}509	}510511	[StructLayout((LayoutKind)3)]512	[CompilerGenerated]513	private struct _003CGetCountRolesOwnedAsync_003Ed__2 : IAsyncStateMachine514	{515		public int _003C_003E1__state;516517		public AsyncTaskMethodBuilder<int> _003C_003Et__builder;518519		public IPropertyValueContext cx;520521		public CancellationToken ct;522523		private ConfiguredTaskAwaiter<int> _003C_003Eu__1;524525		private void MoveNext()526		{527			//IL_0127: Unknown result type (might be due to invalid IL or missing references)528			//IL_012c: Unknown result type (might be due to invalid IL or missing references)529			//IL_0134: Unknown result type (might be due to invalid IL or missing references)530			//IL_00e1: Unknown result type (might be due to invalid IL or missing references)531			//IL_00ec: Unknown result type (might be due to invalid IL or missing references)532			//IL_00f1: Unknown result type (might be due to invalid IL or missing references)533			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)534			//IL_00fa: Unknown result type (might be due to invalid IL or missing references)535			//IL_010f: Unknown result type (might be due to invalid IL or missing references)536			//IL_0111: Unknown result type (might be due to invalid IL or missing references)537			int num = _003C_003E1__state;538			int result;539			try540			{541				ConfiguredTaskAwaiter<int> val;542				if (num != 0)543				{544					string value = cx.Request.Parameters.Get<string>("uidperson");545					ISqlFormatter sqlFormatter = cx.Request.Session.SqlFormatter();546					string text = sqlFormatter.UidComparison("UID_OrgRoot", cx.Entity.GetValue("UID_OrgRoot"));547					string whereClause = sqlFormatter.AndRelation(sqlFormatter.UidComparison("Criteria", "HeadStructure"), sqlFormatter.UidComparison("UID_Person", value), "UID_Org in (select UID_Org from basetree where " + text + ")");548					Query query = Query.From("DelegableItem").SelectCount().Where(whereClause);549					val = cx.Request.Session.Source().GetCountAsync(query, ct).ConfigureAwait(false)550						.GetAwaiter();551					if (!val.IsCompleted)552					{553						num = (_003C_003E1__state = 0);554						_003C_003Eu__1 = val;555						_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<int>, _003CGetCountRolesOwnedAsync_003Ed__2>(ref val, ref this);556						return;557					}558				}559				else560				{561					val = _003C_003Eu__1;562					_003C_003Eu__1 = default(ConfiguredTaskAwaiter<int>);563					num = (_003C_003E1__state = -1);564				}565				result = val.GetResult();566			}567			catch (System.Exception exception)568			{569				_003C_003E1__state = -2;570				_003C_003Et__builder.SetException(exception);571				return;572			}573			_003C_003E1__state = -2;574			_003C_003Et__builder.SetResult(result);575		}576577		[DebuggerHidden]578		private void SetStateMachine(IAsyncStateMachine stateMachine)579		{580			_003C_003Et__builder.SetStateMachine(stateMachine);581		}582	}583584	public void Build(IApiBuilder builder)585	{586		_003C_003Ec__DisplayClass0_0 CS_0024_003C_003E8__locals2 = new _003C_003Ec__DisplayClass0_0();587		CS_0024_003C_003E8__locals2.modifierService = builder.Resolver.Resolve<IModifierService>();588		builder.AddMethod(Method.Define("delegations/global/{uidperson}/roleclasses").FromTable("OrgRoot").WithDescription("Returns the role classes along with the number of roles that the specified identity is an owner of.")589			.WithParameter("uidperson", typeof(string), "Unique identity identifier", null, null, isInQuery: false)590			.EnableRead()591			.WithCalculatedProperties(new CalculatedProperty<int>("CountRolesOwned", (Func<IPropertyValueContext, CancellationToken, System.Threading.Tasks.Task<int>>)GetCountRolesOwnedAsync, isReadOnly: true)));592		builder.AddMethod(Method.Define("delegations/global").Handle<GlobalDelegationInput>("POST", (Func<GlobalDelegationInput, IRequest, CancellationToken, System.Threading.Tasks.Task>)([AsyncStateMachine(typeof(_003C_003Ec__DisplayClass0_0._003C_003CBuild_003Eb__0_003Ed))] (GlobalDelegationInput input, IRequest request, CancellationToken ct) =>593		{594			//IL_0002: Unknown result type (might be due to invalid IL or missing references)595			//IL_0007: Unknown result type (might be due to invalid IL or missing references)596			//IL_0026: Unknown result type (might be due to invalid IL or missing references)597			//IL_0027: Unknown result type (might be due to invalid IL or missing references)598			_003C_003Ec__DisplayClass0_0._003C_003CBuild_003Eb__0_003Ed _003C_003CBuild_003Eb__0_003Ed = default(_003C_003Ec__DisplayClass0_0._003C_003CBuild_003Eb__0_003Ed);599			_003C_003CBuild_003Eb__0_003Ed._003C_003Et__builder = AsyncTaskMethodBuilder.Create();600			_003C_003CBuild_003Eb__0_003Ed._003C_003E4__this = CS_0024_003C_003E8__locals2;601			_003C_003CBuild_003Eb__0_003Ed.input = input;602			_003C_003CBuild_003Eb__0_003Ed.request = request;603			_003C_003CBuild_003Eb__0_003Ed.ct = ct;604			_003C_003CBuild_003Eb__0_003Ed._003C_003E1__state = -1;605			((AsyncTaskMethodBuilder)(ref _003C_003CBuild_003Eb__0_003Ed._003C_003Et__builder)).Start<_003C_003Ec__DisplayClass0_0._003C_003CBuild_003Eb__0_003Ed>(ref _003C_003CBuild_003Eb__0_003Ed);606			return ((AsyncTaskMethodBuilder)(ref _003C_003CBuild_003Eb__0_003Ed._003C_003Et__builder)).Task;607		})));608	}609610	[AsyncStateMachine(typeof(_003CCheckPersonIsValidAsync_003Ed__1))]611	private static async System.Threading.Tasks.Task<TryResult<IEntity>> CheckPersonIsValidAsync(DbObjectKey personKey, IModifierService modifierService, IRequest request, string columnName, CancellationToken ct)612	{613		//IL_0002: Unknown result type (might be due to invalid IL or missing references)614		//IL_0007: Unknown result type (might be due to invalid IL or missing references)615		//IL_002e: Unknown result type (might be due to invalid IL or missing references)616		//IL_0030: Unknown result type (might be due to invalid IL or missing references)617		Query query = Query.From(personKey).SelectAll();618		System.Collections.Generic.IEnumerator<IPropertyModifier> enumerator = ((System.Collections.Generic.IEnumerable<IPropertyModifier>)modifierService.GetPropertyModifiers("Delegation", columnName)).GetEnumerator();619		try620		{621			while (((System.Collections.IEnumerator)enumerator).MoveNext())622			{623				IPropertyModifier current = enumerator.Current;624				System.Collections.Generic.IEnumerator<FkWhereClause> enumerator2 = current.FkWhereClauses.GetEnumerator();625				try626				{627					while (((System.Collections.IEnumerator)enumerator2).MoveNext())628					{629						FkWhereClause current2 = enumerator2.Current;630						System.Collections.Generic.IEnumerator<IFkWhereClauseProvider> enumerator3 = ((System.Collections.Generic.IEnumerable<IFkWhereClauseProvider>)current2.WhereClauseProviders).GetEnumerator();631						try632						{633							while (((System.Collections.IEnumerator)enumerator3).MoveNext())634							{635								IFkWhereClauseProvider current3 = enumerator3.Current;636								FkWhereClauseContext context = new FkWhereClauseContext(request);637								string text = await current3.GetWhereClauseAsync(context, ct).ConfigureAwait(false);638								if (!string.IsNullOrEmpty(text))639								{640									query = query.AddClause(new WhereClause(text));641								}642							}643						}644						finally645						{646							((System.IDisposable)enumerator3)?.Dispose();647						}648					}649				}650				finally651				{652					((System.IDisposable)enumerator2)?.Dispose();653				}654			}655		}656		finally657		{658			((System.IDisposable)enumerator)?.Dispose();659		}660		TryResult<IEntity> obj = await request.Session.Source().TryGetAsync(query, EntityLoadType.Interactive, ct).ConfigureAwait(false);661		if (!obj.Success)662		{663			throw new HttpException(400, "You cannot create delegations for this identity.");664		}665		return obj;666	}667668	[AsyncStateMachine(typeof(_003CGetCountRolesOwnedAsync_003Ed__2))]669	private static async System.Threading.Tasks.Task<int> GetCountRolesOwnedAsync(IPropertyValueContext cx, CancellationToken ct)670	{671		//IL_0002: Unknown result type (might be due to invalid IL or missing references)672		//IL_0007: Unknown result type (might be due to invalid IL or missing references)673		//IL_0016: Unknown result type (might be due to invalid IL or missing references)674		//IL_0017: Unknown result type (might be due to invalid IL or missing references)675		string value = cx.Request.Parameters.Get<string>("uidperson");676		ISqlFormatter sqlFormatter = cx.Request.Session.SqlFormatter();677		string text = sqlFormatter.UidComparison("UID_OrgRoot", cx.Entity.GetValue("UID_OrgRoot"));678		string whereClause = sqlFormatter.AndRelation(sqlFormatter.UidComparison("Criteria", "HeadStructure"), sqlFormatter.UidComparison("UID_Person", value), "UID_Org in (select UID_Org from basetree where " + text + ")");679		Query query = Query.From("DelegableItem").SelectCount().Where(whereClause);680		return await cx.Request.Session.Source().GetCountAsync(query, ct).ConfigureAwait(false);681	}682}683