public ActionResult AddOrder(PlaceOrderViewModelV2 viewModel) { try { HttpContext.Session.SetString("CustID", JsonConvert.SerializeObject(viewModel.CustID)); HttpContext.Session.SetString("LocID", JsonConvert.SerializeObject(viewModel.LocID)); Orders o = new Orders() { Cust = _repository.GetCustomerById(viewModel.CustID), Location = _repository.GetLocationByID(viewModel.LocID), CustOrder = _mapper.ParseInvID(viewModel.custBought) }; _repository.AddOrder(o); Dictionary <int, int> custB = viewModel.custBought; HttpContext.Session.SetString("CustOrder", JsonConvert.SerializeObject(custB)); Log.Information("Order Added"); Log.Information($"Order made by customer {_repository.GetCustomerById(viewModel.CustID).FirstName} {_repository.GetCustomerById(viewModel.CustID).LastName} at {_repository.GetLocationByID(viewModel.LocID).BranchName}"); PlaceOrderViewModelV2 pass = new PlaceOrderViewModelV2() { custBought = viewModel.custBought, CustID = viewModel.CustID, LocID = viewModel.LocID }; return(RedirectToAction(nameof(OrderDetails), pass)); } catch (Exception e) { Log.Error("Something went wrong in placing order"); Log.Error(e.Message); return(RedirectToAction(nameof(PlaceOrder))); } }
public ActionResult PlaceOrder(int LocID, int CustID) { PlaceOrderViewModelV2 AvailInvent = _mapper.ParseMenu(_repository.GetAvailInventory(LocID), CustID, LocID); if (AvailInvent.availInventory.Count < 1) { Log.Information($"{_repository.GetLocationByID(LocID).BranchName} has no inventory"); } return(View(AvailInvent)); }
public ActionResult PlaceOrder() { var value = HttpContext.Session.GetString("CustID"); int CustID = JsonConvert.DeserializeObject <int>(value); value = HttpContext.Session.GetString("LocID"); int LocID = JsonConvert.DeserializeObject <int>(value); PlaceOrderViewModelV2 AvailInvent = _mapper.ParseMenu(_repository.GetAvailInventory(LocID), CustID, LocID); return(View(AvailInvent)); }
/// <summary> /// Action that prints order details with data from adding an order /// </summary> /// <param name="viewModel"></param> /// <returns></returns> public ActionResult OrderDetails(PlaceOrderViewModelV2 viewModel) { var value = HttpContext.Session.GetString("CustOrder"); Dictionary <int, int> custOrder = JsonConvert.DeserializeObject <Dictionary <int, int> >(value); Orders o = new Orders() { Cust = _repository.GetCustomerById(viewModel.CustID), Location = _repository.GetLocationByID(viewModel.LocID), CustOrder = _mapper.ParseInvID(custOrder) }; OrderDetailsViewModel ordDeets = _mapper.ParseOrderDetails(o); decimal total = 0; foreach (AvailInvViewModel item in ordDeets.custBought) { item.ProductName = _repository.GetProductNameById(item.InventID); item.Price = _repository.GetProductPriceById(item.InventID); total += item.Price * item.Stock; } ViewData["Total"] = total; return(View(ordDeets)); }