public IActionResult AddOrderItem(AddOrderItemViewModel model) { _logger.LogInfo($"Zapytanie do metody AddOrderItem(model)", new { model }); var medicineListResult = _selectService.GetMedicineSelectList(); if (!medicineListResult.IsSuccess) { return(RedirectToDetails(model.OrderId, medicineListResult.FailureMessage)); } if (!ModelState.IsValid) { model.MedicineList = medicineListResult.Value; return(View(model)); } var result = _orderRepo.AddOrderItem(model.OrderId, model); if (!result.IsSuccess) { AddErrorForRedirect(result.FailureMessage); } return(RedirectToDetails(model.OrderId)); }
public IActionResult AddItem(AddOrderItemViewModel addOrderItemViewModel) { if (ModelState.IsValid) { var productID = addOrderItemViewModel.ProductID; var orderID = addOrderItemViewModel.OrderID; IList <ProductOrder> existingItems = context.ProductOrders .Where(cm => cm.ProductID == productID) .Where(cm => cm.OrderID == orderID).ToList(); if (existingItems.Count == 0) { ProductOrder orderItem = new ProductOrder { Product = context.Products.SingleOrDefault(c => c.ID == productID), Order = context.Orders.SingleOrDefault(m => m.ID == orderID) }; context.ProductOrders.Add(orderItem); context.SaveChanges(); } return(Redirect(string.Format("/Order/ViewOrder/{0}", addOrderItemViewModel.OrderID))); } return(View(addOrderItemViewModel)); }
public IActionResult AddOrderItem(int orderId) { _logger.LogInfo($"Zapytanie do metody AddOrderItem(orderId)", new { orderId }); var result = _selectService.GetMedicineSelectList(); if (!result.IsSuccess) { return(RedirectToDetails(orderId, result.FailureMessage)); } var model = new AddOrderItemViewModel { OrderId = orderId, MedicineList = result.Value }; return(View(model)); }
public IActionResult AddOrderItem(AddOrderItemViewModel model) //add order using view model request and redirect to index page of items with a toast message { if (ModelState.IsValid) { PubItems Item = _context.GetPubItem(model.ItemId); if (Item != null) { //Item exists in database. if (Item.ItemOnSale) { if (model.ItemQuantity <= Item.ItemStock) { if (model.ItemQuantity > 0 && model.ItemQuantity <= GlobalConstants.MaxItemsPerOrder) //compare against max items per order only rather than item stock as well as the item stock may change when the user actually makes their order. { string Session = HttpContext.Session.GetString("PubSession"); //store session id int OrderBasketID = 0; if (Session != null) //if a session has been created { PubSessions pubSession = _context.GetPubSession(Session); //get session info if (pubSession != null) //session exists { if (pubSession.OrderBasketId != 0) { //add item OrderBasketID = pubSession.OrderBasketId; PubOrderBasketItems item = _context.GetPubOrderBasketItem(pubSession.OrderBasketId, model.ItemId); if (item != null) { //edit item int newQuantity = model.ItemQuantity + item.ItemQuantity; if (newQuantity <= Item.ItemStock) { if (newQuantity <= GlobalConstants.MaxItemsPerOrder) { //edit if (_context.EditPubOrderBasketItem(OrderBasketID, model.ItemId, newQuantity)) { TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.Toast("Item Added", String.Format("{0}x {1} was added to your basket. Total Quantity: {2}", model.ItemQuantity, Item.ItemName, newQuantity), Item.ItemImagePath)); return(RedirectToAction("Index")); } else { TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.DefaultError()); return(RedirectToAction("Index")); //error item could not be updated } } else { //max items error TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.ItemQuantityMaxError(Item.ItemImagePath)); return(RedirectToAction("Index")); } } else { TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.ItemQuantityStockError(Item.ItemImagePath)); return(RedirectToAction("Index")); //not enoguh in stock error } } } else { //create new orderbasket and add item OrderBasketID = _context.CreatePubSessionOrderBasket(Session, null); if (pubSession.UserId != 0) { if (_context.GetPubUser(pubSession.UserId) != null) { _context.UpdatePubUserOrderBasket(pubSession.UserId, OrderBasketID); } } } } else { //create a new session and orderbasket and add item Session = _context.AddPubSession(null, null); if (Session != null) { HttpContext.Session.SetString("PubSession", Session); OrderBasketID = _context.CreatePubSessionOrderBasket(Session, null); } } } else //create a new session and orderbasket and add item { Session = _context.AddPubSession(null, null); if (Session != null) { HttpContext.Session.SetString("PubSession", Session); OrderBasketID = _context.CreatePubSessionOrderBasket(Session, null); } } if (OrderBasketID != 0) { if (_context.AddPubOrderBasketItem(OrderBasketID, model.ItemId, model.ItemQuantity)) { TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.Toast("Item Added", String.Format("{0}x {1} was added to your basket", model.ItemQuantity, Item.ItemName), Item.ItemImagePath)); return(RedirectToAction("Index")); } } } else { TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.ItemQuantityMaxError(Item.ItemImagePath)); return(RedirectToAction("Index")); } } else { TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.ItemQuantityStockError(Item.ItemImagePath)); return(RedirectToAction("Index")); } } else { //error item not on sale } } } TempData["ToastMessage"] = JsonSerializer.Serialize(ToastAlert.DefaultError()); return(RedirectToAction("Index")); }
public IActionResult AddOrderItem([FromBody] AddOrderItemViewModel payload) { _orderService.AddOrderItem(payload.Order, payload.OrderItem); return(Ok(payload.Order)); }