public JsonResult AddToBasket(int productId) { BasketSummaryView basketSummaryView = new BasketSummaryView(); Guid basketId = base.GetBasketId(); bool createNewBasket = basketId == Guid.Empty; if (createNewBasket == false) { ModifyBasketRequest modifyBasketRequest = new ModifyBasketRequest(); modifyBasketRequest.ProductsToAdd.Add(productId); modifyBasketRequest.BasketId = basketId; try { ModifyBasketResponse response = _basketService .ModifyBasket(modifyBasketRequest); basketSummaryView = response.Basket.ConvertToSummary(); SaveBasketSummaryToCookie(basketSummaryView.NumberOfItems, basketSummaryView.BasketTotal); } catch (BasketDoesNotExistException ex) { createNewBasket = true; } } if (createNewBasket) { CreateBasketRequest createBasketRequest = new CreateBasketRequest(); createBasketRequest.ProductsToAdd.Add(productId); CreateBasketResponse response = _basketService .CreateBasket(createBasketRequest); SaveBasketIdToCookie(response.Basket.Id); basketSummaryView = response.Basket.ConvertToSummary(); SaveBasketSummaryToCookie(basketSummaryView.NumberOfItems, basketSummaryView.BasketTotal); } return(Json(basketSummaryView)); }
public CreateBasketResponse CreateBasket(CreateBasketRequest request) { CreateBasketResponse response = new CreateBasketResponse(); Basket basket = new Basket(); basket.SetDeliveryOption(GetCheapestDeliveryOption()); AddProductsToBasket(request.ProductsToAdd, basket); ThrowExceptionIfBasketIsInvalid(basket); _basketRepository.Save(basket); _uow.Commit(); response.Basket = basket.ConvertToBasketView(); return(response); }
public CreateBasketResponse CreateBasket(CreateBasketRequest basketRequest) { CreateBasketResponse response = new CreateBasketResponse(); Basket basket = new Basket(); Customer customer = _customerRepository.FindBy(basketRequest.CustomerEmail); customer.Email = basketRequest.CustomerEmail; basket.SetDeliveryOption(GetCheapestDeliveryOption()); AddProductsToBasket(basketRequest.ProductsToAdd, basket); basket.SetCustomer(customer); basket.ThrowExceptionIfInvalid(); _basketRepository.Save(basket); customer.AddBasket(basket); customer.ThrowExceptionIfInvalid(); _customerRepository.Save(customer); _uow.Commit(); response.Basket = _mapper.Map <Basket, BasketView>(basket); return(response); }
public IActionResult AddToBasket(int productId) { BasketSummaryView basketSummaryView = new BasketSummaryView(); Guid basketId = GetBasketId(); bool createNewBasket = basketId == Guid.Empty; if (!createNewBasket) { ModifyBasketRequest modifyBasketRequest = new ModifyBasketRequest(); modifyBasketRequest.ProductsToAdd.Add(productId); modifyBasketRequest.BasketId = basketId; try { ModifyBasketResponse response = _basketService.ModifyBasket(modifyBasketRequest); basketSummaryView = response.Basket.ConvertToSummary(); } catch (BasketDoesNotExistException) { createNewBasket = true; } } if (createNewBasket) { CreateBasketRequest createBasketRequest = new CreateBasketRequest(); createBasketRequest.CustomerEmail = _cookieAuthentication.GetAuthenticationToken(); createBasketRequest.ProductsToAdd.Add(productId); CreateBasketResponse response = _basketService.CreateBasket(createBasketRequest); basketSummaryView = response.Basket.ConvertToSummary(); } return(Ok(basketSummaryView)); }