Exemplo n.º 1
0
        public async Task <ActionResult> PutAsync(string cartName, [FromBody] AddCartItemDto item)
        {
            _logger.LogDebug($"Put called with parameter: {cartName}");

            if (item == null)
            {
                _logger.LogDebug($"Empty body");
                return(BadRequest(new ResultMessageDto("Empty body")));
            }

            if (item.Quantity <= 0)
            {
                _logger.LogDebug($"Invalid quantity {item.Quantity}");
                return(BadRequest(new ResultMessageDto("Invalid quantity")));
            }

            var model = _cartItemMapper.Map <CartItem>(item);

            return(await HandleExceptionsAsync(cartName, async() =>
            {
                await _cartsRepository.AddItemToCartAsync(cartName,
                                                          (x) => _productsRepository.GetAsync(p => p.Id == x),
                                                          model);

                return Ok(new ResultMessageDto("Product added"));
            }));
        }