Back to OIM Explorer

Common.Customizer/VI.Common.Customizer/DialogTag.cs

Decompiler Source FileCommon.Customizer.DialogTagDecompiled Source

1 extracted method/event/call references in DialogTag.

Source: F:\Claude\.tmp\oim-decompiled-full\0045_One_Identity_Manager_Common.Customizer.dll\VI.Common.Customizer\DialogTag.cs

Source size: 22.095 characters

Interpretation

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

Relations

  • Function registration: IsChangeTable at line 429

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 DialogTag, _003C_003Ec__DisplayClass1_0, _003C_003Ec__DisplayClass1_1; methods _003C_CheckTagTypeHierarchy_003Eb__0, _003C_CheckTagTypeHierarchy_003Eb__1, MoveNext, SetStateMachine, _CheckTagTypeHierarchy, OnSavingAsync; references DialogTag, DialogTaggedItem; markers reads entity values, references DB/Dialog objects

Classes

DialogTag _003C_003Ec__DisplayClass1_0 _003C_003Ec__DisplayClass1_1

DB/Dialog object references

OIM key/entity markers

UID_DialogTag UID_DialogTagParent

API/entity calls

ExistsAsync GetValueAsync GetValue Source SqlFormatter From

Registrations / handlers

None extracted.

Complete Source

