コード例 #1
0
        private static List <string> ControlRecipeUpdate(RecipeViewModel.Update recipe)
        {
            List <string> errors = new List <string>();

            if (recipe.Name == null)
            {
                errors.Add("NameMissing");
            }
            else if (recipe.Name.Count() < 5 || recipe.Name.Count() > 70)
            {
                errors.Add("NameWrongLength");
            }
            if (recipe.Description == null)
            {
                errors.Add("DescriptionMissing");
            }
            else if (recipe.Description.Count() < 10 || recipe.Description.Count() > 300)
            {
                errors.Add("DescriptionWrongLength");
            }
            if (recipe.Directions == null)
            {
                errors.Add("DirectionsMissing");
            }
            else
            {
                foreach (var d in recipe.Directions)
                {
                    if (d.Order == default(int))
                    {
                        errors.Add("DirectionOrderMissing");
                    }
                    if (d.Description == null)
                    {
                        errors.Add("DirectionDescriptionMissing");
                    }
                    else if (d.Description.Count() < 5 || d.Description.Count() > 120)
                    {
                        errors.Add("DirectionDescriptionWrongLength");
                    }
                }
            }
            return(errors);
        }
コード例 #2
0
        public IActionResult UpdateRecipe([FromBody] RecipeViewModel.Update rvm, int id)
        {
            var recipe = RecipeManager.Get(id);

            if (recipe == null)
            {
                return(NotFound("404: Not found."));
            }
            if (recipe.CreatorId != User.Claims.FirstOrDefault(c => c.Type == "UserId").Value)
            {
                return(Unauthorized());
            }
            List <string> errorCodes = ControlRecipeUpdate(rvm);

            if (errorCodes.Count > 0)
            {
                return(BadRequest(errorCodes));
            }

            RecipeManager.Update(rvm, id);
            return(NoContent());
        }
コード例 #3
0
 public Recipe Update(RecipeViewModel.Update rvm, int id)
 {
     try
     {
         var directions = DbContext.Directions.Where(d => d.RecipeId == id).ToList();
         foreach (var d in directions)
         {
             DbContext.Remove(d);
         }
         DbContext.SaveChanges();
         var recipe = DbContext.Recipes.Where(r => r.Id == id).First();
         recipe.Name        = rvm.Name;
         recipe.Description = rvm.Description;
         recipe.Directions  = rvm.Directions;
         DbContext.SaveChanges();
         return(recipe);
     }
     catch (Exception)
     {
         throw;
     }
 }