// GET: Orders/ProcessOrder/5 public async Task <ActionResult> ProcessOrder(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } double TotalCost = 0; List <int> orderedgoodsIDs = new List <int>(); List <Package> packages = await db.Packages.Where(d => d.OrderID == id).ToListAsync(); List <OrderedGood> orderedgoods = await db.OrderedGoods.Where(d => d.OrderID == id).ToListAsync(); List <OrderedGoodViewModel> OrderedGoods = new List <OrderedGoodViewModel>(); List <PackageViewModel> Packages = new List <PackageViewModel>(); foreach (OrderedGood good in orderedgoods) { OrderedGoods.Add(new OrderedGoodViewModel { OrderedGoodInfo = good, GoodName = db.GoodInfoes.Find(good.GoodID).Name }); orderedgoodsIDs.Add(good.GoodID); } foreach (Package pkg in packages) { Packages.Add(new PackageViewModel { PackageInfo = pkg, DeliverName = db.PackageProviders.Find(pkg.ProviderID).ProviderName, }); } List <StorageGoodViewModel> AssignedGoodInStorage = new List <StorageGoodViewModel>(); foreach (Storage storagegood in db.Storages.Where(d => d.OrderID == id)) { AssignedGoodInStorage.Add(new StorageGoodViewModel { StorageGoodInfo = storagegood, GoodName = db.GoodInfoes.Find(storagegood.GoodID).Name }); TotalCost += storagegood.TotalCost ?? 0; } OrderViewModel orderviewdata = await GetOrderViewModelData(db.Orders.Find(id)); ProcessOrderViewModel processOrderview = new ProcessOrderViewModel { TotalCost = TotalCost, Revenue = Convert.ToDouble(0), Duration = 1, OrderInfoView = orderviewdata, Packages = Packages, OrderedGoods = OrderedGoods, AssignedGoodInStorage = AssignedGoodInStorage }; return(View(processOrderview)); }
public async Task <IActionResult> ViewOrder(long id, string statusMessage = null, string successMessage = null, string failureMessage = null) { var viewModel = new ProcessOrderViewModel() { Order = OrderHelper.GetOrder(id, _context), StatusMessage = statusMessage, FailureMessage = failureMessage, SuccessMessage = successMessage, Returns = _context.Returns. Where(x => x.OrderId == id). Include(x => x.ReturnItems). ToList(), OrderHistories = _context.OrderHistories. Where(x => x.OrderId == id). Include(x => x.OrderStatus). ToList() }; foreach (var returnItem in viewModel.Returns) { var productList = new List <Product>(); foreach (var itemId in returnItem.ReturnItems) { var product = _context.Products. Where(x => x.Id == itemId.ItemId). Include(x => x.ProductImages). SingleOrDefault(); productList.Add(product); } returnItem.Products = productList; } viewModel.User = await _userManager.FindByIdAsync(viewModel.Order.UserId); return(View(viewModel)); }