Пример #1
0
        public Cart CancelProduct(CartRequest request)
        {
            Cart currentCart = GetCartByUser(request.UserId);

            CancelItem(currentCart, request.ProductId, request.Quantity);
            return(currentCart);
        }
        public async Task Cart_Add_Api_Should_Return_Updated_Cart_Response_When_Same_Cart_Request()
        {
            var firstCartRequest = new CartRequest
            {
                ProductId = 2,
                Quantity  = 5
            };
            var secondCartRequest = new CartRequest
            {
                ProductId = 2,
                Quantity  = 10
            };

            var firstContent = new StringContent(JsonConvert.SerializeObject(firstCartRequest), Encoding.UTF8, "application/json");

            var secondContent = new StringContent(JsonConvert.SerializeObject(secondCartRequest), Encoding.UTF8, "application/json");

            await _client.PostAsync("/api/cart/add", firstContent);

            var response = await _client.PostAsync("/api/cart/add", secondContent);

            var result = await response.Content.ReadAsStringAsync();

            var expectedQuantity = firstCartRequest.Quantity + secondCartRequest.Quantity;

            var cartResponseMessage = JsonConvert.DeserializeObject <CartResponse>(result);

            var expectedStatusCode          = HttpStatusCode.OK;
            var expectedCartResponseMessage = "Cart Updated";

            Assert.Equal(expectedStatusCode, response.StatusCode);
            Assert.Equal(expectedCartResponseMessage, cartResponseMessage.Message);
            Assert.Equal(expectedQuantity, cartResponseMessage.AllCarts.First().Quantity);
        }
Пример #3
0
        private void UpdateDeliveryInfo(Cart currentCart, CartRequest request)
        {
            User currentUser = GetCurrentUser(request.UserId);

            UpdateDeliveryAddress(currentCart, request, currentUser);
            UpdateDeliveryPhone(currentCart, request, currentUser);
        }
Пример #4
0
        public async Task <IActionResult> AddAsync([FromBody] CartRequest cartRequest)
        {
            var newCart = mapper.Map <Cart>(cartRequest);
            var cart    = await cartService.addCartAsync(newCart);

            return(Ok(cart));
        }
