예제 #1
0
        public async Task <IActionResult> AddNewRecipe(int userId, [FromBody] RecipeForCreateDto recipeForCreateDto)
        {
            if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            var userFromRepo = await _userRepository.GetUser(userId);



            recipeForCreateDto.Name     = recipeForCreateDto.Name.ToLower();
            recipeForCreateDto.AuthorId = userId;


            if (await _recipesRepository.RecipeExists(recipeForCreateDto.Name))
            {
                return(BadRequest("Recipe with that name already exists!"));
            }

            var recipeToCreate = _mapper.Map <Recipe>(recipeForCreateDto);

            recipeToCreate.UserId = userId;

            var createdRecipe = await _recipesRepository.AddNewRecipe(recipeToCreate);

            var recipeToReturn = _mapper.Map <RecipeForDetailDto>(createdRecipe);

            return(CreatedAtRoute("GetUser", new { controller = "Users", userId = userId, id = createdRecipe.Id }, recipeToReturn));
        }