Exemplo n.º 1
0
        public async Task <IActionResult> Edit(int?id)
        {
            var dish = await _context.Dishes.Include(x => x.DishIngredients).ThenInclude(y => y.Ingredient).SingleOrDefaultAsync(m => m.DishId == id);

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

            var model = new EditDishViewModel
            {
                Dish        = dish,
                Ingredients = new List <CheckBox>()
            };

            foreach (var ingredient in _ingredientService.All())
            {
                model.Ingredients.Add(new CheckBox
                {
                    Id       = ingredient.IngredientId,
                    Name     = ingredient.Name,
                    Selected = _dishService.HasIngredient(dish.DishId, ingredient.IngredientId)
                });
            }

            return(View(model));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> AddIngredient(EditDishViewModel mdl)
        {
            // Check if the state is valid, see EditDishViewModel for valid attributes
            if (string.IsNullOrWhiteSpace(mdl.NewIngredient))
            {
                mdl.Dish = await _dishService.GetDishAsync(mdl.Dish.MatrattId);

                mdl.Categories = await _dishService.GetDishCategoriesAsync();

                mdl.Ingredients = await _dishService.GetDishIngredientsAsync();

                ModelState.AddModelError("NewIngredient", "Namnet får endast innehålla a-ö.");
                return(PartialView("_AddIngredientPartialView", mdl));
            }

            // Save new ingredient and attach it to the dish
            await _dishService.AddIngredientToDish(mdl.NewIngredient, mdl.Dish.MatrattId);

            // Refill the ViewModel and return
            mdl.Dish = await _dishService.GetDishAsync(mdl.Dish.MatrattId);

            mdl.NewIngredient = string.Empty;
            mdl.Categories    = await _dishService.GetDishCategoriesAsync();

            mdl.Ingredients = await _dishService.GetDishIngredientsAsync();

            return(PartialView("_AddIngredientPartialView", mdl));
        }
Exemplo n.º 3
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var menuCategoryNames = _menuCatRep.GetCategoryNames();
            var dish = _repository.GetById(id);

            if (dish == null)
            {
                return(HttpNotFound());
            }
            var positions = GetPositionList();

            positions.Add(dish.Position);
            positions.Sort();
            EditDishViewModel model = new EditDishViewModel()
            {
                DishID           = dish.Id,
                Description      = dish.Description,
                Name             = dish.Name,
                Price            = dish.Price,
                Position         = dish.Position,
                MenuCategoryName = dish.MenuCategory.Name,
                MenuCategories   = new SelectList(menuCategoryNames),
                Positions        = new SelectList(positions),
                Photo            = dish.Photo,
                PhotoMimeType    = dish.PhotoMimeType
            };

            return(View(model));
        }
Exemplo n.º 4
0
 public ActionResult Edit([Bind(Exclude = "Positions,MenuCategories")] EditDishViewModel model,
                          HttpPostedFileBase photo)
 {
     if (ModelState.IsValid)
     {
         var  menuCategory = _menuCatRep.GetByName(model.MenuCategoryName);
         Dish dish         = new Dish
         {
             Id          = model.DishID,
             Description = model.Description,
             Name        = model.Name,
             Price       = model.Price,
             Position    = model.Position,
             MenuCatId   = menuCategory.Id
         };
         if (photo != null)
         {
             dish.Photo         = PhotoManager.GetBytes(photo);
             dish.PhotoMimeType = photo.ContentType;
         }
         else
         {
             dish.PhotoMimeType = model.PhotoMimeType;
             dish.Photo         = model.Photo;
         }
         _repository.Update(dish);
         _repository.Save();
         TempData["Message"] = "The dish: " + model.Name + " has been changed.";
         return(RedirectToAction("Manage", "Dish"));
     }
     ModelState.AddModelError("", "Model is not valid.");
     return(View());
 }
        public async Task <IActionResult> Edit(EditDishViewModel model)
        {
            if (ModelState.IsValid)
            {
                var dish = _db.Dishes.FirstOrDefault(d => d.Id == model.Id);
                dish.Category        = model.Category;
                dish.SubCategory     = model.SubCategory;
                dish.Name            = model.Name;
                dish.Cost            = model.Cost;
                dish.Description     = model.Description;
                dish.Calorie         = model.Calorie;
                dish.ProperNutrition = model.ProperNutrition;
                dish.Vegetarian      = model.Vegetarian;
                dish.Ingredients     = model.Ingredients;
                dish.EditTime        = DateTime.Now;
                dish.EditorId        = _userManager.GetUserId(User);
                if (model.File != null)
                {
                    await DeleteDishAvatar(dish);

                    dish.Avatar = await Load(model.Id, model.File);
                }

                _db.Entry(dish).State = EntityState.Modified;
                await _db.SaveChangesAsync();

                return(RedirectToAction("Index", "Dishes"));
            }
            return(View(model));
        }
