Back to OIM Explorer

QER.CompositionApi/QER.CompositionApi.ITShop/CartSelection.cs

Decompiler Source FileQER.CompositionApi.CartSelectionDecompiled Source

2 extracted method/event/call references in CartSelection.

Source: F:\Claude\.tmp\oim-decompiled-full\0989_One_Identity_Manager_QER.CompositionApi.dll\QER.CompositionApi.ITShop\CartSelection.cs

Source size: 12.376 characters

Interpretation

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

Relations

  • CallFunctionAsync: FillDocumentNumber at line 211
  • CallFunctionAsync: FillDocumentNumber at line 280

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 saves entities references DB/Dialog objects IT Shop related markers

Summary: classes CartSelection; methods MoveNext, SetStateMachine, GetOrCreateCartAsync; references Person, ShoppingCartOrder; markers reads entity values, saves entities, references DB/Dialog objects, IT Shop related markers

Classes

CartSelection

DB/Dialog object references

OIM key/entity markers

UID_Person UID_ShoppingCartOrder

API/entity calls

TryResult CreateNew SaveAsync GetValue User SqlFormatter From Source

Registrations / handlers

None extracted.

Complete Source

C#286 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;1011namespace QER.CompositionApi.ITShop;1213public class CartSelection14{15	[StructLayout((LayoutKind)3)]16	[CompilerGenerated]17	private struct _003CGetOrCreateCartAsync_003Ed__4 : IAsyncStateMachine18	{19		public int _003C_003E1__state;2021		public AsyncTaskMethodBuilder<string> _003C_003Et__builder;2223		public ISession session;2425		public CartSelection _003C_003E4__this;2627		public CancellationToken ct;2829		private string _003CuidPerson_003E5__2;3031		private IEntity _003Corder_003E5__3;3233		private ConfiguredTaskAwaiter<TryResult<IEntity>> _003C_003Eu__1;3435		private ConfiguredTaskAwaiter<IEntity> _003C_003Eu__2;3637		private ConfiguredValueTaskAwaiter<ApplyResult> _003C_003Eu__3;3839		private ConfiguredValueTaskAwaiter<object> _003C_003Eu__4;4041		private ConfiguredTaskAwaiter _003C_003Eu__5;4243		private void MoveNext()44		{45			//IL_0136: Unknown result type (might be due to invalid IL or missing references)46			//IL_013b: Unknown result type (might be due to invalid IL or missing references)47			//IL_0143: Unknown result type (might be due to invalid IL or missing references)48			//IL_01d7: Unknown result type (might be due to invalid IL or missing references)49			//IL_01dc: Unknown result type (might be due to invalid IL or missing references)50			//IL_01e4: Unknown result type (might be due to invalid IL or missing references)51			//IL_0263: Unknown result type (might be due to invalid IL or missing references)52			//IL_0268: Unknown result type (might be due to invalid IL or missing references)53			//IL_0270: Unknown result type (might be due to invalid IL or missing references)54			//IL_02e5: Unknown result type (might be due to invalid IL or missing references)55			//IL_02ea: Unknown result type (might be due to invalid IL or missing references)56			//IL_02f2: Unknown result type (might be due to invalid IL or missing references)57			//IL_035f: Unknown result type (might be due to invalid IL or missing references)58			//IL_0364: Unknown result type (might be due to invalid IL or missing references)59			//IL_036c: Unknown result type (might be due to invalid IL or missing references)60			//IL_0216: Unknown result type (might be due to invalid IL or missing references)61			//IL_0225: Unknown result type (might be due to invalid IL or missing references)62			//IL_022a: Unknown result type (might be due to invalid IL or missing references)63			//IL_022e: Unknown result type (might be due to invalid IL or missing references)64			//IL_0233: Unknown result type (might be due to invalid IL or missing references)65			//IL_0298: Unknown result type (might be due to invalid IL or missing references)66			//IL_02a7: Unknown result type (might be due to invalid IL or missing references)67			//IL_02ac: Unknown result type (might be due to invalid IL or missing references)68			//IL_02b0: Unknown result type (might be due to invalid IL or missing references)69			//IL_02b5: Unknown result type (might be due to invalid IL or missing references)70			//IL_0316: Unknown result type (might be due to invalid IL or missing references)71			//IL_0321: Unknown result type (might be due to invalid IL or missing references)72			//IL_0326: Unknown result type (might be due to invalid IL or missing references)73			//IL_032a: Unknown result type (might be due to invalid IL or missing references)74			//IL_032f: Unknown result type (might be due to invalid IL or missing references)75			//IL_00ed: Unknown result type (might be due to invalid IL or missing references)76			//IL_00f8: Unknown result type (might be due to invalid IL or missing references)77			//IL_00fd: Unknown result type (might be due to invalid IL or missing references)78			//IL_0101: Unknown result type (might be due to invalid IL or missing references)79			//IL_0106: Unknown result type (might be due to invalid IL or missing references)80			//IL_0248: Unknown result type (might be due to invalid IL or missing references)81			//IL_024a: Unknown result type (might be due to invalid IL or missing references)82			//IL_02ca: Unknown result type (might be due to invalid IL or missing references)83			//IL_02cc: Unknown result type (might be due to invalid IL or missing references)84			//IL_0344: Unknown result type (might be due to invalid IL or missing references)85			//IL_0346: Unknown result type (might be due to invalid IL or missing references)86			//IL_018e: Unknown result type (might be due to invalid IL or missing references)87			//IL_0199: Unknown result type (might be due to invalid IL or missing references)88			//IL_019e: Unknown result type (might be due to invalid IL or missing references)89			//IL_01a2: Unknown result type (might be due to invalid IL or missing references)90			//IL_01a7: Unknown result type (might be due to invalid IL or missing references)91			//IL_011b: Unknown result type (might be due to invalid IL or missing references)92			//IL_011d: Unknown result type (might be due to invalid IL or missing references)93			//IL_01bc: Unknown result type (might be due to invalid IL or missing references)94			//IL_01be: Unknown result type (might be due to invalid IL or missing references)95			int num = _003C_003E1__state;96			CartSelection cartSelection = _003C_003E4__this;97			string result3;98			try99			{100				ConfiguredTaskAwaiter<TryResult<IEntity>> val5;101				ConfiguredTaskAwaiter<IEntity> val4;102				ConfiguredValueTaskAwaiter<ApplyResult> val3;103				ConfiguredValueTaskAwaiter<object> val2;104				ConfiguredTaskAwaiter val;105				IEntity result;106				TryResult<IEntity> result2;107				ConfiguredTaskAwaitable val6;108				switch (num)109				{110				default:111					_003CuidPerson_003E5__2 = session.User().Uid;112					_003Corder_003E5__3 = null;113					if (!cartSelection.CreateNew)114					{115						ISqlFormatter sqlFormatter = session.SqlFormatter();116						Query query = Query.From("ShoppingCartOrder").SelectDisplays().Take(1)117							.Where(sqlFormatter.AndRelation(sqlFormatter.Comparison("CheckStatus", 0, ValType.Int, CompareOperator.Equal), sqlFormatter.UidComparison("uid_person", _003CuidPerson_003E5__2)))118							.OrderBy("XDateInserted desc")119							.GetQuery()120							.Hint("OnMainConnection", "true");121						val5 = session.Source().TryGetAsync(query, EntityLoadType.ReadOnly, ct).ConfigureAwait(false)122							.GetAwaiter();123						if (!val5.IsCompleted)124						{125							num = (_003C_003E1__state = 0);126							_003C_003Eu__1 = val5;127							_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<TryResult<IEntity>>, _003CGetOrCreateCartAsync_003Ed__4>(ref val5, ref this);128							return;129						}130						goto IL_0152;131					}132					goto IL_0171;133				case 0:134					val5 = _003C_003Eu__1;135					_003C_003Eu__1 = default(ConfiguredTaskAwaiter<TryResult<IEntity>>);136					num = (_003C_003E1__state = -1);137					goto IL_0152;138				case 1:139					val4 = _003C_003Eu__2;140					_003C_003Eu__2 = default(ConfiguredTaskAwaiter<IEntity>);141					num = (_003C_003E1__state = -1);142					goto IL_01f3;143				case 2:144					val3 = _003C_003Eu__3;145					_003C_003Eu__3 = default(ConfiguredValueTaskAwaiter<ApplyResult>);146					num = (_003C_003E1__state = -1);147					goto IL_027f;148				case 3:149					val2 = _003C_003Eu__4;150					_003C_003Eu__4 = default(ConfiguredValueTaskAwaiter<object>);151					num = (_003C_003E1__state = -1);152					goto IL_0301;153				case 4:154					{155						val = _003C_003Eu__5;156						_003C_003Eu__5 = default(ConfiguredTaskAwaiter);157						num = (_003C_003E1__state = -1);158						goto IL_037b;159					}160					IL_037b:161					((ConfiguredTaskAwaiter)(ref val)).GetResult();162					break;163					IL_01f3:164					result = val4.GetResult();165					_003Corder_003E5__3 = result;166					val3 = _003Corder_003E5__3.PutValueAsync("UID_Person", _003CuidPerson_003E5__2, ct).ConfigureAwait(false).GetAwaiter();167					if (!val3.IsCompleted)168					{169						num = (_003C_003E1__state = 2);170						_003C_003Eu__3 = val3;171						_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredValueTaskAwaiter<ApplyResult>, _003CGetOrCreateCartAsync_003Ed__4>(ref val3, ref this);172						return;173					}174					goto IL_027f;175					IL_0152:176					result2 = val5.GetResult();177					if (result2.Success)178					{179						_003Corder_003E5__3 = result2.Result;180					}181					goto IL_0171;182					IL_0301:183					val2.GetResult();184					val6 = _003Corder_003E5__3.SaveAsync(session, ct).ConfigureAwait(false);185					val = ((ConfiguredTaskAwaitable)(ref val6)).GetAwaiter();186					if (!((ConfiguredTaskAwaiter)(ref val)).IsCompleted)187					{188						num = (_003C_003E1__state = 4);189						_003C_003Eu__5 = val;190						_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter, _003CGetOrCreateCartAsync_003Ed__4>(ref val, ref this);191						return;192					}193					goto IL_037b;194					IL_0171:195					if (_003Corder_003E5__3 != null)196					{197						break;198					}199					val4 = session.Source().CreateNewAsync("ShoppingCartOrder", EntityCreationType.Interactive, ct).ConfigureAwait(false)200						.GetAwaiter();201					if (!val4.IsCompleted)202					{203						num = (_003C_003E1__state = 1);204						_003C_003Eu__2 = val4;205						_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaiter<IEntity>, _003CGetOrCreateCartAsync_003Ed__4>(ref val4, ref this);206						return;207					}208					goto IL_01f3;209					IL_027f:210					val3.GetResult();211					val2 = _003Corder_003E5__3.CallFunctionAsync("FillDocumentNumber", System.Array.Empty<object>(), ct).ConfigureAwait(false).GetAwaiter();212					if (!val2.IsCompleted)213					{214						num = (_003C_003E1__state = 3);215						_003C_003Eu__4 = val2;216						_003C_003Et__builder.AwaitUnsafeOnCompleted<ConfiguredValueTaskAwaiter<object>, _003CGetOrCreateCartAsync_003Ed__4>(ref val2, ref this);217						return;218					}219					goto IL_0301;220				}221				result3 = _003Corder_003E5__3.GetValue("UID_ShoppingCartOrder");222			}223			catch (System.Exception exception)224			{225				_003C_003E1__state = -2;226				_003CuidPerson_003E5__2 = null;227				_003Corder_003E5__3 = null;228				_003C_003Et__builder.SetException(exception);229				return;230			}231			_003C_003E1__state = -2;232			_003CuidPerson_003E5__2 = null;233			_003Corder_003E5__3 = null;234			_003C_003Et__builder.SetResult(result3);235		}236237		[DebuggerHidden]238		private void SetStateMachine(IAsyncStateMachine stateMachine)239		{240			_003C_003Et__builder.SetStateMachine(stateMachine);241		}242	}243244	[field: CompilerGenerated]245	public bool CreateNew246	{247		[CompilerGenerated]248		get;249		[CompilerGenerated]250		set;251	}252253	[AsyncStateMachine(typeof(_003CGetOrCreateCartAsync_003Ed__4))]254	public async System.Threading.Tasks.Task<string> GetOrCreateCartAsync(ISession session, CancellationToken ct)255	{256		//IL_0002: Unknown result type (might be due to invalid IL or missing references)257		//IL_0007: Unknown result type (might be due to invalid IL or missing references)258		//IL_001e: Unknown result type (might be due to invalid IL or missing references)259		//IL_001f: Unknown result type (might be due to invalid IL or missing references)260		string uidPerson = session.User().Uid;261		IEntity order = null;262		if (!CreateNew)263		{264			ISqlFormatter sqlFormatter = session.SqlFormatter();265			Query query = Query.From("ShoppingCartOrder").SelectDisplays().Take(1)266				.Where(sqlFormatter.AndRelation(sqlFormatter.Comparison("CheckStatus", 0, ValType.Int, CompareOperator.Equal), sqlFormatter.UidComparison("uid_person", uidPerson)))267				.OrderBy("XDateInserted desc")268				.GetQuery()269				.Hint("OnMainConnection", "true");270			TryResult<IEntity> tryResult = await session.Source().TryGetAsync(query, EntityLoadType.ReadOnly, ct).ConfigureAwait(false);271			if (tryResult.Success)272			{273				order = tryResult.Result;274			}275		}276		if (order == null)277		{278			order = await session.Source().CreateNewAsync("ShoppingCartOrder", EntityCreationType.Interactive, ct).ConfigureAwait(false);279			await order.PutValueAsync("UID_Person", uidPerson, ct).ConfigureAwait(false);280			await order.CallFunctionAsync("FillDocumentNumber", System.Array.Empty<object>(), ct).ConfigureAwait(false);281			await order.SaveAsync(session, ct).ConfigureAwait(false);282		}283		return order.GetValue("UID_ShoppingCartOrder");284	}285}286