QER.CompositionApi/QER.CompositionApi.ITShop/CartSelection.cs
Decompiler Source FileQER.CompositionApi.CartSelectionDecompiled Source
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
CartSelectionDB/Dialog object references
OIM key/entity markers
UID_Person UID_ShoppingCartOrderAPI/entity calls
TryResult CreateNew SaveAsync GetValue User SqlFormatter From SourceRegistrations / 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 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