public CartFindResponse FindCartById(CartFindRequest request)
        {
            var response         = new CartFindResponse();
            var validationErrors = _cartValidation.CartFindRequestValidation.Validate(request);
            var dbErrors         = new List <DatabaseErrors>();

            if (validationErrors.Count != 0)
            {
                response.ValidationErrors = validationErrors;
            }
            else
            {
                try
                {
                    response.Cart   = _cartRepository.ReadById(request);
                    response.Amount = _calculateTotalAmount(response.Cart.ProductsCarts);
                }
                catch (SqlException)
                {
                    dbErrors.Add(DatabaseErrors.DB_CONNECTION_FAILED);
                }
                response.DBErrors = dbErrors;
            }
            return(response);
        }
        private CartFindRequest getCartById()
        {
            CartFindRequest request = new CartFindRequest();

            request.CartId = 1;

            return(request);
        }
        private long _findCartInDB(long id)
        {
            var cartFindRequest = new CartFindRequest
            {
                CartId = id
            };

            return(FindCartById(cartFindRequest).Cart.Id);
        }
Exemplo n.º 4
0
        public Cart ReadById(CartFindRequest request)
        {
            using (var _context = new ShoppingListContext())
            {
                _context.Configuration.LazyLoadingEnabled = false;

                var cart = _context.Cart
                           .Where(c => c.Id == request.CartId)
                           .Include(pc => pc.ProductsCarts.Select(p => p.Product))
                           .FirstOrDefault();

                return(cart);
            }
        }
        public AddUpdateCartResponse AddToCart(AddUpdateCartRequest request)
        {
            var productFindRequest = new ProductFindRequest
            {
                ProductId = request.ProductId
            };

            var cartFindRequest = new CartFindRequest
            {
                CartId = request.CartId
            };

            var product = _productService.FindById(productFindRequest).FoundProduct;
            var cart    = FindCartById(cartFindRequest).Cart;

            var validationErrors = _cartValidation.AddProductToCartValidation.Validate(request);
            var DBErrors         = new List <DatabaseErrors>();

            var response = new AddUpdateCartResponse();

            if (validationErrors.Count != 0)
            {
                response.ValidationErrors = validationErrors;
            }
            else
            {
                try
                {
                    response.HasAdded = _cartRepository.ToCart(product, cart, request.Quantity);
                }
                catch (UniqueKeyViolationException)
                {
                    DBErrors.Add(DatabaseErrors.DB_DUPLICATE_ENTRY);
                }
                response.DBErrors = DBErrors;
            }
            return(response);
        }