public AddUpdateCartDTO AddUpdateCart([FromBody] AddUpdateCartRequest addProductToCartRequest) { var responseJson = new AddUpdateCartDTO(); var serverAnswer = _cartService.AddToCart(addProductToCartRequest); if (addProductToCartRequest.Quantity != 0) { if (serverAnswer.HasAdded) { responseJson.productId = addProductToCartRequest.ProductId; responseJson.cartId = addProductToCartRequest.CartId; responseJson.quantity = addProductToCartRequest.Quantity; responseJson.status = Status.Success; } else { responseJson.validationErrors = serverAnswer.ValidationErrors; responseJson.dbErrors = serverAnswer.DBErrors; responseJson.status = Status.Failed; } } else { RemoveProductFromCart(new RemoveProductFromCartRequest { CartId = addProductToCartRequest.CartId, ProductId = addProductToCartRequest.ProductId }); } return(responseJson); }
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); }