Exemple #1
0
        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;
            }
        }