Back to OIM Explorer

DPR.Customizer/DPR.Customizer/ProjectorReadEntityLogic.cs

Decompiler Source FileDPR.Customizer.ProjectorReadEntityLogicDecompiled Source

1 extracted method/event/call references in ProjectorReadEntityLogic.

Source: F:\Claude\.tmp\oim-decompiled-full\0375_One_Identity_Manager_DPR.Customizer.dll\DPR.Customizer\ProjectorReadEntityLogic.cs

Source size: 31.371 characters

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

C#744 lines
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