Пример #5
0
        /// <summary>
        /// Add Book into Cart
        /// </summary>
        /// <param name="userID">User-ID</param>
        /// <param name="cart">Cart Data</param>
        /// <returns>If Data Added Successfully return Response Data else null or Bad Request</returns>
        public async Task <CartBookResponse> AddBookIntoCart(int userID, CartRequest cart)
        {
            try
            {
                CartBookResponse responseData = null;
                SQLConnection();
                using (SqlCommand cmd = new SqlCommand("AddBookIntoCart", conn))
                {
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@UserID", userID);
                    cmd.Parameters.AddWithValue("@BookID", cart.BookID);
                    cmd.Parameters.AddWithValue("@IsUsed", false);

                    conn.Open();
                    SqlDataReader dataReader = await cmd.ExecuteReaderAsync();

                    responseData = BookResponseModel(dataReader);
                };
                return(responseData);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Пример #6
0
        public void TestMethodCartRequestDeliveryAddress()
        {
            string      ADDRESS = "test";
            CartRequest request = new CartRequest();

            request.DeliveryAddress = ADDRESS;
            Assert.AreEqual(request.DeliveryAddress, ADDRESS);
        }
Пример #7
0
        public void TestMethodCartRequestQuantity()
        {
            int         QUANTITY = 1;
            CartRequest request  = new CartRequest();

            request.Quantity = QUANTITY;
            Assert.AreEqual(request.Quantity, QUANTITY);
        }
Пример #8
0
        public void TestMethodCartRequestProductId()
        {
            string      PRODUCT_ID = "1";
            CartRequest request    = new CartRequest();

            request.ProductId = PRODUCT_ID;
            Assert.AreEqual(request.ProductId, PRODUCT_ID);
        }
Пример #9
0
        public async Task <CartRequest> AddCart(CartRequest cartRequest)
        {
            HttpContent httpContent = new StringContent(JsonConvert.SerializeObject(cartRequest), Encoding.UTF8, "application/json");
            var         response    = await _httpClient.PostAsync("api/Carts", httpContent);

            response.EnsureSuccessStatusCode();
            return(await response.Content.ReadAsAsync <CartRequest>());
        }
Пример #10
0
        public void TestMethodCartRequestUserId()
        {
            string      USER_ID = "admin";
            CartRequest request = new CartRequest();

            request.UserId = USER_ID;
            Assert.AreEqual(request.UserId, USER_ID);
        }
Пример #11
0
        private CartRequest GetCartRequest()
        {
            CartRequest cartRequest = new CartRequest();

            cartRequest.UserId    = USER_ID;
            cartRequest.ProductId = PRODUCT_ID;
            cartRequest.Quantity  = 1;
            return(cartRequest);
        }
Пример #12
0
        public void Cart_Service_Should_Throw_Exception_When_Quantity_Greater_Then_Product_Stock()
        {
            var cartRequest = new CartRequest
            {
                ProductId = 1,
                Quantity  = 51
            };

            Assert.Throws <ProductStockExceedException>(() => _cartService.TryToAddCart(cartRequest));
        }
Пример #13
0
        public void Cart_Service_Should_Throw_Exception_When_Product_Not_Found()
        {
            var cartRequest = new CartRequest
            {
                ProductId = 12,
                Quantity  = 33
            };

            Assert.Throws <ProductNotFoundException>(() => _cartService.TryToAddCart(cartRequest));
        }
Пример #14
0
        public ShoppingCart GetCart()
        {
            CartRequest request = new CartRequest();
            request.RequestId = NewRequestId;
            request.AccessToken = AccessToken;
            request.ClientTag = ClientTag;

            request.Action = "Read";

            CartResponse response = ActionServiceClient.GetCart(request);

            if (request.RequestId != response.CorrelationId)
                throw new ApplicationException("GetCart: Request and CorrelationId do not match.");

            return response.Cart;
        }
Пример #15
0
        /// <summary>
        /// Removes a line item from the shopping cart.
        /// </summary>
        /// <param name="productId">The item to be removed.</param>
        /// <returns>Updated shopping cart.</returns>
        public ShoppingCart RemoveItem(int productId)
        {
            CartRequest request = new CartRequest();
            request.RequestId = NewRequestId;
            request.AccessToken = AccessToken;
            request.ClientTag = ClientTag;

            request.Action = "Delete";
            request.CartItem = new ShoppingCartItem { Id = productId };

            CartResponse response = ActionServiceClient.SetCart(request);

            if (request.RequestId != response.CorrelationId)
                throw new ApplicationException("RemoveItem: Request and CorrelationId do not match.");

            return response.Cart;
        }
Пример #16
0
        /// <summary>
        /// Adds an item to the shopping cart.
        /// </summary>
        /// <param name="productId">Unique product identifier or item.</param>
        /// <param name="name">Item name.</param>
        /// <param name="quantity">Quantity of items.</param>
        /// <param name="unitPrice">Unit price for each item.</param>
        /// <returns>Updated shopping cart.</returns>
        public ShoppingCart AddItem(int productId, string name, int quantity, double unitPrice)
        {
            CartRequest request = new CartRequest();
            request.RequestId = NewRequestId;
            request.AccessToken = AccessToken;
            request.ClientTag = ClientTag;

            request.Action = "Create";
            request.CartItem = new ShoppingCartItem { Id = productId, Name = name, Quantity = quantity, UnitPrice = unitPrice };

            CartResponse response = ActionServiceClient.SetCart(request);

            if (request.RequestId != response.CorrelationId)
                throw new ApplicationException("AddItem: Request and CorrelationId do not match.");

            return response.Cart;
        }
Пример #17
0
        /// <summary>
        /// Sets shipping method used to compute shipping charges.
        /// </summary>
        /// <param name="shippingMethod">The name of the shipper.</param>
        /// <returns>Updated shopping cart.</returns>
        public ShoppingCart SetShippingMethod(string shippingMethod)
        {
            CartRequest request = new CartRequest();
            request.RequestId = NewRequestId;
            request.AccessToken = AccessToken;
            request.ClientTag = ClientTag;

            request.Action = "Update";
            request.ShippingMethod = shippingMethod;

            CartResponse response = ActionServiceClient.SetCart(request);

            if (request.RequestId != response.CorrelationId)
                throw new ApplicationException("SetShippingMethod: Request and CorrelationId do not match.");

            return response.Cart;
        }