public async Task <CartDTO> UpdateAsync(ProductCartPutRequest model, ApiDbContext apiDbContext) { try { List <User_Product_Cart> userCartList = apiDbContext.Users_Products_Cart.Where(pc => !pc.IsCompleted && pc.UserId == model.UserId).ToList(); if (userCartList == null) { throw new Exception($"Error cargadndo el carro del usuario con id {model.UserId}"); } User_Product_Cart cartLine = await apiDbContext.Users_Products_Cart.FindAsync(model.Id); if (cartLine == null) { throw new Exception($"Error cargadndo la línea del producto con id {model.ProductId} del carro del usuario con id {model.UserId}"); } cartLine.Quantity = model.Quantity; if (cartLine.Quantity == 0) { apiDbContext.Users_Products_Cart.Remove(cartLine); } await apiDbContext.SaveChangesAsync(); return(ModelToDTO(apiDbContext.Users_Products_Cart.Where(pc => !pc.IsCompleted && pc.UserId == model.UserId).ToList())); } catch (Exception e) { throw new Exception(e.Message); } }
public async Task <IActionResult> Update(ProductCartPutRequest model) { try { if (!ModelState.IsValid) { throw new Exception("Petición de actualización inválida"); } return(Ok(await _cartService.UpdateAsync(model, _apiDbContext))); } catch (Exception e) { return(StatusCode(500, e.Message)); } }