C#512 lines
1using System;2using System.Diagnostics;3using System.Runtime.CompilerServices;4using System.Runtime.InteropServices;5using System.Threading;6using System.Threading.Tasks;7using VI.Base;8using VI.DB;9using VI.DB.Entities;10using VI.DB.MetaData;11using VI.DB.Sync;1213namespace VI.Common.Customizer;1415public class DialogTag : StateLessEntityLogic16{17	[CompilerGenerated]18	private sealed class _003C_003Ec__DisplayClass1_019	{20		public string uidParent;2122		internal ExpressionClause _003C_CheckTagTypeHierarchy_003Eb__0(IExpressionContext c)23		{24			return c.Column("UID_DialogTag") == uidParent;25		}26	}2728	[CompilerGenerated]29	private sealed class _003C_003Ec__DisplayClass1_130	{31		public string uidDialogTag;3233		internal ExpressionClause _003C_CheckTagTypeHierarchy_003Eb__1(IExpressionContext c)34		{35			return c.Column("UID_DialogTagParent") == uidDialogTag;36		}37	}3839	[StructLayout((LayoutKind)3)]40	[CompilerGenerated]41	private struct _003COnSavingAsync_003Ed__2 : IAsyncStateMachine42	{43		public int _003C_003E1__state;4445		public AsyncTaskMethodBuilder<Diff> _003C_003Et__builder;4647		public IEntity entity;4849		public CancellationToken ct;5051		public LogicReadWriteParameters parameters;5253		public DialogTag _003C_003E4__this;5455		private IEntityColumn _003CtypeColumn_003E5__2;5657		private string _003ColdType_003E5__3;5859		private ConfiguredValueTaskAwaiter<object> _003C_003Eu__1;6061		private ISqlFormatter _003C_003E7__wrap3;6263		private ConfiguredValueTaskAwaiter<string> _003C_003Eu__2;6465		private ConfiguredTaskAwaiter<bool> _003C_003Eu__3;6667		private ConfiguredTaskAwaiter<Diff> _003C_003Eu__4;6869		private void MoveNext()70		{71			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)72			//IL_00bc: Unknown result type (might be due to invalid IL or missing references)73			//IL_00c4: Unknown result type (might be due to invalid IL or missing references)74			//IL_013d: Unknown result type (might be due to invalid IL or missing references)75			//IL_0142: Unknown result type (might be due to invalid IL or missing references)76			//IL_014a: Unknown result type (might be due to invalid IL or missing references)77			//IL_0221: Unknown result type (might be due to invalid IL or missing references)78			//IL_0226: Unknown result type (might be due to invalid IL or missing references)79			//IL_022e: Unknown result type (might be due to invalid IL or missing references)80			//IL_02c3: Unknown result type (might be due to invalid IL or missing references)81			//IL_02c8: Unknown result type (might be due to invalid IL or missing references)82			//IL_02d0: Unknown result type (might be due to invalid IL or missing references)83			//IL_034f: Unknown result type (might be due to invalid IL or missing references)84			//IL_0354: Unknown result type (might be due to invalid IL or missing references)85			//IL_035c: Unknown result type (might be due to invalid IL or missing references)86			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)87			//IL_00ff: Unknown result type (might be due to invalid IL or missing references)88			//IL_0104: Unknown result type (might be due to invalid IL or missing references)89			//IL_0108: Unknown result type (might be due to invalid IL or missing references)90			//IL_010d: Unknown result type (might be due to invalid IL or missing references)91			//IL_027a: Unknown result type (might be due to invalid IL or missing references)92			//IL_0285: Unknown result type (might be due to invalid IL or missing references)93			//IL_028a: Unknown result type (might be due to invalid IL or missing references)94			//IL_028e: Unknown result type (might be due to invalid IL or missing references)95			//IL_0293: Unknown result type (might be due to invalid IL or missing references)96			//IL_0309: Unknown result type (might be due to invalid IL or missing references)97			//IL_0314: Unknown result type (might be due to invalid IL or missing references)98			//IL_0319: Unknown result type (might be due to invalid IL or missing references)99			//IL_031d: Unknown result type (might be due to invalid IL or missing references)100			//IL_0322: Unknown result type (might be due to invalid IL or missing references)101			//IL_0122: Unknown result type (might be due to invalid IL or missing references)102			//IL_0124: Unknown result type (might be due to invalid IL or missing references)103			//IL_02a8: Unknown result type (might be due to invalid IL or missing references)104			//IL_02aa: Unknown result type (might be due to invalid IL or missing references)105			//IL_0337: Unknown result type (might be due to invalid IL or missing references)106			//IL_0339: Unknown result type (might be due to invalid IL or missing references)107			//IL_006a: Unknown result type (might be due to invalid IL or missing references)108			//IL_0079: Unknown result type (might be due to invalid IL or missing references)109			//IL_007e: Unknown result type (might be due to invalid IL or missing references)110			//IL_0082: Unknown result type (might be due to invalid IL or missing references)111			//IL_0087: Unknown result type (might be due to invalid IL or missing references)112			//IL_01d4: Unknown result type (might be due to invalid IL or missing references)113			//IL_01e3: Unknown result type (might be due to invalid IL or missing references)114			//IL_01e8: Unknown result type (might be due to invalid IL or missing references)115			//IL_01ec: Unknown result type (might be due to invalid IL or missing references)116			//IL_01f1: Unknown result type (might be due to invalid IL or missing references)117			//IL_009c: Unknown result type (might be due to invalid IL or missing references)118			//IL_009e: Unknown result type (might be due to invalid IL or missing references)119			//IL_0206: Unknown result type (might be due to invalid IL or missing references)120			//IL_0208: Unknown result type (might be due to invalid IL or missing references)121			int num = _003C_003E1__state;122			DialogTag dialogTag = _003C_003E4__this;123			Diff result3;124			try125			{126				ConfiguredValueTaskAwaiter<object> val4;127				ConfiguredValueTaskAwaiter<string> val3;128				ConfiguredTaskAwaiter<bool> val2;129				ConfiguredTaskAwaiter<Diff> val;130				string result;131				string whereclause;132				object result2;133				string text;134				switch (num)135				{136				default:137					_003CtypeColumn_003E5__2 = entity.Columns["TagType"];138					if (entity.IsLoaded && _003CtypeColumn_003E5__2.IsDifferent)139					{140						val4 = _003CtypeColumn_003E5__2.GetOldValueAsync(ct).ConfigureAwait(false).GetAwaiter();141						if (!val4.IsCompleted)142						{143							num = (_003C_003E1__state = 0);144							_003C_003Eu__1 = val4;145							_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredValueTaskAwaiter<object>, _003COnSavingAsync_003Ed__2>(ref val4, ref this);146							return;147						}148						goto IL_00d3;149					}150					goto IL_02fb;151				case 0:152					val4 = _003C_003Eu__1;153					_003C_003Eu__1 = default(ConfiguredValueTaskAwaiter<object>);154					num = (_003C_003E1__state = -1);155					goto IL_00d3;156				case 1:157					val4 = _003C_003Eu__1;158					_003C_003Eu__1 = default(ConfiguredValueTaskAwaiter<object>);159					num = (_003C_003E1__state = -1);160					goto IL_0159;161				case 2:162					val3 = _003C_003Eu__2;163					_003C_003Eu__2 = default(ConfiguredValueTaskAwaiter<string>);164					num = (_003C_003E1__state = -1);165					goto IL_023d;166				case 3:167					val2 = _003C_003Eu__3;168					_003C_003Eu__3 = default(ConfiguredTaskAwaiter<bool>);169					num = (_003C_003E1__state = -1);170					goto IL_02df;171				case 4:172					{173						val = _003C_003Eu__4;174						_003C_003Eu__4 = default(ConfiguredTaskAwaiter<Diff>);175						num = (_003C_003E1__state = -1);176						break;177					}178					IL_02f4:179					_003ColdType_003E5__3 = null;180					goto IL_02fb;181					IL_023d:182					result = val3.GetResult();183					whereclause = _003C_003E7__wrap3.UidComparison("UID_DialogTag", result);184					_003C_003E7__wrap3 = null;185					val2 = parameters.Session.Source().ExistsAsync("DialogTaggedItem", whereclause, ct).ConfigureAwait(false)186						.GetAwaiter();187					if (!val2.IsCompleted)188					{189						num = (_003C_003E1__state = 3);190						_003C_003Eu__3 = val2;191						_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<bool>, _003COnSavingAsync_003Ed__2>(ref val2, ref this);192						return;193					}194					goto IL_02df;195					IL_02df:196					if (val2.GetResult())197					{198						throw new ViException(882141, ExceptionRelevance.EndUser);199					}200					goto IL_02f4;201					IL_00d3:202					result2 = val4.GetResult();203					_003ColdType_003E5__3 = DbVal.ConvertTo<string>(result2);204					val4 = _003CtypeColumn_003E5__2.GetValueAsync(ct).ConfigureAwait(false).GetAwaiter();205					if (!val4.IsCompleted)206					{207						num = (_003C_003E1__state = 1);208						_003C_003Eu__1 = val4;209						_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredValueTaskAwaiter<object>, _003COnSavingAsync_003Ed__2>(ref val4, ref this);210						return;211					}212					goto IL_0159;213					IL_02fb:214					val = ((EntityLogicBase)dialogTag).OnSavingAsync(entity, parameters, ct).ConfigureAwait(false).GetAwaiter();215					if (!val.IsCompleted)216					{217						num = (_003C_003E1__state = 4);218						_003C_003Eu__4 = val;219						_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<Diff>, _003COnSavingAsync_003Ed__2>(ref val, ref this);220						return;221					}222					break;223					IL_0159:224					text = DbVal.ConvertTo<string>(val4.GetResult());225					if ((string.Equals(_003ColdType_003E5__3, "CHANGE", (StringComparison)5) && !string.Equals(text, "CHANGE", (StringComparison)5)) || (string.Equals(_003ColdType_003E5__3, "VIintern", (StringComparison)5) && !string.Equals(text, "VIintern", (StringComparison)5)))226					{227						ISqlFormatter sqlFormatter = parameters.Session.SqlFormatter();228						_003C_003E7__wrap3 = sqlFormatter;229						val3 = entity.GetValueAsync<string>("UID_DialogTag", ct).ConfigureAwait(false).GetAwaiter();230						if (!val3.IsCompleted)231						{232							num = (_003C_003E1__state = 2);233							_003C_003Eu__2 = val3;234							_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredValueTaskAwaiter<string>, _003COnSavingAsync_003Ed__2>(ref val3, ref this);235							return;236						}237						goto IL_023d;238					}239					goto IL_02f4;240				}241				result3 = val.GetResult();242			}243			catch (System.Exception exception)244			{245				_003C_003E1__state = -2;246				_003CtypeColumn_003E5__2 = null;247				_003C_003Et__builder.SetException(exception);248				return;249			}250			_003C_003E1__state = -2;251			_003CtypeColumn_003E5__2 = null;252			_003C_003Et__builder.SetResult(result3);253		}254255		[DebuggerHidden]256		private void SetStateMachine(IAsyncStateMachine stateMachine)257		{258			_003C_003Et__builder.SetStateMachine(stateMachine);259		}260	}261262	[StructLayout((LayoutKind)3)]263	[CompilerGenerated]264	private struct _003C_CheckTagTypeHierarchy_003Ed__1 : IAsyncStateMachine265	{266		public int _003C_003E1__state;267268		public AsyncTaskMethodBuilder<bool> _003C_003Et__builder;269270		public string uidParent;271272		public IEntity entity;273274		public string myTagType;275276		public ISession session;277278		public CancellationToken ct;279280		private ConfiguredTaskAwaiter<string> _003C_003Eu__1;281282		private ConfiguredTaskAwaiter<bool> _003C_003Eu__2;283284		private void MoveNext()285		{286			//IL_010d: Unknown result type (might be due to invalid IL or missing references)287			//IL_0112: Unknown result type (might be due to invalid IL or missing references)288			//IL_011a: Unknown result type (might be due to invalid IL or missing references)289			//IL_0244: Unknown result type (might be due to invalid IL or missing references)290			//IL_0249: Unknown result type (might be due to invalid IL or missing references)291			//IL_0251: Unknown result type (might be due to invalid IL or missing references)292			//IL_00c4: Unknown result type (might be due to invalid IL or missing references)293			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)294			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)295			//IL_00d8: Unknown result type (might be due to invalid IL or missing references)296			//IL_00dd: Unknown result type (might be due to invalid IL or missing references)297			//IL_01fe: Unknown result type (might be due to invalid IL or missing references)298			//IL_0209: Unknown result type (might be due to invalid IL or missing references)299			//IL_020e: Unknown result type (might be due to invalid IL or missing references)300			//IL_0212: Unknown result type (might be due to invalid IL or missing references)301			//IL_0217: Unknown result type (might be due to invalid IL or missing references)302			//IL_00f2: Unknown result type (might be due to invalid IL or missing references)303			//IL_00f4: Unknown result type (might be due to invalid IL or missing references)304			//IL_022c: Unknown result type (might be due to invalid IL or missing references)305			//IL_022e: Unknown result type (might be due to invalid IL or missing references)306			int num = _003C_003E1__state;307			bool result2;308			try309			{310				ConfiguredTaskAwaiter<bool> val;311				ConfiguredTaskAwaiter<string> val2;312				if (num != 0)313				{314					if (num == 1)315					{316						val = _003C_003Eu__2;317						_003C_003Eu__2 = default(ConfiguredTaskAwaiter<bool>);318						num = (_003C_003E1__state = -1);319						goto IL_0260;320					}321					_003C_003Ec__DisplayClass1_0 CS_0024_003C_003E8__locals5 = new _003C_003Ec__DisplayClass1_0322					{323						uidParent = uidParent324					};325					if (CS_0024_003C_003E8__locals5.uidParent == null)326					{327						CS_0024_003C_003E8__locals5.uidParent = entity.Columns["UID_DialogTagParent"].GetValue<string>();328					}329					if (string.IsNullOrEmpty(CS_0024_003C_003E8__locals5.uidParent))330					{331						goto IL_0167;332					}333					if (myTagType == null)334					{335						myTagType = entity.Columns["TagType"].GetValue<string>();336					}337					Query query = (from c in Query.From("DialogTag")338						where c.Column("UID_DialogTag") == CS_0024_003C_003E8__locals5.uidParent339						select c).Select("TagType");340					val2 = session.Source().GetSingleValueAsync<string>(query, ct).ConfigureAwait(false)341						.GetAwaiter();342					if (!val2.IsCompleted)343					{344						num = (_003C_003E1__state = 0);345						_003C_003Eu__1 = val2;346						_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<string>, _003C_CheckTagTypeHierarchy_003Ed__1>(ref val2, ref this);347						return;348					}349				}350				else351				{352					val2 = _003C_003Eu__1;353					_003C_003Eu__1 = default(ConfiguredTaskAwaiter<string>);354					num = (_003C_003E1__state = -1);355				}356				string result = val2.GetResult();357				if (string.Equals("Release", result, (StringComparison)5))358				{359					if (!string.Equals("Change", myTagType, (StringComparison)5))360					{361						throw new ViException(882525, ExceptionRelevance.EndUser);362					}363					goto IL_0167;364				}365				result2 = true;366				goto end_IL_0007;367				IL_0167:368				string oldValue = entity.Columns["TagType"].GetOldValue<string>();369				if (string.Equals("Release", oldValue, (StringComparison)5) && !string.Equals(oldValue, myTagType, (StringComparison)5))370				{371					_003C_003Ec__DisplayClass1_1 CS_0024_003C_003E8__locals6 = new _003C_003Ec__DisplayClass1_1372					{373						uidDialogTag = entity.Columns["UID_DialogTag"].GetValue<string>()374					};375					Query query2 = (from c in Query.From("DialogTag")376						where c.Column("UID_DialogTagParent") == CS_0024_003C_003E8__locals6.uidDialogTag377						select c).Exists();378					val = session.Source().ExistsAsync(query2, ct).ConfigureAwait(false)379						.GetAwaiter();380					if (!val.IsCompleted)381					{382						num = (_003C_003E1__state = 1);383						_003C_003Eu__2 = val;384						_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<bool>, _003C_CheckTagTypeHierarchy_003Ed__1>(ref val, ref this);385						return;386					}387					goto IL_0260;388				}389				goto IL_0275;390				IL_0275:391				result2 = true;392				goto end_IL_0007;393				IL_0260:394				if (val.GetResult())395				{396					throw new ViException(882530, ExceptionRelevance.EndUser);397				}398				goto IL_0275;399				end_IL_0007:;400			}401			catch (System.Exception exception)402			{403				_003C_003E1__state = -2;404				_003C_003Et__builder.SetException(exception);405				return;406			}407			_003C_003E1__state = -2;408			_003C_003Et__builder.SetResult(result2);409		}410411		[DebuggerHidden]412		private void SetStateMachine(IAsyncStateMachine stateMachine)413		{414			_003C_003Et__builder.SetStateMachine(stateMachine);415		}416	}417418	public DialogTag()419	{420		string[] array = new string[4] { "CurrentState", "CurrentStateRemarks", "Ident_DialogTag", "TagType" };421		foreach (string text in array)422		{423			CanEdit(text).Except("SPECIAL(IsTransport)").From("IsClosed").As<bool>((Func<bool, bool>)((bool c) => !c));424		}425		CanEdit("UID_DialogTagParent").From("TagType").As<string>((Func<string, bool>)((string tagType) => !string.Equals("Release", tagType, (StringComparison)5))).ClearValueOnFalse();426		Check("UID_DialogTagParent").AsExpensive<string>((Func<ISession, IEntity, string, CancellationToken, System.Threading.Tasks.Task<bool>>)([AsyncStateMachine(typeof(_003C_003Ec._003C_003C_002Dctor_003Eb__0_1_003Ed))] async (ISession s, IEntity e, string uidDialogTagParent, CancellationToken ct) => await _CheckTagTypeHierarchy(s, e, uidDialogTagParent, null, ct).ConfigureAwait(false)));427		PreventLoops("UID_DialogTagParent");428		Check("TagType").AsExpensive<string>((Func<ISession, IEntity, string, CancellationToken, System.Threading.Tasks.Task<bool>>)([AsyncStateMachine(typeof(_003C_003Ec._003C_003C_002Dctor_003Eb__0_2_003Ed))] async (ISession s, IEntity e, string tagType, CancellationToken ct) => await _CheckTagTypeHierarchy(s, e, null, tagType, ct).ConfigureAwait(false)));429		RegisterFunction("IsChangeTable").As<string, bool>([AsyncStateMachine(typeof(_003C_003Ec._003C_003C_002Dctor_003Eb__0_3_003Ed))] async (ISession s, IEntity e, string tn, CancellationToken ct) => IsChangeTable(s, await e.GetValueAsync<string>("TagType", ct).ConfigureAwait(false), tn)).Description("Method_DialogTag_IsChangeTable");430	}431432	[AsyncStateMachine(typeof(_003C_CheckTagTypeHierarchy_003Ed__1))]433	private static async System.Threading.Tasks.Task<bool> _CheckTagTypeHierarchy(ISession session, IEntity entity, string? uidParent, string? myTagType, CancellationToken ct)434	{435		//IL_0002: Unknown result type (might be due to invalid IL or missing references)436		//IL_0007: Unknown result type (might be due to invalid IL or missing references)437		//IL_002e: Unknown result type (might be due to invalid IL or missing references)438		//IL_0030: Unknown result type (might be due to invalid IL or missing references)439		if (uidParent == null)440		{441			uidParent = entity.Columns["UID_DialogTagParent"].GetValue<string>();442		}443		if (!string.IsNullOrEmpty(uidParent))444		{445			if (myTagType == null)446			{447				myTagType = entity.Columns["TagType"].GetValue<string>();448			}449			Query query = (from c in Query.From("DialogTag")450				where c.Column("UID_DialogTag") == uidParent451				select c).Select("TagType");452			if (!string.Equals("Release", await session.Source().GetSingleValueAsync<string>(query, ct).ConfigureAwait(false), (StringComparison)5))453			{454				return true;455			}456			if (!string.Equals("Change", myTagType, (StringComparison)5))457			{458				throw new ViException(882525, ExceptionRelevance.EndUser);459			}460		}461		string oldValue = entity.Columns["TagType"].GetOldValue<string>();462		if (string.Equals("Release", oldValue, (StringComparison)5) && !string.Equals(oldValue, myTagType, (StringComparison)5))463		{464			string uidDialogTag = entity.Columns["UID_DialogTag"].GetValue<string>();465			Query query2 = (from c in Query.From("DialogTag")466				where c.Column("UID_DialogTagParent") == uidDialogTag467				select c).Exists();468			if (await session.Source().ExistsAsync(query2, ct).ConfigureAwait(false))469			{470				throw new ViException(882530, ExceptionRelevance.EndUser);471			}472		}473		return true;474	}475476	[AsyncStateMachine(typeof(_003COnSavingAsync_003Ed__2))]477	public override async System.Threading.Tasks.Task<Diff> OnSavingAsync(IEntity entity, LogicReadWriteParameters parameters, CancellationToken ct)478	{479		//IL_0002: Unknown result type (might be due to invalid IL or missing references)480		//IL_0007: Unknown result type (might be due to invalid IL or missing references)481		//IL_0026: Unknown result type (might be due to invalid IL or missing references)482		//IL_0027: Unknown result type (might be due to invalid IL or missing references)483		IEntityColumn typeColumn = entity.Columns["TagType"];484		if (entity.IsLoaded && typeColumn.IsDifferent)485		{486			string oldType = DbVal.ConvertTo<string>(await typeColumn.GetOldValueAsync(ct).ConfigureAwait(false));487			string text = DbVal.ConvertTo<string>(await typeColumn.GetValueAsync(ct).ConfigureAwait(false));488			if ((string.Equals(oldType, "CHANGE", (StringComparison)5) && !string.Equals(text, "CHANGE", (StringComparison)5)) || (string.Equals(oldType, "VIintern", (StringComparison)5) && !string.Equals(text, "VIintern", (StringComparison)5)))489			{490				ISqlFormatter sqlFormatter = parameters.Session.SqlFormatter();491				ISqlFormatter formatter = sqlFormatter;492				string whereclause = formatter.UidComparison("UID_DialogTag", await entity.GetValueAsync<string>("UID_DialogTag", ct).ConfigureAwait(false));493				if (await parameters.Session.Source().ExistsAsync("DialogTaggedItem", whereclause, ct).ConfigureAwait(false))494				{495					throw new ViException(882141, ExceptionRelevance.EndUser);496				}497			}498		}499		return await base.OnSavingAsync(entity, parameters, ct).ConfigureAwait(false);500	}501502	public static bool IsChangeTable(ISession s, string tagType, string tablename)503	{504		IMetaTable table = s.MetaData().GetTable(tablename);505		if (string.Equals(tagType, "CHANGE", (StringComparison)5) && !s.IsTransport())506		{507			return !table.IsTransportDisabled;508		}509		return true;510	}511}512