public async Task <ActionResult> EditTransaction(EditTransaction model) { var svcData = new AOrder_PostOrderTransaction() { OrderId = model.OrderId, OrderTransactionTypeCode = model.OrderTransactionTypeCode }; var svcItems = new List <AOrder_PostOrderTransactionItem>(); foreach (var item in model.TransactionEntries) { if (item.Selected) { var svcItem = new AOrder_PostOrderTransactionItem() { OrderItemId = item.OrderItemId, OrderItemStatusTypeCode = model.OrderItemStatusTypeCode, Quantity = item.Quantity }; svcItems.Add(svcItem); } } svcData.Items = svcItems; _ = await OrderAdminService.PostOrderTransactionAsync(svcData); return(RedirectToAction("Index", new { id = model.OrderId })); }
public async Task <long> PostOrderTransactionAsync(AOrder_PostOrderTransaction transaction) { using var log = BeginFunction(nameof(OrderAdminService), nameof(PostOrderTransactionAsync), transaction); try { await Assert(SecurityPolicy.IsPrivileged).ConfigureAwait(false); if (transaction == null) { throw new ArgumentNullException(nameof(transaction)); } //using var ctx = QuiltContextFactory.Create(); //var dbOrder = await ctx.Orders.Where(r => r.OrderId == transaction.OrderId).SingleAsync().ConfigureAwait(false); //var description = string.Format("Posting manual transaction for order {0}.", transaction.OrderId); // HACK: OrderStatus /* * OrderTransaction dbOrderTransaction; * { * var dbOrderTransactionBuilder = dbOrder.CreateOrderTransactionBuilder(GetUtcNow()) * .Begin(transaction.OrderTransactionTypeCode, description); * * foreach (var item in transaction.Items) * { * _ = dbOrderTransactionBuilder.AddItem(item.OrderItemId, item.Quantity, item.OrderItemStatusTypeCode); * } * * dbOrderTransaction = dbOrderTransactionBuilder.Create(); * } * * ctx.OnOrderTransactionCreated(dbOrderTransaction, Locale.GetUtcNow()); * * _ = await ctx.SaveChangesAsync().ConfigureAwait(false); * * var result = dbOrderTransaction.OrderTransactionId; */ var result = 0L; log.Result(result); return(result); } catch (Exception ex) { log.Exception(ex); throw; } }