Exemplo n.º 6
0
        public IActionResult EditDish(int id)
        {
            EditDishViewModel model = new EditDishViewModel();

            model.DishTypes            = GetDishTypes();
            model.IngredientCheckBoxes = GetCheckBoxDataForDish(id);
            model.CurrentMatratt       = _context.Matratts.SingleOrDefault(m => m.MatrattId == id);

            return(View("EditFoodMenu", model));
        }
Exemplo n.º 7
0
        private void UpdateBtn_Click(object sender, RoutedEventArgs e)
        {
            EditDishViewModel.Update();
            Window parentWindow = Application.Current.MainWindow;

            if (parentWindow.GetType() == typeof(MainWindow))
            {
                (parentWindow as MainWindow).DataContext   = new DishesListViewModel();
                (parentWindow as MainWindow).Go.Visibility = Visibility.Visible;
            }
        }
        public IActionResult EditDish(int id)
        {
            var model = new EditDishViewModel
            {
                Dish        = _dishService.FetchDish(id),
                Ingredients = _dishService.FetchDishIngredients(),
                Categories  = _dishService.FetchDishCategories()
            };

            return(View(model));
        }
Exemplo n.º 9
0
        public async Task <IActionResult> EditDish(int id)
        {
            var model = new EditDishViewModel
            {
                Dish        = await _dishService.GetDishAsync(id),
                Categories  = await _dishService.GetDishCategoriesAsync(),
                Ingredients = await _dishService.GetDishIngredientsAsync()
            };

            return(View(model));
        }
Exemplo n.º 10
0
        public async Task EditDishAsyncWorksCorrectly()
        {
            await this.PopulateDB();

            await this.AddDishesToDb();

            var newIngredient = new Ingredient()
            {
                Name = "test3",
                Id   = 3,
            };

            this.DbContext.Ingredients.Add(newIngredient);
            await this.DbContext.SaveChangesAsync();

            var ingredient       = this.DbContext.Ingredients.FirstOrDefault(x => x.Id == 1);
            var dishTypeId       = 2;
            var ingredientId     = 1;
            var image            = this.GetFile("test123");
            var expectedName     = "edit";
            var expectedIntValue = 33;
            var editDish         = new EditDishViewModel()
            {
                Id             = "test1",
                Name           = expectedName,
                Price          = expectedIntValue,
                Weight         = expectedIntValue,
                PrepareTime    = expectedIntValue,
                AdditionalInfo = expectedName,
                DishTypeId     = dishTypeId,
                IngredientsId  = new List <int>()
                {
                    ingredientId, newIngredient.Id
                },
                NewImage = image,
            };

            await this.DishService.EditDishAsync(editDish, AppDomain.CurrentDomain.BaseDirectory);

            var actualIngredient = this.DbContext.Ingredients.FirstOrDefault(x => x.Id == ingredientId);
            var actual           = this.DbContext.Dishes.FirstOrDefault(x => x.Id == "test1");

            Assert.Equal(editDish.Name, actual.Name);
            Assert.Equal(expectedIntValue, actual.Price);
            Assert.Equal(expectedIntValue, actual.Weight);
            Assert.Equal(expectedName, actual.AdditionalInfo);
            Assert.Equal(expectedIntValue, actual.PrepareTime);
            Assert.Equal(dishTypeId, actual.DishTypeId);
            Assert.Equal(new List <Ingredient>()
            {
                actualIngredient, newIngredient
            }, actual.Ingredients);
            Assert.Equal(ImageExtension.jpeg, actual.Image.Extension);
        }
