ADS.Customizer/ADS.Customizer/ADSContact.cs
Decompiler Source FileADS.Customizer.ADSContactDecompiled Source
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
ADSContactDB/Dialog object references
OIM key/entity markers
UID_ADSDomain UID_ADSContainer XObjectKeyAPI/entity calls
GetValue IsFullSync IsDeleted AddPreCommitHookRegistrations / handlers
None extracted.
Complete Source
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