public async Task <ActionResult <IngredientDto> > AddUsersRecipeAsync(int userId, UsersRecipeForCreation usersRecipeForCreation)
        {
            var user = await _users.GetAsync(userId);

            if (user == null)
            {
                return(NotFound());
            }

            var recipe = await _recipes.GetAsync(usersRecipeForCreation.RecipeId);

            if (recipe == null)
            {
                return(NotFound());
            }

            var usersRecipeToAdd = _mapper.Map <UsersRecipe>(usersRecipeForCreation);

            usersRecipeToAdd.UserId = userId;

            await _usersRecipes.AddAsync(usersRecipeToAdd);

            await _usersRecipes.SaveAsync();


            return(CreatedAtRoute(
                       "GetUsersRecipe",
                       new { usersRecipeToAdd.UserId, usersRecipeToAdd.RecipeId },
                       recipe));
        }
        public async Task <ActionResult <RecipeDetailedDto> > GetRecipeAsync(int recipeId)
        {
            var recipeFromRepo = await _recipes.GetAsync(recipeId);

            if (recipeFromRepo == null)
            {
                return(NotFound());
            }

            var recipeDto = _mapper.Map <RecipeDetailedDto>(recipeFromRepo);

            return(Ok(recipeDto));
        }
Example #3
0
        public async Task <ActionResult <ScheduledRecipeDto> > AddScheduledRecipeAsync(int userId, int recipeId, ScheduledRecipeForCreation scheduledRecipeForCreation)
        {
            var user = await _users.GetAsync(userId);

            if (user == null)
            {
                return(NotFound());
            }

            var recipe = await _recipes.GetAsync(recipeId);

            if (recipe == null)
            {
                return(NotFound());
            }

            var scheduledRecipeToAdd = _mapper.Map <ScheduledRecipe>(scheduledRecipeForCreation);

            scheduledRecipeToAdd.UserId   = userId;
            scheduledRecipeToAdd.RecipeId = recipeId;

            await _usersRecipesScheduled.AddAsync(scheduledRecipeToAdd);

            await _usersRecipesScheduled.SaveAsync();

            var scheduledRecipeDto = _mapper.Map <ScheduledRecipeDto>(scheduledRecipeToAdd);

            return(CreatedAtRoute(
                       "GetUsersRecipeSchedule",//needs to be new endpoint
                       new { scheduledRecipeToAdd.UserId, scheduledRecipeToAdd.RecipeId },
                       scheduledRecipeDto));
        }