Exemplo n.º 11
0
        public async Task <IActionResult> EditDish(int dishId)
        {
            EditDishViewModel model = new EditDishViewModel(await _repository.GetDishById(dishId), _repository.GetAllDishTypes(), _repository.GetAllProducts());

            foreach (var product in model.Dish.MatrattProdukts)
            {
                Produkt p = model.Products.SingleOrDefault(p => p.ProduktId == product.ProduktId);
                p.Checked = true;
            }

            return(View(model));
        }
Exemplo n.º 12
0
        public async Task <IActionResult> DeleteIngredient(int dishID, int ingredientID)
        {
            await _dishService.DeleteIngredientFromDish(dishID, ingredientID);

            var model = new EditDishViewModel
            {
                Dish        = _dishService.FetchDish(dishID),
                Ingredients = _dishService.FetchDishIngredients(),
                Categories  = _dishService.FetchDishCategories()
            };

            return(ViewComponent("EditDishIngredients", model));
        }
Exemplo n.º 13
0
        public ActionResult EditDish(string id)
        {
            var db = new IFood();
            EditDishViewModel model = new EditDishViewModel();

            model.dish           = db.Dishes.Where(d => d.Id.ToString().Equals(id)).FirstOrDefault <Dish>();
            model.listCategory   = db.Categories.ToList <Category>();
            model.listIngredient = db.Ingredients.ToList <Ingredient>();
            model.listUnit       = db.Units.ToList <Unit>();
            model.listCourse     = db.Courses.ToList <Course>();

            return(View(model));
        }
Exemplo n.º 14
0
        public IActionResult EditDish(EditDishViewModel data)
        {
            if (ModelState.IsValid)
            {
                _dishService.UpdateDish(data.Dish);
                return(RedirectToAction("ViewDishes", "Admin"));
            }

            var model = new EditDishViewModel
            {
                Dish        = _dishService.FetchDish(data.Dish.MatrattId),
                Categories  = _dishService.FetchDishCategories(),
                Ingredients = _dishService.FetchDishIngredients(),
            };

            return(View(model));
        }
