Esempio n. 1
0
        public async Task <IActionResult> Post(int id)
        {
            try
            {
                var product = await _productRepo.GetByIdAsync(id);

                if (product == null)
                {
                    return(NotFound("Item is not found."));
                }

                var user = _userServ.GetUser();
                //if (user == null)
                //    return Unauthorized("User is not authentificated.");

                var cartLineList = await _cartLineRepo.FindByAsync(c => c.UserId == user.Id && c.ProductId == product.Id);

                var cartLine = cartLineList.FirstOrDefault();
                if (cartLine == null)
                {
                    BL.CartLine newItem = new BL.CartLine
                    {
                        Quantity  = 1,
                        ProductId = product.Id,
                        Price     = product.Price,
                        UserId    = user.Id
                    };

                    var newItemId = await _cartLineRepo.SaveAsync(newItem);

                    newItem = await _cartLineRepo.GetByIdAsync(newItemId);

                    return(Ok(newItem));
                }
                else
                {
                    cartLine.Quantity += 1;
                    await _cartLineRepo.SaveAsync(cartLine);

                    return(Ok(cartLine));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest($"{ex.Message}"));
            }
        }