Exemplo n.º 1
0
        private DeliveryOption GetCheapestDeliveryOption()
        {
            var id  = _deliveryOptionRepository.FindBy(2);
            var all = _deliveryOptionRepository.FindAll().ToList();

            return(_deliveryOptionRepository.FindAll()
                   .OrderBy(d => d.Cost).FirstOrDefault());
        }
        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);
        }