Exemplo n.º 15
0
        public async Task <IActionResult> Edit(int id, EditDishViewModel model)
        {
            if (id != model.Dish.DishId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    await _context.DishIngredients
                    .Where(i => i.DishId == model.Dish.DishId)
                    .ForEachAsync(di => _context.Remove(di));

                    await _context.SaveChangesAsync();

                    foreach (var ingredient in model.Ingredients.Where(i => i.Selected))
                    {
                        _context.DishIngredients.Add(new DishIngredient
                        {
                            DishId       = id,
                            IngredientId = ingredient.Id
                        });

                        _context.Update(model.Dish);
                        await _context.SaveChangesAsync();
                    }
                }
                catch (DbUpdateConcurrencyException exc)
                {
                    if (!DishExists(model.Dish.DishId))
                    {
                        _logger.LogError(exc.ToString());
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(model));
        }
Exemplo n.º 16
0
        public async Task <IActionResult> AddIngredient(int dishID, int ingredientID)
        {
            var result = await _dishService.AddIngredientToDish(dishID, ingredientID);

            if (result == false)
            {
                ViewBag.IngredientError = "Ingrediensen finns redan i maträtten";
            }

            var model = new EditDishViewModel
            {
                Dish        = _dishService.FetchDish(dishID),
                Ingredients = _dishService.FetchDishIngredients(),
                Categories  = _dishService.FetchDishCategories()
            };

            return(ViewComponent("EditDishIngredients", model));
        }
Exemplo n.º 17
0
        public async Task <IActionResult> ChangeDishValues(EditDishViewModel mdl)
        {
            if (ModelState.IsValid)
            {
                await _dishService.UpdateDishAsync(mdl.Dish);

                return(RedirectToAction("AdminPage"));
            }

            // Else return new ViewModel
            mdl.Dish = await _dishService.GetDishAsync(mdl.Dish.MatrattId);

            mdl.Categories = await _dishService.GetDishCategoriesAsync();

            mdl.Ingredients = await _dishService.GetDishIngredientsAsync();

            return(View("EditDish", mdl));
        }
        public IActionResult Edit(string id)
        {
            var dish  = _db.Dishes.FirstOrDefault(d => d.Id == id);
            var model = new EditDishViewModel
            {
                Id              = id,
                Category        = dish.Category,
                SubCategory     = dish.SubCategory,
                Name            = dish.Name,
                Cost            = dish.Cost,
                Description     = dish.Description,
                Calorie         = dish.Calorie,
                ProperNutrition = dish.ProperNutrition,
                Vegetarian      = dish.Vegetarian,
                Ingredients     = dish.Ingredients
            };

            return(View(model));
        }
Exemplo n.º 19
0
        public async Task <IActionResult> RemoveIngredient(string id)
        {
            var arr       = id.Split("-");
            var produktId = int.Parse(arr[0]);
            var matrattId = int.Parse(arr[1]);

            await _dishService.RemoveIngredientFromDish(produktId, matrattId);

            // Refill the ViewModel and return
            var mdl = new EditDishViewModel
            {
                Dish          = await _dishService.GetDishAsync(matrattId),
                NewIngredient = string.Empty,
                Categories    = await _dishService.GetDishCategoriesAsync(),
                Ingredients   = await _dishService.GetDishIngredientsAsync()
            };

            return(PartialView("_AddIngredientPartialView", mdl));
        }
Exemplo n.º 20
0
        public async Task <IActionResult> UpdateDish(EditDishViewModel model, List <int> selectedProducts)
        {
            Matratt dish = await _repository.SelectById <Matratt>(model.Dish.MatrattId);

            dish.MatrattNamn = model.Dish.MatrattNamn;
            dish.Beskrivning = model.Dish.Beskrivning;
            dish.Pris        = model.Dish.Pris;
            dish.MatrattTyp  = model.Dish.MatrattTyp;

            await _repository.UpdateAsync <Matratt>(dish);

            _repository.DeleteMattrattJ(dish.MatrattId);

            foreach (var product in selectedProducts)
            {
                MatrattProdukt smrp = new MatrattProdukt(dish.MatrattId, product);

                await _repository.CreateAsync <MatrattProdukt>(smrp);
            }

            return(RedirectToAction("Dishes"));
        }
Exemplo n.º 21
0
        public IActionResult EditDish(EditDishViewModel model)
        {
            var editedDish = _context.Matratts.SingleOrDefault(x => x.MatrattId == model.CurrentMatratt.MatrattId);

            editedDish.MatrattNamn = model.CurrentMatratt.MatrattNamn;
            editedDish.Beskrivning = model.CurrentMatratt.Beskrivning;
            editedDish.Pris        = model.CurrentMatratt.Pris;
            if (model.CurrentMatrattDishTypeID != null)
            {
                editedDish.MatrattTypId = int.Parse(model.CurrentMatrattDishTypeID);
            }

            _context.SaveChanges();

            UpdateIngredients(editedDish, model.IngredientCheckBoxes);



            ViewBag.Message = "Changes saved";

            return(RedirectToAction("EditFoodMenu", "Admin"));
        }
Exemplo n.º 22
0
        public IActionResult EditFoodMenu()
        {
            EditDishViewModel model = new EditDishViewModel();

            var dishes = _context.Matratts.Include(r => r.MatrattProdukts).Include(t => t.MatrattTyp).ToList();

            foreach (var item in dishes)
            {
                DishViewModel dish = new DishViewModel();

                dish.Id   = item.MatrattId;
                dish.Name = item.MatrattNamn;
                dish.IngredientsString = GetIngredients(item);
                dish.DishType          = item.MatrattTyp.Beskrivning;
                dish.Description       = item.Beskrivning;
                dish.Ingredients       = GetCheckBoxDataForDish(item.MatrattId);

                model.AllDishes.Add(dish);
            }


            return(View(model));
        }
Exemplo n.º 23
0
        public async Task <IActionResult> EditDish(EditDishViewModel editDish)
        {
            await this.dishService.EditDishAsync(editDish, this.webHostEnvironment.WebRootPath);

            return(this.RedirectToAction("Index", "Menu"));
        }
Exemplo n.º 24
0
 public IViewComponentResult Invoke(EditDishViewModel model)
 {
     return(View("EditDishIngredients", model));
 }