public OrderDetailResponse Any(OrderDetailUpdateRequest request)
        {
            if (Validator != null)
            {
                Validator.ValidateAndThrow(request, ApplyTo.Put);
            }

            OnBeforeOrderDetailUpdateRequest(request);

            var output = Repository.Update(request);

            OnAfterOrderDetailUpdateRequest(request, output);
            return(output);
        }
        public OrderDetailResponse Update(OrderDetailUpdateRequest request)
        {
            using (var adapter = DataAccessAdapterFactory.NewDataAccessAdapter())
            {
                OnBeforeOrderDetailUpdateRequest(adapter, request);

                var entity = request.FromDto();
                entity.IsNew   = false;
                entity.IsDirty = true;

                if (adapter.SaveEntity(entity, true))
                {
                    OnAfterOrderDetailUpdateRequest(adapter, request);
                    return(new OrderDetailResponse(entity.ToDto()));
                }
            }

            throw new InvalidOperationException();
        }
Exemplo n.º 3
0
        public async Task <UpdateOrderDetailViewModel> UpdateOrderDetail(OrderDetailUpdateRequest request)
        {
            var orderDetailId = 0;
            var total         = 0;
            var isSuccess     = false;

            using (var transaction = _context.Database.BeginTransaction())
            {
                try
                {
                    var orderDetail = new OrderDetail()
                    {
                        id        = request.id,
                        orderId   = request.orderId,
                        productId = request.productId,
                        quantity  = request.quantity,
                        sale      = request.sale,
                        status    = request.status,
                        unitPrice = request.unitPrice,
                    };
                    _context.Entry(orderDetail).State = EntityState.Modified;
                    var check = await _context.SaveChangesAsync() > 0;

                    if (check)
                    {
                        var order = await _context.orders.Where(x => x.id == request.orderId).FirstOrDefaultAsync();

                        var orderDetailOfOrder = await _context.orderDetails
                                                 .Where(y => y.orderId == request.orderId && y.status == ActionStatus.Display).ToListAsync();

                        total = order.feeShip;
                        foreach (var item in orderDetailOfOrder)
                        {
                            total += item.quantity * item.unitPrice * (100 - item.sale) / 100;
                        }
                        order.total = total;
                        _context.Entry(order).State = EntityState.Modified;
                        var check2 = await _context.SaveChangesAsync() > 0;

                        if (check2)
                        {
                            orderDetailId = orderDetail.id;
                            isSuccess     = true;
                        }
                        else
                        {
                            orderDetailId = 0;
                            isSuccess     = false;
                        }
                    }
                    else
                    {
                        orderDetailId = 0;
                        isSuccess     = false;
                    }
                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                }
            }
            return(new UpdateOrderDetailViewModel()
            {
                orderDetailId = orderDetailId,
                isSuccess = isSuccess,
                total = total
            });
        }
        public async Task <IActionResult> UpdateOrderDetail(OrderDetailUpdateRequest request)
        {
            var data = await _manageOrderService.UpdateOrderDetail(request);

            return(Ok(data));
        }
 partial void OnAfterOrderDetailUpdateRequest(IDataAccessAdapter adapter, OrderDetailUpdateRequest request);
 partial void OnAfterOrderDetailUpdateRequest(OrderDetailUpdateRequest request, OrderDetailResponse response);
 partial void OnBeforeOrderDetailUpdateRequest(OrderDetailUpdateRequest request);