Beispiel #1
0
        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());
        }
Beispiel #2
0
        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));
        }