public IActionResult UpdateFood(ManageFoodViewModel model) { if (ModelState.IsValid) { var original = _context.Matratts.SingleOrDefault(m => m.MatrattId == model.CurrentMatratt.MatrattId); _context.Entry(original).CurrentValues.SetValues(model.CurrentMatratt); _context.SaveChanges(); var originalIngredients = _context.MatrattProdukts.Where(m => m.MatrattId == model.CurrentMatratt.MatrattId).Select(y => y.ProduktId).ToList(); foreach (var item in model.ingredients) { if (item.IsChecked && !originalIngredients.Contains(item.ProduktId)) { MatrattProdukt newItem = new MatrattProdukt(original.MatrattId, item.ProduktId); _context.Add(newItem); } else if (item.IsChecked == false && originalIngredients.Contains(item.ProduktId)) { MatrattProdukt newItem = new MatrattProdukt(original.MatrattId, item.ProduktId); _context.MatrattProdukts.Remove(newItem); } } TempData["EditFood"] = "Maträtt uppdaterad"; _context.SaveChanges(); } else { TempData["EditFood"] = "Maträtt kunde inte uppdateras. Har du inte fyllt i alla uppgifter?"; } return(RedirectToAction("ManageFood")); }
public IActionResult ViewFood(int id) { ManageFoodViewModel model = new ManageFoodViewModel(); model.CurrentMatratt = _context.Matratts.Include(m => m.MatrattTyp).Include(m => m.MatrattProdukts).ThenInclude(m => m.Produkt).OrderBy(m => m.Beskrivning).Where(m => m.MatrattId == id).SingleOrDefault(); //model.matrattsTyper = _context.MatrattTyps.ToList(); Behövs denna ens? model.SelectListMatrattTyper = new List <SelectListItem>(); foreach (var typ in _context.MatrattTyps) { model.SelectListMatrattTyper.Add(new SelectListItem(typ.Beskrivning, typ.MatrattTypId.ToString())); } model.ingredients = _context.Produkts.ToList(); //Alla ingredienser som finns var ingredienser = _context.MatrattProdukts.Where(m => m.MatrattId == model.CurrentMatratt.MatrattId).Select(y => y.ProduktId).ToList(); foreach (var item in model.ingredients) { if (ingredienser.Contains(item.ProduktId)) { item.IsChecked = true; } } return(PartialView("_ManageFoodPartial", model)); }
public IActionResult ManageFood() { ManageFoodViewModel model = new ManageFoodViewModel(); model.matratter = _context.Matratts.Include(m => m.MatrattTyp).Include(m => m.MatrattProdukts).ThenInclude(m => m.Produkt).OrderBy(m => m.MatrattTyp.Beskrivning).ToList(); model.matrattsTyper = _context.MatrattTyps.ToList(); model.ingredients = _context.Produkts.ToList(); model.SelectListMatrattTyper = new List <SelectListItem>(); foreach (var typ in _context.MatrattTyps) { model.SelectListMatrattTyper.Add(new SelectListItem(typ.Beskrivning, typ.MatrattTypId.ToString())); } return(View(model)); }
public IActionResult AddFood(ManageFoodViewModel model) { var foodAldreadyExist = _context.Matratts.Where(m => m.MatrattNamn == model.CurrentMatratt.MatrattNamn).ToList(); if (ModelState.IsValid) { if (foodAldreadyExist.Count == 0) { _context.Add(model.CurrentMatratt); _context.SaveChanges(); TempData["AddFood"] = "Ny maträtt tillagd"; var selectedIngredients = model.ingredients.Where(i => i.IsChecked == true).ToList(); var newFoodId = _context.Matratts.SingleOrDefault(m => m.MatrattNamn == model.CurrentMatratt.MatrattNamn).MatrattId; foreach (var ingredient in selectedIngredients) { MatrattProdukt newItem = new MatrattProdukt(); newItem.MatrattId = newFoodId; newItem.ProduktId = ingredient.ProduktId; _context.Add(newItem); } _context.SaveChanges(); return(RedirectToAction("ManageFood")); } else { TempData["AddFood"] = "Maträtt kunde inte läggas till. Namn på maträtt upptaget?"; return(RedirectToAction("ManageFood")); } } return(RedirectToAction("ManageFood")); }