Ejemplo n.º 1
0
        /// <summary>
        /// adds item to the cart
        /// </summary>
        /// <param name="cartViewModel"></param>
        /// <returns></returns>
        public ActionResult AddItem([Bind(Include = "VariantID, ProductID, Quantity,OrderLimit, Inventory")] CartViewModel cartViewModel)
        {
            try
            {
                CartMessagesViewModel cartMessagesViewModel = new CartMessagesViewModel();

                if (ModelState.IsValid)
                {
                    CartDTO cartDTO = CartMapper.Map <CartViewModel, CartDTO>(cartViewModel);
                    cartDTO.UserID = new Guid(Session["UserID"].ToString());
                    try
                    {
                        CartBusinessContextObject.AddItemToCart(cartDTO);
                        cartMessagesViewModel.SuccessMessage = "Item Successfuly added to cart";
                        return(View(cartMessagesViewModel));
                    }
                    catch (ItemAlreadyInCartException)
                    {
                        cartMessagesViewModel.ErrorMessages.Add("Item is already present in the Cart");
                        return(View(cartMessagesViewModel));
                    }
                    catch (QuantityUnavailableException)
                    {
                        cartMessagesViewModel.ErrorMessages.Add("quantity unavailable");
                        return(View(cartMessagesViewModel));
                    }
                    catch (OrderLimitExceedException)
                    {
                        cartMessagesViewModel.ErrorMessages.Add("order quantity exceed limit");
                        return(View(cartMessagesViewModel));
                    }
                    catch (Exception ex)
                    {
                        return(View("Internal Error" + ex.Message));
                    }
                }
                else
                {
                    // display errors if occuered
                    foreach (var modelStateValue in ModelState.Values)
                    {
                        foreach (var modelStateError in modelStateValue.Errors)
                        {
                            cartMessagesViewModel.ErrorMessages.Add(modelStateError.ErrorMessage.ToString());
                        }
                    }
                    return(View(cartMessagesViewModel));
                }
            }catch (Exception ex)
            {
                return(RedirectToAction("ExceptionCatch", "Static", new { exception = ex.Message }));
            }
        }
Ejemplo n.º 2
0
        public ActionResult AddItem([Bind(Include = "VariantID, ProductID, OrderQuantity, OrderLimit, Inventory")] CartViewModel cartViewModel)
        {
            CartMessageViewModel cartMessageViewModel = new CartMessageViewModel();

            if (ModelState.IsValid)
            {
                CartDTO cartDTO = _CartMapper.Map <CartDTO>(cartViewModel);
                cartDTO.UserID = new Guid(Session["UserID"].ToString());
                try
                {
                    cartBusinessContext.AddItemToCart(cartDTO);
                    cartMessageViewModel.SuccessMessage = "Item Successfuly Added to Cart";
                    cartMessageViewModel.IsLoggedIn     = true;
                    return(View(cartMessageViewModel));
                }
                catch (ItemAlreadyInCartException ex)
                {
                    cartMessageViewModel.ErrorMessages.Add("Item is already present in the cart");
                    return(View(cartMessageViewModel));
                }
                catch (Exception ex)
                {
                    return(View("InternalError"));
                }
            }
            else
            {
                foreach (var modelState in ModelState.Values)
                {
                    foreach (var err in modelState.Errors)
                    {
                        cartMessageViewModel.ErrorMessages.Add(err.ErrorMessage.ToString());
                    }
                }
                return(View(cartMessageViewModel));
            }
        }