Ejemplo n.º 1
0
        public IHttpActionResult AddProductToCart(AddProductToCartRequest request)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    string errorMsg = string.Empty;
                    errorMsg += string.Join(" ", ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage));
                    return(BadRequest(errorMsg));
                }

                var product = _productModel.GetProduct(request.ProductId);
                if (product == null)
                {
                    return(BadRequest(MessageResource.UnavailableProduct));
                }

                var response = new CartTransactionResponse()
                {
                    UserCart          = _shoppingCartModel.AddProductInCart(request),
                    AvailableProducts = _productModel.GetAllProducts().ToList()
                };
                return(Ok(response));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Ejemplo n.º 2
0
        public void MakeAddProductToCartLine(int storeID, string username, int productID, int amount)
        {
            AddProductToCartRequest req = new AddProductToCartRequest(username, storeID, productID, amount);
            string json = JsonConvert.SerializeObject(req);

            lines.Add(json);
        }
Ejemplo n.º 3
0
        public byte[] MakeAddToCartRequest(string user, int store, int product, int amount)
        {
            AddProductToCartRequest req = new AddProductToCartRequest(user, store, product, amount);
            string jsonString           = JsonConvert.SerializeObject(req);

            return(sec.Encrypt(jsonString));
        }
Ejemplo n.º 4
0
        internal byte[] HandleAddProductToCart(string json)
        {
            AddProductToCartRequest res = JsonConvert.DeserializeObject <AddProductToCartRequest>(json);
            Tuple <bool, string>    ans = purchService.AddProductToShoppingCart(res.User, res.Store, res.Product, res.Amount);
            string jsonAns = Seralize(new SuccessFailResponse(ans.Item1, ans.Item2));

            return(security.Encrypt(jsonAns));
        }
Ejemplo n.º 5
0
        public Cart AddProductInCart(AddProductToCartRequest request)
        {
            //Decrease the products inventory
            DecreaseProductQuantity(request.ProductId, request.ProductCount);

            var product = GetProduct(request.ProductId);

            product.Count = request.ProductCount;

            Directory.CreateDirectory(_cartsXmlPath);
            var  userCartPath = $"{_cartsXmlPath + request.UserId}.xml";
            Cart userCart;

            if (!File.Exists(userCartPath))
            {
                //ShoppingCart for the userNameId is not yet existing, so create a new cart and add userNameId.xml in the CartsOfDifferentUsersPath
                userCart = new Cart {
                    UserId = request.UserId, Products = new ProductsCollection()
                    {
                        Products = new List <Product>()
                        {
                            product
                        }
                    }
                };
            }
            else
            {
                //ShoppingCart for the userNameId is already existing.
                userCart = GetUserCart(request.UserId);
                var productInCart = userCart.Products.Products.SingleOrDefault(x => x.Id == product.Id);

                //add the product to the ProductsList if the product is not yet existing in the cart.
                //If product already exists in the cart, sum their total count.
                if (productInCart == null)
                {
                    userCart.Products.Products.Add(product);
                }
                else
                {
                    productInCart.Count += product.Count;
                }
            }
            userCart.UpdateCartComputations();
            UpdateUserCart(userCart);
            return(GetUserCart(request.UserId));
        }
        public async Task <IActionResult> Create([FromBody] AddProductToCartRequest model)
        {
            var requestedUserId  = int.Parse(HttpContext.GetUserIdFromRequest());
            var cartDetailEntity = _mapper.Map <CartDetail>(model);

            var result = await _cartDetailService.AddProductToCartAsync(cartDetailEntity);

            if (!result.IsSuccess)
            {
                return(BadRequest(new AddProductToCartFailedResponse
                {
                    Errors = result.Errors
                }));
            }

            var cartDetailResponse = _mapper.Map <CartDetailResponse>(result.CartDetail);

            var locationUri = _uriService.GetByIdUri(
                ApiRoutes.Product.GetById.Replace("{cartDetailId}", cartDetailEntity.Id.ToString())
                );

            return(Created(locationUri,
                           new Response <CartDetailResponse>(cartDetailResponse)));
        }
Ejemplo n.º 7
0
 public UpdateProductToCartCommand(AddProductToCartRequest cartAddRequest)
 {
     _cartAddRequest = cartAddRequest;
 }
Ejemplo n.º 8
0
        public async Task <IActionResult> AddToCart(AddProductToCartRequest cartAddRequest)
        {
            var result = await _mediator.Send(new UpdateProductToCartCommand(cartAddRequest));

            return(Ok(result));
        }