public async Task <Response> EditRecipeAsync(int id, RegisterRecipeDto dto) { var recipe = await _context.Recipe.Include(x => x.Images).FirstOrDefaultAsync(x => x.Id == id); if (recipe is null) { return(Response.NotFound($"Receita {id} não encontrada")); } var category = await _context.Category.FirstOrDefaultAsync(x => x.Id == dto.CategoryId); if (category is null) { return(Response.NotFound($"Categoria {dto.CategoryId}")); } ; var images = dto.Images.Select(i => new Image(i)).ToList(); recipe.Edit( dto.Name, category, (Difficulty)dto.Difficulty, dto.NumberPortion, dto.PreparationTimeInMinutes, dto.Ingredients, dto.PreparationMode, dto.Published, images ); _context.Update(recipe); _context.SaveChanges(); return(Response.NoContent()); }
public async Task <Response> CreateRecipe(RegisterRecipeDto dto) { var category = await _context.Category.FirstOrDefaultAsync(x => x.Id == dto.CategoryId); if (category is null) { return(Response.NotFound($"Categoria {dto.CategoryId} não encontrada.")); } var imagens = dto.Images.Select(i => new Image(i)).ToList(); var recipe = new Recipe( dto.Name, category, (Difficulty)dto.Difficulty, dto.NumberPortion, dto.PreparationTimeInMinutes, dto.Ingredients, dto.PreparationMode, imagens, dto.Published); await _context.Recipe.AddAsync(recipe); var vmRecipe = new List <RegisterRecipeViewModel> { new RegisterRecipeViewModel { Id = recipe.Id, Name = recipe.Name } }; _context.SaveChanges(); return(Response.Created(vmRecipe)); }
public async Task <IActionResult> PostAsync(RegisterRecipeDto dto) { if (dto.Images.Count > 6) { ModelState.AddModelError("images", "Insira no máximo 6 imagens."); } var response = await _recipeApplication.CreateRecipe(dto); return(Result(response)); }
public async Task <IActionResult> PutRecipe(int id, RegisterRecipeDto dto) { var response = await _recipeApplication.EditRecipeAsync(id, dto); return(Result(response)); }