DPR.Customizer/DPR.Customizer/ProjectorReadEntityLogic.cs
Decompiler Source FileDPR.Customizer.ProjectorReadEntityLogicDecompiled Source
Interpretation
- Decompiled source file. Use method/event registrations and call-site extraction to connect back to DialogMethod, QBMEvent, and API layers.
Relations
- Method registration: Read at line 627
Typed Edges
- No typed edges extracted for this source.
References
- No direct source references extracted.
Referenced By
- No direct source references extracted.
Complete Source
1using System;2using System.Collections;3using System.Collections.Generic;4using System.Data;5using System.Data.Common;6using System.Diagnostics;7using System.Runtime.CompilerServices;8using System.Runtime.InteropServices;9using System.Threading;10using System.Threading.Tasks;11using VI.Base;12using VI.DB;13using VI.DB.DataAccess;14using VI.DB.Entities;15using VI.DB.MetaData;16using VI.Projector.Database;1718namespace DPR.Customizer;1920public class ProjectorReadEntityLogic : StateBasedEntityLogic21{22 [CompilerGenerated]23 private sealed class _003C_003Ec__DisplayClass2_024 {25 public ISession session;2627 public CancellationToken ct;2829 internal Dictionary<string, List<string>> _003CIsReadAvailable_003Eb__0()30 {31 //IL_0007: Unknown result type (might be due to invalid IL or missing references)32 return DPRNameSpaceHasDialogTableFactory(session, ct).Result;33 }34 }3536 [StructLayout((LayoutKind)3)]37 [CompilerGenerated]38 private struct _003CDPRNameSpaceHasDialogTableFactory_003Ed__3 : IAsyncStateMachine39 {40 public int _003C_003E1__state;4142 public AsyncTaskMethodBuilder<Dictionary<string, List<string>>> _003C_003Et__builder;4344 public ISession session;4546 public CancellationToken ct;4748 private string _003CstrSql_003E5__2;4950 private IDbSession _003CdbSession_003E5__3;5152 private Dictionary<string, List<string>> _003CdicData_003E5__4;5354 private ConfiguredTaskAwaiter _003C_003Eu__1;5556 private ConfiguredTaskAwaiter<DbDataReader> _003C_003Eu__2;5758 private void MoveNext()59 {60 //IL_00b0: Unknown result type (might be due to invalid IL or missing references)61 //IL_00b5: Unknown result type (might be due to invalid IL or missing references)62 //IL_00bc: Unknown result type (might be due to invalid IL or missing references)63 //IL_00ea: Unknown result type (might be due to invalid IL or missing references)64 //IL_00f5: Unknown result type (might be due to invalid IL or missing references)65 //IL_00fa: Unknown result type (might be due to invalid IL or missing references)66 //IL_00fe: Unknown result type (might be due to invalid IL or missing references)67 //IL_0103: Unknown result type (might be due to invalid IL or missing references)68 //IL_0133: Unknown result type (might be due to invalid IL or missing references)69 //IL_0138: Unknown result type (might be due to invalid IL or missing references)70 //IL_0140: Unknown result type (might be due to invalid IL or missing references)71 //IL_004c: Unknown result type (might be due to invalid IL or missing references)72 //IL_0075: Unknown result type (might be due to invalid IL or missing references)73 //IL_007a: Unknown result type (might be due to invalid IL or missing references)74 //IL_007d: Unknown result type (might be due to invalid IL or missing references)75 //IL_0082: Unknown result type (might be due to invalid IL or missing references)76 //IL_0118: Unknown result type (might be due to invalid IL or missing references)77 //IL_011a: Unknown result type (might be due to invalid IL or missing references)78 //IL_0096: Unknown result type (might be due to invalid IL or missing references)79 //IL_0097: Unknown result type (might be due to invalid IL or missing references)80 int num = _003C_003E1__state;81 Dictionary<string, List<string>> result;82 try83 {84 ConfiguredTaskAwaiter<DbDataReader> val;85 ConfiguredTaskAwaiter val3;86 if (num != 0)87 {88 if (num == 1)89 {90 val = _003C_003Eu__2;91 _003C_003Eu__2 = default(ConfiguredTaskAwaiter<DbDataReader>);92 num = (_003C_003E1__state = -1);93 goto IL_014f;94 }95 _003CstrSql_003E5__2 = SqlStrings.GetString(session.Database().SystemIdentifier, "ProjectorReadEntityLogic");96 _003CdbSession_003E5__3 = session.Resolve<IDbSession>();97 ConfiguredTaskAwaitable val2 = _003CdbSession_003E5__3.InitTablesAsync(ct, "QBMEvent", "DialogTable", "DPRNameSpaceHasDialogTable").ConfigureAwait(false);98 val3 = ((ConfiguredTaskAwaitable)(ref val2)).GetAwaiter();99 if (!((ConfiguredTaskAwaiter)(ref val3)).IsCompleted)100 {101 num = (_003C_003E1__state = 0);102 _003C_003Eu__1 = val3;103 _003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter, _003CDPRNameSpaceHasDialogTableFactory_003Ed__3>(ref val3, ref this);104 return;105 }106 }107 else108 {109 val3 = _003C_003Eu__1;110 _003C_003Eu__1 = default(ConfiguredTaskAwaiter);111 num = (_003C_003E1__state = -1);112 }113 ((ConfiguredTaskAwaiter)(ref val3)).GetResult();114 _003CdicData_003E5__4 = new Dictionary<string, List<string>>();115 val = _003CdbSession_003E5__3.SqlExecuteAsync(_003CstrSql_003E5__2, ct).ConfigureAwait(false).GetAwaiter();116 if (!val.IsCompleted)117 {118 num = (_003C_003E1__state = 1);119 _003C_003Eu__2 = val;120 _003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<DbDataReader>, _003CDPRNameSpaceHasDialogTableFactory_003Ed__3>(ref val, ref this);121 return;122 }123 goto IL_014f;124 IL_014f:125 IDataReader val4 = (IDataReader)(object)new CachedDataReader((IDataReader)(object)val.GetResult());126 try127 {128 while (val4.Read())129 {130 ((IDictionary<string, List<string>>)(object)_003CdicData_003E5__4).GetOrAdd<string, List<string>>(((IDataRecord)val4).GetString(0), (string k) => new List<string>()).Add(((IDataRecord)val4).GetString(1));131 }132 }133 finally134 {135 if (num < 0)136 {137 ((System.IDisposable)val4)?.Dispose();138 }139 }140 result = _003CdicData_003E5__4;141 }142 catch (System.Exception exception)143 {144 _003C_003E1__state = -2;145 _003CstrSql_003E5__2 = null;146 _003CdbSession_003E5__3 = null;147 _003CdicData_003E5__4 = null;148 _003C_003Et__builder.SetException(exception);149 return;150 }151 _003C_003E1__state = -2;152 _003CstrSql_003E5__2 = null;153 _003CdbSession_003E5__3 = null;154 _003CdicData_003E5__4 = null;155 _003C_003Et__builder.SetResult(result);156 }157158 [DebuggerHidden]159 private void SetStateMachine(IAsyncStateMachine stateMachine)160 {161 _003C_003Et__builder.SetStateMachine(stateMachine);162 }163 }164165 [StructLayout((LayoutKind)3)]166 [CompilerGenerated]167 private struct _003CIsReadAvailable_003Ed__2 : IAsyncStateMachine168 {169 public int _003C_003E1__state;170171 public AsyncTaskMethodBuilder<bool> _003C_003Et__builder;172173 public ISession session;174175 public CancellationToken ct;176177 public IEntity entity;178179 public IEntityWalker walker;180181 private _003C_003Ec__DisplayClass2_0 _003C_003E8__1;182183 private List<string> _003ClRootObjects_003E5__2;184185 private Enumerator<string> _003C_003E7__wrap2;186187 private ConfiguredValueTaskAwaiter<string> _003C_003Eu__1;188189 private ConfiguredTaskAwaiter<bool> _003C_003Eu__2;190191 private void MoveNext()192 {193 //IL_0246: Unknown result type (might be due to invalid IL or missing references)194 //IL_024b: Unknown result type (might be due to invalid IL or missing references)195 //IL_0253: Unknown result type (might be due to invalid IL or missing references)196 //IL_0037: Unknown result type (might be due to invalid IL or missing references)197 //IL_003c: Unknown result type (might be due to invalid IL or missing references)198 //IL_0160: Unknown result type (might be due to invalid IL or missing references)199 //IL_0165: Unknown result type (might be due to invalid IL or missing references)200 //IL_016d: Unknown result type (might be due to invalid IL or missing references)201 //IL_00d5: Unknown result type (might be due to invalid IL or missing references)202 //IL_00da: Unknown result type (might be due to invalid IL or missing references)203 //IL_0113: Unknown result type (might be due to invalid IL or missing references)204 //IL_0122: Unknown result type (might be due to invalid IL or missing references)205 //IL_0127: Unknown result type (might be due to invalid IL or missing references)206 //IL_012b: Unknown result type (might be due to invalid IL or missing references)207 //IL_0130: Unknown result type (might be due to invalid IL or missing references)208 //IL_01c9: Unknown result type (might be due to invalid IL or missing references)209 //IL_0145: Unknown result type (might be due to invalid IL or missing references)210 //IL_0147: Unknown result type (might be due to invalid IL or missing references)211 //IL_0200: Unknown result type (might be due to invalid IL or missing references)212 //IL_020b: Unknown result type (might be due to invalid IL or missing references)213 //IL_0210: Unknown result type (might be due to invalid IL or missing references)214 //IL_0214: Unknown result type (might be due to invalid IL or missing references)215 //IL_0219: Unknown result type (might be due to invalid IL or missing references)216 //IL_022e: Unknown result type (might be due to invalid IL or missing references)217 //IL_0230: Unknown result type (might be due to invalid IL or missing references)218 int num = _003C_003E1__state;219 bool result;220 try221 {222 if (num == 0)223 {224 goto IL_00e0;225 }226 ConfiguredTaskAwaiter<bool> val;227 if (num == 1)228 {229 val = _003C_003Eu__2;230 _003C_003Eu__2 = default(ConfiguredTaskAwaiter<bool>);231 num = (_003C_003E1__state = -1);232 goto IL_0262;233 }234 _003C_003E8__1 = new _003C_003Ec__DisplayClass2_0();235 _003C_003E8__1.session = session;236 _003C_003E8__1.ct = ct;237 if (_003C_003E8__1.session.IsFullSync())238 {239 result = false;240 }241 else if (((System.Enum)entity.State).HasFlag((System.Enum)EntityState.LogicInitialize))242 {243 result = false;244 }245 else246 {247 List<string> val2 = default(List<string>);248 if (ProjectorConfigurationService.Get(_003C_003E8__1.session).Get<Dictionary<string, List<string>>>("DPRNameSpaceHasDialogTable", () => DPRNameSpaceHasDialogTableFactory(_003C_003E8__1.session, _003C_003E8__1.ct).Result).TryGetValue(entity.Tablename, ref val2))249 {250 _003ClRootObjects_003E5__2 = new List<string>();251 _003C_003E7__wrap2 = val2.GetEnumerator();252 goto IL_00e0;253 }254 result = false;255 }256 goto end_IL_0007;257 IL_00e0:258 try259 {260 if (num != 0)261 {262 goto IL_019b;263 }264 ConfiguredValueTaskAwaiter<string> val3 = _003C_003Eu__1;265 _003C_003Eu__1 = default(ConfiguredValueTaskAwaiter<string>);266 num = (_003C_003E1__state = -1);267 goto IL_017c;268 IL_0185:269 string text;270 if (!string.IsNullOrEmpty(text))271 {272 _003ClRootObjects_003E5__2.Add(text);273 }274 goto IL_019b;275 IL_019b:276 if (_003C_003E7__wrap2.MoveNext())277 {278 string current = _003C_003E7__wrap2.Current;279 if (current.StartsWith("<Key>"))280 {281 text = current;282 goto IL_0185;283 }284 val3 = walker.GetValueAsync<string>(current, _003C_003E8__1.ct).ConfigureAwait(false).GetAwaiter();285 if (!val3.IsCompleted)286 {287 num = (_003C_003E1__state = 0);288 _003C_003Eu__1 = val3;289 _003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredValueTaskAwaiter<string>, _003CIsReadAvailable_003Ed__2>(ref val3, ref this);290 return;291 }292 goto IL_017c;293 }294 goto end_IL_00e0;295 IL_017c:296 text = val3.GetResult();297 goto IL_0185;298 end_IL_00e0:;299 }300 finally301 {302 if (num < 0)303 {304 ((System.IDisposable)_003C_003E7__wrap2/*cast due to .constrained prefix*/).Dispose();305 }306 }307 _003C_003E7__wrap2 = default(Enumerator<string>);308 if (_003ClRootObjects_003E5__2.Count != 0)309 {310 val = SyncRootsHasRead(_003C_003E8__1.session, entity, _003ClRootObjects_003E5__2, _003C_003E8__1.ct).ConfigureAwait(false).GetAwaiter();311 if (!val.IsCompleted)312 {313 num = (_003C_003E1__state = 1);314 _003C_003Eu__2 = val;315 _003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<bool>, _003CIsReadAvailable_003Ed__2>(ref val, ref this);316 return;317 }318 goto IL_0262;319 }320 result = false;321 goto end_IL_0007;322 IL_0262:323 result = val.GetResult();324 end_IL_0007:;325 }326 catch (System.Exception exception)327 {328 _003C_003E1__state = -2;329 _003C_003E8__1 = null;330 _003ClRootObjects_003E5__2 = null;331 _003C_003Et__builder.SetException(exception);332 return;333 }334 _003C_003E1__state = -2;335 _003C_003E8__1 = null;336 _003ClRootObjects_003E5__2 = null;337 _003C_003Et__builder.SetResult(result);338 }339340 [DebuggerHidden]341 private void SetStateMachine(IAsyncStateMachine stateMachine)342 {343 _003C_003Et__builder.SetStateMachine(stateMachine);344 }345 }346347 [StructLayout((LayoutKind)3)]348 [CompilerGenerated]349 private struct _003CSyncRootsHasRead_003Ed__4 : IAsyncStateMachine350 {351 public int _003C_003E1__state;352353 public AsyncTaskMethodBuilder<bool> _003C_003Et__builder;354355 public ISession session;356357 public IEntity baseEntity;358359 public CancellationToken ct;360361 public List<string> rootObjectKeys;362363 private IDbSession _003CdbSession_003E5__2;364365 private ISqlFormatter _003CfSql_003E5__3;366367 private IMetaTable _003CmetaTable_003E5__4;368369 private ConfiguredTaskAwaiter<IMetaTable> _003C_003Eu__1;370371 private ConfiguredTaskAwaiter _003C_003Eu__2;372373 private ConfiguredTaskAwaiter<object> _003C_003Eu__3;374375 private void MoveNext()376 {377 //IL_009b: Unknown result type (might be due to invalid IL or missing references)378 //IL_00a0: Unknown result type (might be due to invalid IL or missing references)379 //IL_00a8: Unknown result type (might be due to invalid IL or missing references)380 //IL_012e: Unknown result type (might be due to invalid IL or missing references)381 //IL_0133: Unknown result type (might be due to invalid IL or missing references)382 //IL_013b: Unknown result type (might be due to invalid IL or missing references)383 //IL_0213: Unknown result type (might be due to invalid IL or missing references)384 //IL_0218: Unknown result type (might be due to invalid IL or missing references)385 //IL_0220: Unknown result type (might be due to invalid IL or missing references)386 //IL_0052: Unknown result type (might be due to invalid IL or missing references)387 //IL_005d: Unknown result type (might be due to invalid IL or missing references)388 //IL_0062: Unknown result type (might be due to invalid IL or missing references)389 //IL_0066: Unknown result type (might be due to invalid IL or missing references)390 //IL_006b: Unknown result type (might be due to invalid IL or missing references)391 //IL_00cf: Unknown result type (might be due to invalid IL or missing references)392 //IL_00f0: Unknown result type (might be due to invalid IL or missing references)393 //IL_00f5: Unknown result type (might be due to invalid IL or missing references)394 //IL_00f9: Unknown result type (might be due to invalid IL or missing references)395 //IL_00fe: Unknown result type (might be due to invalid IL or missing references)396 //IL_01ca: Unknown result type (might be due to invalid IL or missing references)397 //IL_01d5: Unknown result type (might be due to invalid IL or missing references)398 //IL_01da: Unknown result type (might be due to invalid IL or missing references)399 //IL_01de: Unknown result type (might be due to invalid IL or missing references)400 //IL_01e3: Unknown result type (might be due to invalid IL or missing references)401 //IL_0080: Unknown result type (might be due to invalid IL or missing references)402 //IL_0082: Unknown result type (might be due to invalid IL or missing references)403 //IL_0113: Unknown result type (might be due to invalid IL or missing references)404 //IL_0115: Unknown result type (might be due to invalid IL or missing references)405 //IL_01f8: Unknown result type (might be due to invalid IL or missing references)406 //IL_01fa: Unknown result type (might be due to invalid IL or missing references)407 int num = _003C_003E1__state;408 bool result2;409 try410 {411 ConfiguredTaskAwaiter<IMetaTable> val3;412 ConfiguredTaskAwaiter val2;413 ConfiguredTaskAwaiter<object> val;414 string systemIdentifier;415 global::_003C_003Ey__InlineArray2<object> buffer;416 string sqlStatement;417 IMetaTable result;418 ConfiguredTaskAwaitable val4;419 switch (num)420 {421 default:422 _003CdbSession_003E5__2 = session.Resolve<IDbSession>();423 _003CfSql_003E5__3 = _003CdbSession_003E5__2.SqlFormatter;424 val3 = session.MetaData().GetTableAsync(baseEntity.Tablename, ct).ConfigureAwait(false)425 .GetAwaiter();426 if (!val3.IsCompleted)427 {428 num = (_003C_003E1__state = 0);429 _003C_003Eu__1 = val3;430 _003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<IMetaTable>, _003CSyncRootsHasRead_003Ed__4>(ref val3, ref this);431 return;432 }433 goto IL_00b7;434 case 0:435 val3 = _003C_003Eu__1;436 _003C_003Eu__1 = default(ConfiguredTaskAwaiter<IMetaTable>);437 num = (_003C_003E1__state = -1);438 goto IL_00b7;439 case 1:440 val2 = _003C_003Eu__2;441 _003C_003Eu__2 = default(ConfiguredTaskAwaiter);442 num = (_003C_003E1__state = -1);443 goto IL_014a;444 case 2:445 {446 val = _003C_003Eu__3;447 _003C_003Eu__3 = default(ConfiguredTaskAwaiter<object>);448 num = (_003C_003E1__state = -1);449 break;450 }451 IL_014a:452 ((ConfiguredTaskAwaiter)(ref val2)).GetResult();453 systemIdentifier = session.Database().SystemIdentifier;454 buffer = default(global::_003C_003Ey__InlineArray2<object>);455 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray2<object>, object>(ref buffer, 0) = _003CfSql_003E5__3.InClause("ci.ObjectKeyRoot", ValType.String, FormatterOptions.NonUnicodeLiterals, (System.Collections.IEnumerable)rootObjectKeys);456 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray2<object>, object>(ref buffer, 1) = _003CfSql_003E5__3.UidComparison("oo.UID_DialogTable", _003CmetaTable_003E5__4.Uid);457 sqlStatement = SqlStrings.Format(systemIdentifier, "ProjectorReadEntityLogic_HasRead", global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<global::_003C_003Ey__InlineArray2<object>, object>(in buffer, 2));458 val = _003CdbSession_003E5__2.SqlExecuteScalarAsync(sqlStatement, ct).ConfigureAwait(false).GetAwaiter();459 if (!val.IsCompleted)460 {461 num = (_003C_003E1__state = 2);462 _003C_003Eu__3 = val;463 _003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<object>, _003CSyncRootsHasRead_003Ed__4>(ref val, ref this);464 return;465 }466 break;467 IL_00b7:468 result = val3.GetResult();469 _003CmetaTable_003E5__4 = result;470 val4 = _003CdbSession_003E5__2.InitTablesAsync(ct, "DPRObjectOperation", "DPRRootObjConnectionInfo").ConfigureAwait(false);471 val2 = ((ConfiguredTaskAwaitable)(ref val4)).GetAwaiter();472 if (!((ConfiguredTaskAwaiter)(ref val2)).IsCompleted)473 {474 num = (_003C_003E1__state = 1);475 _003C_003Eu__2 = val2;476 _003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter, _003CSyncRootsHasRead_003Ed__4>(ref val2, ref this);477 return;478 }479 goto IL_014a;480 }481 result2 = DbVal.ConvertTo<bool>(val.GetResult());482 }483 catch (System.Exception exception)484 {485 _003C_003E1__state = -2;486 _003CdbSession_003E5__2 = null;487 _003CfSql_003E5__3 = null;488 _003CmetaTable_003E5__4 = null;489 _003C_003Et__builder.SetException(exception);490 return;491 }492 _003C_003E1__state = -2;493 _003CdbSession_003E5__2 = null;494 _003CfSql_003E5__3 = null;495 _003CmetaTable_003E5__4 = null;496 _003C_003Et__builder.SetResult(result2);497 }498499 [DebuggerHidden]500 private void SetStateMachine(IAsyncStateMachine stateMachine)501 {502 _003C_003Et__builder.SetStateMachine(stateMachine);503 }504 }505506 [StructLayout((LayoutKind)3)]507 [CompilerGenerated]508 private struct _003C_FireReadEvent_003Ed__1 : IAsyncStateMachine509 {510 public int _003C_003E1__state;511512 public AsyncTaskMethodBuilder _003C_003Et__builder;513514 public ISession session;515516 public IEntity entity;517518 public CancellationToken ct;519520 private IUnitOfWork _003CuoWork_003E5__2;521522 private ConfiguredTaskAwaiter _003C_003Eu__1;523524 private void MoveNext()525 {526 //IL_0081: Unknown result type (might be due to invalid IL or missing references)527 //IL_0086: Unknown result type (might be due to invalid IL or missing references)528 //IL_008d: Unknown result type (might be due to invalid IL or missing references)529 //IL_00aa: Unknown result type (might be due to invalid IL or missing references)530 //IL_00b5: Unknown result type (might be due to invalid IL or missing references)531 //IL_00ba: Unknown result type (might be due to invalid IL or missing references)532 //IL_00bd: Unknown result type (might be due to invalid IL or missing references)533 //IL_00c2: Unknown result type (might be due to invalid IL or missing references)534 //IL_00ed: Unknown result type (might be due to invalid IL or missing references)535 //IL_00f2: Unknown result type (might be due to invalid IL or missing references)536 //IL_00f9: Unknown result type (might be due to invalid IL or missing references)537 //IL_003b: Unknown result type (might be due to invalid IL or missing references)538 //IL_0046: Unknown result type (might be due to invalid IL or missing references)539 //IL_004b: Unknown result type (might be due to invalid IL or missing references)540 //IL_004e: Unknown result type (might be due to invalid IL or missing references)541 //IL_0053: Unknown result type (might be due to invalid IL or missing references)542 //IL_00d6: Unknown result type (might be due to invalid IL or missing references)543 //IL_00d7: Unknown result type (might be due to invalid IL or missing references)544 //IL_0067: Unknown result type (might be due to invalid IL or missing references)545 //IL_0068: Unknown result type (might be due to invalid IL or missing references)546 int num = _003C_003E1__state;547 try548 {549 if ((uint)num > 1u)550 {551 _003CuoWork_003E5__2 = session.StartUnitOfWork();552 }553 try554 {555 ConfiguredTaskAwaiter val;556 ConfiguredTaskAwaitable val2;557 if (num != 0)558 {559 if (num == 1)560 {561 val = _003C_003Eu__1;562 _003C_003Eu__1 = default(ConfiguredTaskAwaiter);563 num = (_003C_003E1__state = -1);564 goto IL_0108;565 }566 val2 = _003CuoWork_003E5__2.GenerateAsync(entity, "Read", null, ct).ConfigureAwait(false);567 val = ((ConfiguredTaskAwaitable)(ref val2)).GetAwaiter();568 if (!((ConfiguredTaskAwaiter)(ref val)).IsCompleted)569 {570 num = (_003C_003E1__state = 0);571 _003C_003Eu__1 = val;572 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter, _003C_FireReadEvent_003Ed__1>(ref val, ref this);573 return;574 }575 }576 else577 {578 val = _003C_003Eu__1;579 _003C_003Eu__1 = default(ConfiguredTaskAwaiter);580 num = (_003C_003E1__state = -1);581 }582 ((ConfiguredTaskAwaiter)(ref val)).GetResult();583 val2 = _003CuoWork_003E5__2.CommitAsync(ct).ConfigureAwait(false);584 val = ((ConfiguredTaskAwaitable)(ref val2)).GetAwaiter();585 if (!((ConfiguredTaskAwaiter)(ref val)).IsCompleted)586 {587 num = (_003C_003E1__state = 1);588 _003C_003Eu__1 = val;589 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter, _003C_FireReadEvent_003Ed__1>(ref val, ref this);590 return;591 }592 goto IL_0108;593 IL_0108:594 ((ConfiguredTaskAwaiter)(ref val)).GetResult();595 }596 finally597 {598 if (num < 0 && _003CuoWork_003E5__2 != null)599 {600 ((System.IDisposable)_003CuoWork_003E5__2).Dispose();601 }602 }603 _003CuoWork_003E5__2 = null;604 }605 catch (System.Exception exception)606 {607 _003C_003E1__state = -2;608 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetException(exception);609 return;610 }611 _003C_003E1__state = -2;612 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetResult();613 }614615 [DebuggerHidden]616 private void SetStateMachine(IAsyncStateMachine stateMachine)617 {618 ((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetStateMachine(stateMachine);619 }620 }621622 public ProjectorReadEntityLogic()623 {624 RegisterExpensive("_ReadAvailable").As<bool>((Func<ISession, IEntity, IEntityWalker, CancellationToken, System.Threading.Tasks.Task<bool>>)IsReadAvailable);625 using (base.Section.Except("SPECIAL(IsFullSync)"))626 {627 RegisterMethod("Read").As(_FireReadEvent).IsDisplayMethod("Method_ProjectorReadEntityLogic_Read").Enabled()628 .From("_ReadAvailable")629 .As<bool>((Func<bool, bool>)((bool b) => b))630 .Visible()631 .From("_ReadAvailable")632 .As<bool>((Func<bool, bool>)((bool b) => b))633 .Description("Method_ProjectorReadEntityLogic_Read_Description");634 }635 }636637 [AsyncStateMachine(typeof(_003C_FireReadEvent_003Ed__1))]638 private System.Threading.Tasks.Task _FireReadEvent(ISession session, IEntity entity, CancellationToken ct)639 {640 //IL_0002: Unknown result type (might be due to invalid IL or missing references)641 //IL_0007: Unknown result type (might be due to invalid IL or missing references)642 //IL_001e: Unknown result type (might be due to invalid IL or missing references)643 //IL_001f: Unknown result type (might be due to invalid IL or missing references)644 _003C_FireReadEvent_003Ed__1 _003C_FireReadEvent_003Ed__ = default(_003C_FireReadEvent_003Ed__1);645 _003C_FireReadEvent_003Ed__._003C_003Et__builder = AsyncTaskMethodBuilder.Create();646 _003C_FireReadEvent_003Ed__.session = session;647 _003C_FireReadEvent_003Ed__.entity = entity;648 _003C_FireReadEvent_003Ed__.ct = ct;649 _003C_FireReadEvent_003Ed__._003C_003E1__state = -1;650 ((AsyncTaskMethodBuilder)(ref _003C_FireReadEvent_003Ed__._003C_003Et__builder)).Start<_003C_FireReadEvent_003Ed__1>(ref _003C_FireReadEvent_003Ed__);651 return ((AsyncTaskMethodBuilder)(ref _003C_FireReadEvent_003Ed__._003C_003Et__builder)).Task;652 }653654 [AsyncStateMachine(typeof(_003CIsReadAvailable_003Ed__2))]655 public static async System.Threading.Tasks.Task<bool> IsReadAvailable(ISession session, IEntity entity, IEntityWalker walker, CancellationToken ct)656 {657 //IL_0002: Unknown result type (might be due to invalid IL or missing references)658 //IL_0007: Unknown result type (might be due to invalid IL or missing references)659 //IL_0026: Unknown result type (might be due to invalid IL or missing references)660 //IL_0027: Unknown result type (might be due to invalid IL or missing references)661 if (session.IsFullSync())662 {663 return false;664 }665 if (((System.Enum)entity.State).HasFlag((System.Enum)EntityState.LogicInitialize))666 {667 return false;668 }669 List<string> val = default(List<string>);670 if (!ProjectorConfigurationService.Get(session).Get<Dictionary<string, List<string>>>("DPRNameSpaceHasDialogTable", () => DPRNameSpaceHasDialogTableFactory(session, ct).Result).TryGetValue(entity.Tablename, ref val))671 {672 return false;673 }674 List<string> lRootObjects = new List<string>();675 Enumerator<string> enumerator = val.GetEnumerator();676 try677 {678 while (enumerator.MoveNext())679 {680 string current = enumerator.Current;681 string text = ((!current.StartsWith("<Key>")) ? (await walker.GetValueAsync<string>(current, ct).ConfigureAwait(false)) : current);682 if (!string.IsNullOrEmpty(text))683 {684 lRootObjects.Add(text);685 }686 }687 }688 finally689 {690 ((System.IDisposable)enumerator/*cast due to .constrained prefix*/).Dispose();691 }692 if (lRootObjects.Count == 0)693 {694 return false;695 }696 return await SyncRootsHasRead(session, entity, lRootObjects, ct).ConfigureAwait(false);697 }698699 [AsyncStateMachine(typeof(_003CDPRNameSpaceHasDialogTableFactory_003Ed__3))]700 private static async System.Threading.Tasks.Task<Dictionary<string, List<string>>> DPRNameSpaceHasDialogTableFactory(ISession session, CancellationToken ct)701 {702 //IL_0002: Unknown result type (might be due to invalid IL or missing references)703 //IL_0007: Unknown result type (might be due to invalid IL or missing references)704 //IL_0016: Unknown result type (might be due to invalid IL or missing references)705 //IL_0017: Unknown result type (might be due to invalid IL or missing references)706 string strSql = SqlStrings.GetString(session.Database().SystemIdentifier, "ProjectorReadEntityLogic");707 IDbSession dbSession = session.Resolve<IDbSession>();708 await dbSession.InitTablesAsync(ct, "QBMEvent", "DialogTable", "DPRNameSpaceHasDialogTable").ConfigureAwait(false);709 Dictionary<string, List<string>> dicData = new Dictionary<string, List<string>>();710 IDataReader val = (IDataReader)(object)new CachedDataReader((IDataReader)(object)(await dbSession.SqlExecuteAsync(strSql, ct).ConfigureAwait(false)));711 try712 {713 while (val.Read())714 {715 ((IDictionary<string, List<string>>)(object)dicData).GetOrAdd<string, List<string>>(((IDataRecord)val).GetString(0), (string k) => new List<string>()).Add(((IDataRecord)val).GetString(1));716 }717 return dicData;718 }719 finally720 {721 ((System.IDisposable)val)?.Dispose();722 }723 }724725 [AsyncStateMachine(typeof(_003CSyncRootsHasRead_003Ed__4))]726 private static async System.Threading.Tasks.Task<bool> SyncRootsHasRead(ISession session, IEntity baseEntity, List<string> rootObjectKeys, CancellationToken ct)727 {728 //IL_0002: Unknown result type (might be due to invalid IL or missing references)729 //IL_0007: Unknown result type (might be due to invalid IL or missing references)730 //IL_0026: Unknown result type (might be due to invalid IL or missing references)731 //IL_0027: Unknown result type (might be due to invalid IL or missing references)732 IDbSession dbSession = session.Resolve<IDbSession>();733 ISqlFormatter fSql = dbSession.SqlFormatter;734 IMetaTable metaTable = await session.MetaData().GetTableAsync(baseEntity.Tablename, ct).ConfigureAwait(false);735 await dbSession.InitTablesAsync(ct, "DPRObjectOperation", "DPRRootObjConnectionInfo").ConfigureAwait(false);736 string systemIdentifier = session.Database().SystemIdentifier;737 global::_003C_003Ey__InlineArray2<object> buffer = default(global::_003C_003Ey__InlineArray2<object>);738 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray2<object>, object>(ref buffer, 0) = fSql.InClause("ci.ObjectKeyRoot", ValType.String, FormatterOptions.NonUnicodeLiterals, (System.Collections.IEnumerable)rootObjectKeys);739 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray2<object>, object>(ref buffer, 1) = fSql.UidComparison("oo.UID_DialogTable", metaTable.Uid);740 string sqlStatement = SqlStrings.Format(systemIdentifier, "ProjectorReadEntityLogic_HasRead", global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<global::_003C_003Ey__InlineArray2<object>, object>(in buffer, 2));741 return DbVal.ConvertTo<bool>(await dbSession.SqlExecuteScalarAsync(sqlStatement, ct).ConfigureAwait(false));742 }743}744