コード例 #1
0
ファイル: OrderController.cs プロジェクト: BartMiki/iDrugs
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
ファイル: OrderController.cs プロジェクト: BartMiki/iDrugs
        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));
        }
コード例 #4
0
        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"));
        }
コード例 #5
0
 public IActionResult AddOrderItem([FromBody] AddOrderItemViewModel payload)
 {
     _orderService.AddOrderItem(payload.Order, payload.OrderItem);
     return(Ok(payload.Order));
 }