示例#1
0
        public bool UpdateRecipe(RecipeView recipe)
        {
            var updatedRecipe = GetRecipeById(recipe.Id);

            if (updatedRecipe != null)
            {
                updatedRecipe.Name        = recipe.Name;
                updatedRecipe.Description = recipe.Description;
                updatedRecipe.RecipeTags.RemoveAll(r => r.RecipeId == recipe.Id);
                SaveChanges();
                //update tags at some point
                foreach (string t in recipe.Tags)
                {
                    var result = _tags.FindTag(t);
                    if (result == null)
                    {
                        result = _tags.AddTag(t);
                    }
                    //add the 'join' between recipe and tag
                    _recipe.Add(new RecipeTag {
                        RecipeId = recipe.Id, TagId = result.Id
                    });
                }
                _recipe.Recipes.Update(updatedRecipe);
                SaveChanges();
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#2
0
        public IActionResult Recipe([FromBody] RecipeView r)
        {
            if (ModelState.IsValid)
            {
                //automapper
                var recipe = new Recipe
                {
                    Name        = r.Name,
                    Description = r.Description
                };

                if (_recipe.AddRecipe(recipe))
                {
                    // see if tags exist, if not add them
                    // then add many-many mapping via recipetag
                    foreach (string t in r.Tags)
                    {
                        var result = _tags.FindTag(t);
                        if (result == null)
                        {
                            result = _tags.AddTag(t);
                        }
                        //add the 'join' between recipe and tag
                        _context.Add(new RecipeTag {
                            RecipeId = recipe.Id, TagId = result.Id
                        });
                        _context.SaveChanges();
                    }
                    var uri = Url.Link("RecipeById", new { recipe.Id });

                    RecipeView rv = RecipeToView(recipe);
                    return(Created(uri, rv));
                }
                else
                {
                    return(BadRequest("Invalid Recipe - cannot add to database"));
                }
            }
            else //model state is invalid
            {
                return(BadRequest("Invalid Model"));
            }
        }