Back to OIM Explorer

ADS.Customizer/ADS.Customizer/ADSContact.cs

Decompiler Source FileADS.Customizer.ADSContactDecompiled Source

1 extracted method/event/call references in ADSContact.

Source: F:\Claude\.tmp\oim-decompiled-full\0013_One_Identity_Manager_ADS.Customizer.dll\ADS.Customizer\ADSContact.cs

Source size: 18.039 characters

Interpretation

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

Relations

  • CustomGenerated event: OverLimit at line 269

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 ADSContact; methods MoveNext, SetStateMachine, OnSavingAsync, OnSavedAsync; references ADSContact, ADSContainer, ADSDomain; markers reads entity values, references DB/Dialog objects

Classes

ADSContact

DB/Dialog object references

OIM key/entity markers

UID_ADSDomain UID_ADSContainer XObjectKey

API/entity calls

GetValue IsFullSync IsDeleted AddPreCommitHook

Registrations / handlers

None extracted.

Complete Source

C#342 lines
1using System;2using System.Diagnostics;3using System.Runtime.CompilerServices;4using System.Runtime.InteropServices;5using System.Threading;6using System.Threading.Tasks;7using TSB.Customizer;8using VI.Base;9using VI.DB;10using VI.DB.Entities;1112namespace ADS.Customizer;1314public class ADSContact : DirectoryObjectEntityLogic15{16	[StructLayout((LayoutKind)3)]17	[CompilerGenerated]18	private struct _003COnSavedAsync_003Ed__3 : IAsyncStateMachine19	{20		public int _003C_003E1__state;2122		public AsyncTaskMethodBuilder _003C_003Et__builder;2324		public IEntity entity;2526		public LogicReadWriteParameters parameters;2728		public CancellationToken cancellationToken;2930		public ADSContact _003C_003E4__this;3132		private ConfiguredTaskAwaiter<bool> _003C_003Eu__1;3334		private ConfiguredTaskAwaiter _003C_003Eu__2;3536		private void MoveNext()37		{38			//IL_006b: Unknown result type (might be due to invalid IL or missing references)39			//IL_0070: Unknown result type (might be due to invalid IL or missing references)40			//IL_0077: Unknown result type (might be due to invalid IL or missing references)41			//IL_009c: Unknown result type (might be due to invalid IL or missing references)42			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)43			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)44			//IL_00b0: Unknown result type (might be due to invalid IL or missing references)45			//IL_00b5: Unknown result type (might be due to invalid IL or missing references)46			//IL_00e2: Unknown result type (might be due to invalid IL or missing references)47			//IL_00e7: Unknown result type (might be due to invalid IL or missing references)48			//IL_00ef: Unknown result type (might be due to invalid IL or missing references)49			//IL_0025: Unknown result type (might be due to invalid IL or missing references)50			//IL_0030: Unknown result type (might be due to invalid IL or missing references)51			//IL_0035: Unknown result type (might be due to invalid IL or missing references)52			//IL_0038: Unknown result type (might be due to invalid IL or missing references)53			//IL_003d: Unknown result type (might be due to invalid IL or missing references)54			//IL_00ca: Unknown result type (might be due to invalid IL or missing references)55			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)56			//IL_0051: Unknown result type (might be due to invalid IL or missing references)57			//IL_0052: Unknown result type (might be due to invalid IL or missing references)58			int num = _003C_003E1__state;59			ADSContact aDSContact = _003C_003E4__this;60			try61			{62				ConfiguredTaskAwaiter val;63				ConfiguredTaskAwaiter<bool> val2;64				if (num != 0)65				{66					if (num == 1)67					{68						val = _003C_003Eu__2;69						_003C_003Eu__2 = default(ConfiguredTaskAwaiter);70						num = (_003C_003E1__state = -1);71						goto IL_00fe;72					}73					val2 = ADSHelper.CheckObjectKeyManager(entity, parameters, cancellationToken).ConfigureAwait(false).GetAwaiter();74					if (!val2.IsCompleted)75					{76						num = (_003C_003E1__state = 0);77						_003C_003Eu__1 = val2;78						((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<bool>, _003COnSavedAsync_003Ed__3>(ref val2, ref this);79						return;80					}81				}82				else83				{84					val2 = _003C_003Eu__1;85					_003C_003Eu__1 = default(ConfiguredTaskAwaiter<bool>);86					num = (_003C_003E1__state = -1);87				}88				val2.GetResult();89				ConfiguredTaskAwaitable val3 = ((StateBasedEntityLogic)aDSContact).OnSavedAsync(entity, parameters, cancellationToken).ConfigureAwait(false);90				val = ((ConfiguredTaskAwaitable)(ref val3)).GetAwaiter();91				if (!((ConfiguredTaskAwaiter)(ref val)).IsCompleted)92				{93					num = (_003C_003E1__state = 1);94					_003C_003Eu__2 = val;95					((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter, _003COnSavedAsync_003Ed__3>(ref val, ref this);96					return;97				}98				goto IL_00fe;99				IL_00fe:100				((ConfiguredTaskAwaiter)(ref val)).GetResult();101			}102			catch (System.Exception exception)103			{104				_003C_003E1__state = -2;105				((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetException(exception);106				return;107			}108			_003C_003E1__state = -2;109			((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetResult();110		}111112		[DebuggerHidden]113		private void SetStateMachine(IAsyncStateMachine stateMachine)114		{115			((AsyncTaskMethodBuilder)(ref _003C_003Et__builder)).SetStateMachine(stateMachine);116		}117	}118119	[StructLayout((LayoutKind)3)]120	[CompilerGenerated]121	private struct _003COnSavingAsync_003Ed__2 : IAsyncStateMachine122	{123		public int _003C_003E1__state;124125		public AsyncTaskMethodBuilder<Diff> _003C_003Et__builder;126127		public LogicReadWriteParameters parameters;128129		public IEntity entity;130131		public CancellationToken ct;132133		public ADSContact _003C_003E4__this;134135		private ConfiguredTaskAwaiter _003C_003Eu__1;136137		private ConfiguredTaskAwaiter<Diff> _003C_003Eu__2;138139		private void MoveNext()140		{141			//IL_034b: Unknown result type (might be due to invalid IL or missing references)142			//IL_0350: Unknown result type (might be due to invalid IL or missing references)143			//IL_0358: Unknown result type (might be due to invalid IL or missing references)144			//IL_03c2: Unknown result type (might be due to invalid IL or missing references)145			//IL_03c7: Unknown result type (might be due to invalid IL or missing references)146			//IL_03cf: Unknown result type (might be due to invalid IL or missing references)147			//IL_037c: Unknown result type (might be due to invalid IL or missing references)148			//IL_0387: Unknown result type (might be due to invalid IL or missing references)149			//IL_038c: Unknown result type (might be due to invalid IL or missing references)150			//IL_0390: Unknown result type (might be due to invalid IL or missing references)151			//IL_0395: Unknown result type (might be due to invalid IL or missing references)152			//IL_03aa: Unknown result type (might be due to invalid IL or missing references)153			//IL_03ac: Unknown result type (might be due to invalid IL or missing references)154			//IL_0302: Unknown result type (might be due to invalid IL or missing references)155			//IL_030d: Unknown result type (might be due to invalid IL or missing references)156			//IL_0312: Unknown result type (might be due to invalid IL or missing references)157			//IL_0316: Unknown result type (might be due to invalid IL or missing references)158			//IL_031b: Unknown result type (might be due to invalid IL or missing references)159			//IL_0330: Unknown result type (might be due to invalid IL or missing references)160			//IL_0332: Unknown result type (might be due to invalid IL or missing references)161			int num = _003C_003E1__state;162			ADSContact aDSContact = _003C_003E4__this;163			Diff result;164			try165			{166				ConfiguredTaskAwaiter<Diff> val;167				ConfiguredTaskAwaiter val3;168				if (num != 0)169				{170					if (num == 1)171					{172						val = _003C_003Eu__2;173						_003C_003Eu__2 = default(ConfiguredTaskAwaiter<Diff>);174						num = (_003C_003E1__state = -1);175						goto IL_03de;176					}177					ISession session = parameters.Session;178					string value = entity.GetValue<string>("UID_ADSDomain");179					ADSHelper.CheckIsProtectedFromAccidentalDel(session, entity);180					if (!session.IsFullSync() && !entity.IsDeleted() && !string.IsNullOrEmpty(value))181					{182						if (entity.Columns.ChangedAny("UID_ADSDomain", "UID_ADSContainer", "cn"))183						{184							ISqlFormatter sqlFormatter = session.Resolve<ISqlFormatter>();185							global::_003C_003Ey__InlineArray9<string> buffer = default(global::_003C_003Ey__InlineArray9<string>);186							global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 0) = "(";187							global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 1) = sqlFormatter.FormatValue(entity.Columns["cn"].GetValue<string>(), ValType.String, forUpdate: true);188							global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 2) = ", ";189							global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 3) = sqlFormatter.FormatUidValue(entity.Columns["UID_ADSContainer"].GetValue<string>());190							global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 4) = ", ";191							global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 5) = sqlFormatter.FormatUidValue(entity.Columns["UID_ADSDomain"].GetValue<string>());192							global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 6) = ", ";193							global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 7) = sqlFormatter.FormatUidValue(entity.Columns["XObjectKey"].GetValue<string>());194							global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 8) = ")";195							string data = string.Concat(global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<global::_003C_003Ey__InlineArray9<string>, string>(in buffer, 9));196							parameters.Session.AddPreCommitHook("ADS_UniqueCnCheck", data, ADSHelper.IsUniqueCnInAdsBulk);197						}198						TSBHelper.RemoveEmptyValues(entity.Columns["OtherFax"]);199						TSBHelper.RemoveEmptyValues(entity.Columns["OtherHomePhone"]);200						TSBHelper.RemoveEmptyValues(entity.Columns["OtherIPPhone"]);201						TSBHelper.RemoveEmptyValues(entity.Columns["OtherMailbox"]);202						TSBHelper.RemoveEmptyValues(entity.Columns["OtherMobile"]);203						TSBHelper.RemoveEmptyValues(entity.Columns["OtherPager"]);204						TSBHelper.RemoveEmptyValues(entity.Columns["OtherTelephoneNumber"]);205						TSBHelper.RemoveEmptyValues(entity.Columns["OtherWWW"]);206					}207					if (!entity.Columns["UID_ADSContainer"].IsDifferent || entity.IsDeleted())208					{209						goto IL_036e;210					}211					ConfiguredTaskAwaitable val2 = ADSHelper.CheckContainerLimit(parameters.Session, entity, parameters.UnitOfWork, ct).ConfigureAwait(false);212					val3 = ((ConfiguredTaskAwaitable)(ref val2)).GetAwaiter();213					if (!((ConfiguredTaskAwaiter)(ref val3)).IsCompleted)214					{215						num = (_003C_003E1__state = 0);216						_003C_003Eu__1 = val3;217						_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter, _003COnSavingAsync_003Ed__2>(ref val3, ref this);218						return;219					}220				}221				else222				{223					val3 = _003C_003Eu__1;224					_003C_003Eu__1 = default(ConfiguredTaskAwaiter);225					num = (_003C_003E1__state = -1);226				}227				((ConfiguredTaskAwaiter)(ref val3)).GetResult();228				goto IL_036e;229				IL_036e:230				val = ((DirectoryObjectEntityLogic)aDSContact).OnSavingAsync(entity, parameters, ct).ConfigureAwait(false).GetAwaiter();231				if (!val.IsCompleted)232				{233					num = (_003C_003E1__state = 1);234					_003C_003Eu__2 = val;235					_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<Diff>, _003COnSavingAsync_003Ed__2>(ref val, ref this);236					return;237				}238				goto IL_03de;239				IL_03de:240				result = val.GetResult();241			}242			catch (System.Exception exception)243			{244				_003C_003E1__state = -2;245				_003C_003Et__builder.SetException(exception);246				return;247			}248			_003C_003E1__state = -2;249			_003C_003Et__builder.SetResult(result);250		}251252		[DebuggerHidden]253		private void SetStateMachine(IAsyncStateMachine stateMachine)254		{255			_003C_003Et__builder.SetStateMachine(stateMachine);256		}257	}258259	private static DirectoryObjectEntityLogicParameter p = new DirectoryObjectEntityLogicParameter260	{261		Container = "UID_ADSContainer",262		Domain = "UID_ADSDomain"263	};264265	public ADSContact(EntityLogicConstructionParameters ep)266		: base(ep, p)267	{268		RegisterExpensive("_IsMixedModeDomain").DependsOn("UID_ADSDomain").As<bool>((Func<ISession, IEntity, IEntityWalker, CancellationToken, System.Threading.Tasks.Task<bool>>)ADSHelper.InitMixedModeDomain);269		Event("OverLimit").CustomGenerated();270		using (base.Section.From("_NamespaceManagedBy").As<NameSpaceManagedBy>((Func<NameSpaceManagedBy, bool>)((NameSpaceManagedBy m) => m == NameSpaceManagedBy.VISYNC || m == NameSpaceManagedBy.ILM)))271		{272			MinLen("CanonicalName").Default(1);273		}274		using (base.Section.From("_NamespaceManagedBy").As<NameSpaceManagedBy>((Func<NameSpaceManagedBy, bool>)((NameSpaceManagedBy m) => m == NameSpaceManagedBy.VISYNC)))275		{276			MinLen("ObjectClass").Default(1);277		}278	}279280	[AsyncStateMachine(typeof(_003COnSavingAsync_003Ed__2))]281	public override async System.Threading.Tasks.Task<Diff> OnSavingAsync(IEntity entity, LogicReadWriteParameters parameters, CancellationToken ct)282	{283		//IL_0002: Unknown result type (might be due to invalid IL or missing references)284		//IL_0007: Unknown result type (might be due to invalid IL or missing references)285		//IL_0026: Unknown result type (might be due to invalid IL or missing references)286		//IL_0027: Unknown result type (might be due to invalid IL or missing references)287		ISession session = parameters.Session;288		string value = entity.GetValue<string>("UID_ADSDomain");289		ADSHelper.CheckIsProtectedFromAccidentalDel(session, entity);290		if (!session.IsFullSync() && !entity.IsDeleted() && !string.IsNullOrEmpty(value))291		{292			if (entity.Columns.ChangedAny("UID_ADSDomain", "UID_ADSContainer", "cn"))293			{294				ISqlFormatter sqlFormatter = session.Resolve<ISqlFormatter>();295				global::_003C_003Ey__InlineArray9<string> buffer = default(global::_003C_003Ey__InlineArray9<string>);296				global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 0) = "(";297				global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 1) = sqlFormatter.FormatValue(entity.Columns["cn"].GetValue<string>(), ValType.String, forUpdate: true);298				global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 2) = ", ";299				global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 3) = sqlFormatter.FormatUidValue(entity.Columns["UID_ADSContainer"].GetValue<string>());300				global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 4) = ", ";301				global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 5) = sqlFormatter.FormatUidValue(entity.Columns["UID_ADSDomain"].GetValue<string>());302				global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 6) = ", ";303				global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 7) = sqlFormatter.FormatUidValue(entity.Columns["XObjectKey"].GetValue<string>());304				global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray9<string>, string>(ref buffer, 8) = ")";305				string data = string.Concat(global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<global::_003C_003Ey__InlineArray9<string>, string>(in buffer, 9));306				parameters.Session.AddPreCommitHook("ADS_UniqueCnCheck", data, ADSHelper.IsUniqueCnInAdsBulk);307			}308			TSBHelper.RemoveEmptyValues(entity.Columns["OtherFax"]);309			TSBHelper.RemoveEmptyValues(entity.Columns["OtherHomePhone"]);310			TSBHelper.RemoveEmptyValues(entity.Columns["OtherIPPhone"]);311			TSBHelper.RemoveEmptyValues(entity.Columns["OtherMailbox"]);312			TSBHelper.RemoveEmptyValues(entity.Columns["OtherMobile"]);313			TSBHelper.RemoveEmptyValues(entity.Columns["OtherPager"]);314			TSBHelper.RemoveEmptyValues(entity.Columns["OtherTelephoneNumber"]);315			TSBHelper.RemoveEmptyValues(entity.Columns["OtherWWW"]);316		}317		if (entity.Columns["UID_ADSContainer"].IsDifferent && !entity.IsDeleted())318		{319			await ADSHelper.CheckContainerLimit(parameters.Session, entity, parameters.UnitOfWork, ct).ConfigureAwait(false);320		}321		return await base.OnSavingAsync(entity, parameters, ct).ConfigureAwait(false);322	}323324	[AsyncStateMachine(typeof(_003COnSavedAsync_003Ed__3))]325	public override System.Threading.Tasks.Task OnSavedAsync(IEntity entity, LogicReadWriteParameters parameters, CancellationToken cancellationToken)326	{327		//IL_0002: Unknown result type (might be due to invalid IL or missing references)328		//IL_0007: Unknown result type (might be due to invalid IL or missing references)329		//IL_0026: Unknown result type (might be due to invalid IL or missing references)330		//IL_0027: Unknown result type (might be due to invalid IL or missing references)331		_003COnSavedAsync_003Ed__3 _003COnSavedAsync_003Ed__ = default(_003COnSavedAsync_003Ed__3);332		_003COnSavedAsync_003Ed__._003C_003Et__builder = AsyncTaskMethodBuilder.Create();333		_003COnSavedAsync_003Ed__._003C_003E4__this = this;334		_003COnSavedAsync_003Ed__.entity = entity;335		_003COnSavedAsync_003Ed__.parameters = parameters;336		_003COnSavedAsync_003Ed__.cancellationToken = cancellationToken;337		_003COnSavedAsync_003Ed__._003C_003E1__state = -1;338		((AsyncTaskMethodBuilder)(ref _003COnSavedAsync_003Ed__._003C_003Et__builder)).Start<_003COnSavedAsync_003Ed__3>(ref _003COnSavedAsync_003Ed__);339		return ((AsyncTaskMethodBuilder)(ref _003COnSavedAsync_003Ed__._003C_003Et__builder)).Task;340	}341}342