public async Task <ActionResult <BasketData> > UpdateQuantitiesAsync([FromBody] UpdateBasketItemsRequest data)
        {
            if (!data.Updates.Any())
            {
                return(BadRequest("No updates sent"));
            }

            // Retrieve the current basket
            var currentBasket = await _basket.GetById(data.BasketId);

            if (currentBasket == null)
            {
                return(BadRequest($"Basket with id {data.BasketId} not found."));
            }

            // Update with new quantities
            foreach (var update in data.Updates)
            {
                var basketItem = currentBasket.Items.SingleOrDefault(bitem => bitem.Id == update.BasketItemId);
                if (basketItem == null)
                {
                    return(BadRequest($"Basket item with id {update.BasketItemId} not found"));
                }
                basketItem.Quantity = update.NewQty;
            }

            // Save the updated basket
            await _basket.UpdateAsync(currentBasket);

            return(currentBasket);
        }
        public async Task <ActionResult <BasketModel> > UpdateQuantitiesAsync([FromBody] UpdateBasketItemsRequest data)
        {
            if (!data.Updates.Any())
            {
                return(BadRequest("No updates sent"));
            }

            var currentBasket = await _basketService.GetByIdAsync(data.BasketId);

            if (currentBasket == null)
            {
                return(BadRequest($"Basket with id {data.BasketId} not found."));
            }

            foreach (var update in data.Updates)
            {
                var basketItem = currentBasket.Items.SingleOrDefault(bitem => bitem.Id == update.BasketItemId);
                if (basketItem == null)
                {
                    return(BadRequest($"Basket item with id {update.BasketItemId} not found"));
                }
                basketItem.Quantity = update.NewQty;
            }

            await _basketService.UpdateAsync(currentBasket);

            return(currentBasket);
        }
Example #3
0
        public async Task <ActionResult <CustomerBasket> > UpdateBasket([FromBody] UpdateBasketItemsRequest data)
        {
            if (!data.Updates.Any())
            {
                return(BadRequest("No updates sent"));
            }

            // Retrieve the current basket
            var currentBasket = await _repository.GetBasketAsync(data.BasketId);

            if (currentBasket == null)
            {
                return(BadRequest($"Basket with id {data.BasketId} not found."));
            }

            // Update with new quantities
            foreach (var update in data.Updates)
            {
                var basketItem = currentBasket.Items.SingleOrDefault(item => item.Id == update.BasketItemId);
                if (basketItem == null)
                {
                    return(BadRequest($"Basket item with id {update.BasketItemId} not found"));
                }
                basketItem.Quantity = update.NewQuantity;
            }

            currentBasket.Currency     = data.Currency;
            currentBasket.CurrencyRate = data.CurrencyRate;

            // Save the updated basket
            await _repository.UpdateBasketAsync(currentBasket);

            return(currentBasket);
        }
Example #4
0
        public async Task <ActionResult <BasketData> > UpdateQuantitiesAsync([FromBody] UpdateBasketItemsRequest data)
        {
            if (!data.Updates.Any())
            {
                return(BadRequest("No updates sent"));
            }

            // Retrieve the current basket
            var currentPlanner = await _basket.GetByIdAsync(data.CoursePlannerId);

            if (currentPlanner == null)
            {
                return(BadRequest($"Course Planner with id {data.CoursePlannerId} not found."));
            }

            // Update with new quantities
            foreach (var update in data.Updates)
            {
                var course = currentPlanner.Items.SingleOrDefault(c => c.Id == update.CourseId);
                if (course == null)
                {
                    return(BadRequest($"Course with id {update.CourseId} not found"));
                }

                //TODO basketItem.Quantity = update.NewQty;
            }

            // Save the updated basket
            await _basket.UpdateAsync(currentPlanner);

            return(currentPlanner);
        }