public JsonResult RemoveItem(int productId)
        {
            ModifyBasketRequest request = new ModifyBasketRequest();

            request.ItemsToRemove.Add(productId);
            request.BasketId = base.GetBasketId();

            ModifyBasketResponse reponse = _basketService.ModifyBasket(request);

            SaveBasketSummaryToCookie(reponse.Basket.NumberOfItems,
                                      reponse.Basket.BasketTotal);

            BasketDetailView basketDetailView = new BasketDetailView();

            basketDetailView.BasketSummary = new BasketSummaryView()
            {
                BasketTotal   = reponse.Basket.BasketTotal,
                NumberOfItems = reponse.Basket.NumberOfItems
            };

            basketDetailView.Basket          = reponse.Basket;
            basketDetailView.DeliveryOptions =
                _basketService.GetAllDispatchOptions().DeliveryOptions;

            return(Json(basketDetailView));
        }
        public JsonResult UpdateShipping(int shippingServiceId)
        {
            ModifyBasketRequest request = new ModifyBasketRequest();

            request.SetShippingServiceIdTo = shippingServiceId;
            request.BasketId = base.GetBasketId();

            BasketDetailView basketDetailView = new BasketDetailView();

            ModifyBasketResponse reponse = _basketService.ModifyBasket(request);

            SaveBasketSummaryToCookie(reponse.Basket.NumberOfItems,
                                      reponse.Basket.BasketTotal);

            basketDetailView.BasketSummary = new BasketSummaryView()
            {
                BasketTotal   = reponse.Basket.BasketTotal,
                NumberOfItems = reponse.Basket.NumberOfItems
            };

            basketDetailView.Basket          = reponse.Basket;
            basketDetailView.DeliveryOptions =
                _basketService.GetAllDispatchOptions().DeliveryOptions;

            return(Json(basketDetailView));
        }
        public JsonResult UpdateItems(JsonBasketQtyUpdateRequest jsonBasketQtyUpdateRequest)
        {
            ModifyBasketRequest request = new ModifyBasketRequest();

            request.BasketId      = base.GetBasketId();
            request.ItemsToUpdate = jsonBasketQtyUpdateRequest.ConvertToBasketItemUpdateRequests();;

            BasketDetailView     basketDetailView = new BasketDetailView();
            ModifyBasketResponse reponse          = _basketService.ModifyBasket(request);

            SaveBasketSummaryToCookie(reponse.Basket.NumberOfItems,
                                      reponse.Basket.BasketTotal);

            basketDetailView.BasketSummary = new BasketSummaryView()
            {
                BasketTotal   = reponse.Basket.BasketTotal,
                NumberOfItems = reponse.Basket.NumberOfItems
            };

            basketDetailView.Basket = reponse.Basket;

            basketDetailView.DeliveryOptions = _basketService
                                               .GetAllDispatchOptions().DeliveryOptions;

            return(Json(basketDetailView));
        }
        public ModifyBasketResponse ModifyBasket(ModifyBasketRequest request)
        {
            ModifyBasketResponse response = new ModifyBasketResponse();
            Basket basket = _basketRepository.FindBy(request.BasketId);

            if (basket == null)
            {
                throw new BasketDoesNotExistException();
            }

            AddProductsToBasket(request.ProductsToAdd, basket);

            UpdateLineQtys(request.ItemsToUpdate, basket);

            RemoveItemsFromBasket(request.ItemsToRemove, basket);

            if (request.SetShippingServiceIdTo != 0)
            {
                DeliveryOption deliveryOption = _deliveryOptionRepository.FindBy(request.SetShippingServiceIdTo);
                basket.SetDeliveryOption(deliveryOption);
            }

            ThrowExceptionIfBasketIsInvalid(basket);

            _basketRepository.Save(basket);
            _uow.Commit();

            response.Basket = basket.ConvertToBasketView();

            return(response);
        }
        public BasketDetailView UpdateItems(DTOs.BasketQtyUpdateRequest basketQtyUpdateRequest)
        {
            var request = new ModifyBasketRequest();

            request.BasketId      = base.GetBasketId();
            request.ItemsToUpdate = DTOs.DtoMapper.ConvertToBasketItemUpdateRequests(
                basketQtyUpdateRequest);

            BasketDetailView     basketDetailView = new BasketDetailView();
            ModifyBasketResponse reponse          = _basketService.ModifyBasket(request);

            SaveBasketSummaryToCookie(reponse.Basket.NumberOfItems, reponse.Basket.BasketTotal);

            basketDetailView.BasketSummary = new BasketSummaryView()
            {
                BasketTotal   = reponse.Basket.BasketTotal,
                NumberOfItems = reponse.Basket.NumberOfItems
            };

            basketDetailView.Basket = reponse.Basket;

            basketDetailView.DeliveryOptions = _basketService
                                               .GetAllDispatchOptions().DeliveryOptions;

            return(basketDetailView);
        }
        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));
        }
