public static AlterOrderResponse AlterOrder_Admin(AlterOrderRequestModel source) { using (var dbContext = new DeliversEntities()) { var response = new AlterOrderResponse { isSuccesss = true }; var totalAmount = source.Items.Sum(i => ItemDetailsService.GetItemDetailLocalById(i.itemId).Price *i.quantity); if (totalAmount <= 0) { response.isSuccesss = false; response.Message = "Total amount can not be 0"; return(response); } var order = dbContext.Orders.FirstOrDefault(o => o.Id == source.OrderId); if (order != null) { if (order.Status == OrderHistoryEnu.Deliverd.Value || order.Status == OrderHistoryEnu.PickedUp.Value) { response.isSuccesss = false; response.Message = "Can not change order with status: " + order.Status; return(response); } if (order.Amount != totalAmount) { order.Amount = totalAmount; order.UpdatedAt = CommonService.GetSystemTime(); if (order.OrderDetails != null && order.OrderDetails.Any()) { foreach (var det in order.OrderDetails) { var newQ = source.Items.FirstOrDefault(i => i.itemId == det.ItemId).quantity; if (newQ != det.Quantity) { det.Quantity = newQ; } } dbContext.OrderHistories.Add(new OrderHistory { DateTime = CommonService.GetSystemTime(), IsCurrent = false, OrderId = source.OrderId, Status = OrderHistoryEnu.OrderAltered.Value, Comments = source.Comments }); dbContext.SaveChanges(); } } } return(response); } }
public JsonResult AlterOrder(AlterOrderRequestModel source) { var response = OrderService.AlterOrder_Admin(source); return(Json(response, JsonRequestBehavior.AllowGet)); }