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(); }
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);