Ejemplo n.º 7
0
        public IActionResult UpdateItems([FromBody] BasketQtyUpdateRequest jsonBasketQtyUpdateRequest)
        {
            ModifyBasketRequest request = new ModifyBasketRequest();

            request.BasketId      = GetBasketId();
            request.ItemsToUpdate = jsonBasketQtyUpdateRequest.ConvertToBasketItemUpdateRequests();
            BasketDetailView     basketDetailView = new BasketDetailView();
            ModifyBasketResponse response         = _basketService.ModifyBasket(request);

            basketDetailView.BasketSummary = new BasketSummaryView
            {
                BasketTotal   = response.Basket.BasketTotal,
                NumberOfItems = response.Basket.NumberOfItems
            };
            basketDetailView.Basket          = response.Basket;
            basketDetailView.DeliveryOptions = _basketService.GetAllDispatchOptions().DeliveryOptions;

            return(Ok(basketDetailView));
        }
Ejemplo n.º 8
0
        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 BasketSummaryView AddToBasket(int productId)
        {
            BasketSummaryView basketSummaryView = new BasketSummaryView();
            Guid basketId        = base.GetBasketId();
            bool createNewBasket = basketId == Guid.Empty;

            if (createNewBasket == false)
            {
                var modifyBasketRequest = new ModifyBasketRequest();
                modifyBasketRequest.ProductsToAdd.Add(productId);
                modifyBasketRequest.BasketId = basketId;

                try {
                    var response = _basketService.ModifyBasket(modifyBasketRequest);
                    basketSummaryView = DTOs.BasketMapper.ConvertToSummary(response.Basket);
                    SaveBasketSummaryToCookie(basketSummaryView.NumberOfItems,
                                              basketSummaryView.BasketTotal);
                } catch (BasketDoesNotExistException ex) {
                    LoggingFactory.GetLogger().Log(
                        String.Format("Creating new basket because exception. {0}", ex.ToString()));
                    createNewBasket = true;
                }
            }

            if (createNewBasket)
            {
                var createBasketRequest = new CreateBasketRequest();
                createBasketRequest.ProductsToAdd.Add(productId);

                var response = _basketService.CreateBasket(createBasketRequest);

                SaveBasketIdToCookie(response.Basket.Id);
                basketSummaryView = DTOs.BasketMapper.ConvertToSummary(response.Basket);
                SaveBasketSummaryToCookie(basketSummaryView.NumberOfItems,
                                          basketSummaryView.BasketTotal);
            }

            return(basketSummaryView);
        }
Ejemplo n.º 10
0
        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));
        }
Ejemplo n.º 11
0
        public JsonResult UpdateShipping(int shippingServiceId)
        {
            ModifyBasketRequest request = new ModifyBasketRequest();
            request.SetShippingServiceIdTo = shippingServiceId;
            request.BasketId = base.GetBasketId();

            BasketDetailView basketDetailView = new BasketDetailView();

            ModifyBasketResponse response = _basketService.ModifyBasket(request);

            SaveBasketSummaryToCookie(response.Basket.NumberOfItems, response.Basket.BasketTotal);

            basketDetailView.BasketSummary = new BasketSummaryView()
            {
                BasketTotal = response.Basket.BasketTotal,
                NumberOfItems = response.Basket.NumberOfItems
            };

            basketDetailView.Basket = response.Basket;
            basketDetailView.DeliveryOptions = _basketService.GetAllDispatchOptions().DeliveryOptions;

            return Json(basketDetailView);
        }
Ejemplo n.º 12
0
        public JsonResult UpdateItems(JsonBasketQtyUpdateRequest jsonBasketQtyUpdateRequest)
        {
            ModifyBasketRequest request = new ModifyBasketRequest();

            request.BasketId = base.GetBasketId();
            request.ItemsToUpdate = jsonBasketQtyUpdateRequest.ConvertToBasketItemUpdateRequests(); ;

            BasketDetailView basketDetailView = new BasketDetailView();
            ModifyBasketResponse response = _basketService.ModifyBasket(request);

            SaveBasketSummaryToCookie(response.Basket.NumberOfItems,
                                      response.Basket.BasketTotal);

            basketDetailView.BasketSummary = new BasketSummaryView()
            {
                BasketTotal = response.Basket.BasketTotal,
                NumberOfItems = response.Basket.NumberOfItems
            };

            basketDetailView.Basket = response.Basket;

            basketDetailView.DeliveryOptions = _basketService.GetAllDispatchOptions().DeliveryOptions;

            return Json(basketDetailView);
        }
Ejemplo n.º 13
0
        public JsonResult RemoveItem(int productId)
        {
            ModifyBasketRequest request = new ModifyBasketRequest();
            request.ItemsToRemove.Add(productId);

            request.BasketId = base.GetBasketId();

            ModifyBasketResponse response = _basketService.ModifyBasket(request);

            SaveBasketSummaryToCookie(response.Basket.NumberOfItems, response.Basket.BasketTotal);

            BasketDetailView basketDetailView = new BasketDetailView();

            basketDetailView.BasketSummary = new BasketSummaryView()
            {
                BasketTotal = response.Basket.BasketTotal,
                NumberOfItems = response.Basket.NumberOfItems
            };

            basketDetailView.Basket = response.Basket;
            basketDetailView.DeliveryOptions = _basketService.GetAllDispatchOptions().DeliveryOptions;

            return Json(basketDetailView);
        }