QER.CompositionApi.Server.PlugIn/QER.CompositionApi.Delegation/GlobalDelegationApi.cs
Decompiler Source FileQER.CompositionApi.Server.PlugIn.GlobalDelegationApiDecompiled Source
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_0Methods
DB/Dialog object references
OIM key/entity markers
UID_PersonSender UID_PersonReceiver UID_OrgRoot UID_Person UID_OrgAPI/entity calls
TryResult GetValue User StartUnitOfWork From Source SqlFormatter GetValueRegistrations / handlers
None extracted.
Complete Source
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