public IHttpActionResult Update(int id, [FromBody] OrderUpdateViewModel order) { if (order == null || id != order.OrderId) { return(BadRequest()); } var statuses = Enum.GetValues(typeof(OrderStatus)).Cast <int>().ToArray(); if (statuses.Contains(order.Status) == false) { return(BadRequest()); } var existingOrder = ordersRepo.GetById(id); if (existingOrder == null || existingOrder.IsDeleted) { return(NotFound()); } if (existingOrder == null || existingOrder.IsDeleted) { return(NotFound()); } if (order.Status == (int)OrderStatus.Shipped) { existingOrder.Status = (int)OrderStatus.Shipped; existingOrder.ShippedAt = DateTime.Now; existingOrder.DeliveredAt = null; } else if (order.Status == (int)OrderStatus.Delivered) { existingOrder.Status = (int)OrderStatus.Delivered; existingOrder.DeliveredAt = DateTime.Now; } else { existingOrder.Status = (int)OrderStatus.Created; existingOrder.DeliveredAt = null; existingOrder.ShippedAt = null; } ordersRepo.Update(existingOrder); return(StatusCode(HttpStatusCode.NoContent)); }
public async Task <IActionResult> OrderUpdate(OrderUpdateViewModel viewModel) { var orderModel = orderService.Get(viewModel.OrderID); if (orderModel == null) { return(View(viewModel)); } var ENVIRONMENT_USER_ID = await userManager.GetUserAsync(User); if (ENVIRONMENT_USER_ID == null) { return(RedirectToAction("SignIn", "Login")); } orderModel.LastModifyByUser = ENVIRONMENT_USER_ID.Id; orderModel.LastModifyDate = DateTime.Now; orderModel.DeadlineShip = viewModel.DeadlineShip; orderModel.ShippingDate = viewModel.ShippingDate; orderModel.Shipper = viewModel.Shipper; orderModel.State++; int isReturn = 0; // Execute Insert try { isReturn = orderService.UpdateOrder(orderModel); viewModel.IsError = false; // success } catch (Exception e) { viewModel.Message = e.Message; viewModel.IsError = true; } return(View(viewModel)); }
public async Task <IActionResult> OrderUpdate(int orderID) { OrderUpdateViewModel viewModel = new OrderUpdateViewModel(); viewModel.ProductDetail = new List <ProductDetailBasicViewModel>(); viewModel.IsError = true; var ENVIRONMENT_USER_ID = await userManager.GetUserAsync(User); if (ENVIRONMENT_USER_ID == null) { return(RedirectToAction("SignIn", "Login")); } var role = userManager.GetRolesAsync(ENVIRONMENT_USER_ID).Result; var isShipper = false; if (role.Contains("Shipper")) { isShipper = true; } viewModel.UserID = ENVIRONMENT_USER_ID.Id; viewModel.UserName = ENVIRONMENT_USER_ID.UserName; Order orderModel = orderService.Get(orderID); if (orderModel == null) { return(View(viewModel)); } viewModel.SumPrice = orderModel.PriceSum; // Giá tổng viewModel.ShippingFee = orderModel.ShippingFee; // Phí vận chuyển viewModel.FinalPrice = orderModel.PriceSum + orderModel.ShippingFee; // Tổng tiền thu viewModel.CreateDate = orderModel.CreateDate; viewModel.OrderID = orderID; viewModel.State = orderModel.State; viewModel.Shipper = orderModel.Shipper; viewModel.ReceiverAddress = orderModel.Address; viewModel.ReceiverName = orderModel.Name; viewModel.ReceiverPhone = orderModel.PhoneNumber; if (isShipper) { viewModel.ShippingDate = (orderModel.ShippingDate == null) ? DateTime.Now : orderModel.ShippingDate; } viewModel.DeadlineShip = (orderModel.DeadlineShip == null) ? DateTime.Now : orderModel.DeadlineShip; IEnumerable <OrderDetail> orderDetailModel = orderDetailService.GetListByOrder(orderID); List <ProductDetailBasicViewModel> productDetail = new List <ProductDetailBasicViewModel>(); foreach (var orderDetail in orderDetailModel) { ProductDetail detail = productDetailService.GetOne(orderDetail.ProductDetailId); detail.PriceNavigation = priceService.GetOne((Int32)detail.Price); detail.ColorNavigation = productTypeService.GetOne((Int32)detail.Color); detail.SizeNavigation = productTypeService.GetOne((Int32)detail.Size); ProductDetailBasicViewModel product = new ProductDetailBasicViewModel(detail); product.PriceText = orderDetail.Price; product.Quantity = orderDetail.Quantity; product.ProductName = detail.Product.Name; product.SumPriceText = product.PriceText * product.Quantity; productDetail.Add(product); } viewModel.ProductDetail = productDetail; viewModel.CbbShipper = GetShippers(); return(View(viewModel)); }