Example #1
0
        public IActionResult EditBread(int id)
        {
            List <RecipeItem> items = context.RecipeItems.Include(i => i.RecipeIngredient)
                                      .Include(y => y.RecipeMeasurement)
                                      .Where(x => x.Bread.ID == id)
                                      .ToList();

            Bread theBread = context.Breads.Single(b => b.ID == id);

            EditBreadViewModel viewModel = new EditBreadViewModel
            {
                ID           = theBread.ID,
                Name         = theBread.Name,
                RecipeItems  = items,
                Instructions = theBread.Instructions,
                BakeTime     = theBread.BakeTime,
                BakeTemp     = theBread.BakeTemp,
                FermentTime  = theBread.FermentTime,
                ProofTime    = theBread.ProofTime
            };

            TempData.Keep();

            return(View(viewModel));
        }
Example #2
0
        public IActionResult EditBread(EditBreadViewModel editBreadViewModel)
        {
            if (ModelState.IsValid)
            {
                //holds the list of recipe items from viewmodel
                List <RecipeItem> items       = context.RecipeItems.Include(i => i.RecipeIngredient).Include(y => y.RecipeMeasurement).Where(x => x.Bread.ID == editBreadViewModel.ID).ToList();
                Bread             theBread    = context.Breads.Single(b => b.ID == editBreadViewModel.ID);
                List <RecipeItem> recipeItems = editBreadViewModel.RecipeItems.ToList();
                theBread.Name         = editBreadViewModel.Name;
                theBread.Instructions = editBreadViewModel.Instructions;
                theBread.BakeTemp     = editBreadViewModel.BakeTemp;
                theBread.BakeTime     = editBreadViewModel.BakeTime;
                theBread.FermentTime  = editBreadViewModel.FermentTime;
                theBread.ProofTime    = editBreadViewModel.ProofTime;
                context.Breads.Update(theBread);

                //updates the recipe item, ingredient, and measurement
                //currently creating new database entries for ingredient and measurement
                //needs to update database entries instead of creating new entries
                for (var i = 0; i < items.Count; i++)
                {
                    items[i].RecipeIngredient.Name   = recipeItems[i].RecipeIngredient.Name;
                    items[i].RecipeMeasurement.Value = recipeItems[i].RecipeMeasurement.Value;
                    items[i].RecipeMeasurement.Unit  = recipeItems[i].RecipeMeasurement.Unit;


                    context.RecipeItems.Update(items[i]);
                }

                context.SaveChanges();



                TempData.Keep();

                return(RedirectToAction($"/ViewBread/{editBreadViewModel.ID}"));
            }

            return(View(editBreadViewModel));
        }