private DishModificationModel CreateViewModel(Matratt d, List <MatrattTyp> categories, List <Produkt> products) { var dishVM = new DishModificationModel { Id = d.MatrattId, Name = d.MatrattNamn, Description = d.Beskrivning, SelectedCategoryId = d.MatrattTyp, SelectedCategory = d.MatrattTypNavigation?.Beskrivning, Price = d.Pris, Categories = categories.Select(c => new SelectListItem { Value = c.MatrattTyp1.ToString(), Text = c.Beskrivning, Selected = d.MatrattTyp == c.MatrattTyp1 }).ToList(), Products = products.Select(p => new SelectListItem { Value = p.ProduktId.ToString(), Text = p.ProduktNamn, Selected = d.MatrattProdukt.Any(dp => dp.ProduktId == p.ProduktId) }).ToList() }; return(dishVM); }
public IActionResult EditDish(DishModificationModel dish) { if (ModelState.IsValid) { _dishService.AddOrUpdate(dish); return(RedirectToAction(nameof(Index))); } return(View(_dishService.AddCategoriesAndProductsSelectList(dish))); }
public DishModificationModel GetDish(int id) { var dish = _dishRepository.Dishes.SingleOrDefault(d => d.MatrattId == id); if (dish != null) { var categories = _dishRepository.Categories.ToList(); var products = _dishRepository.Products.ToList(); DishModificationModel dishVM = CreateViewModel(dish, categories, products); return(dishVM); } else { return(null); } }
public void AddOrUpdate(DishModificationModel dishVM) { Matratt dishDB = new Matratt { MatrattId = dishVM.Id, MatrattNamn = dishVM.Name, MatrattTyp = dishVM.SelectedCategoryId, Beskrivning = dishVM.Description, Pris = dishVM.Price, MatrattProdukt = dishVM.SelectedProductIds.Select(id => new MatrattProdukt { Produkt = new Produkt { ProduktId = id } } ).ToList() }; _dishRepository.AddOrUpdate(dishDB); }
public DishModificationModel AddCategoriesAndProductsSelectList(DishModificationModel d) { var categories = _dishRepository.Categories.ToList(); var products = _dishRepository.Products.ToList(); d.Categories = categories.Select(c => new SelectListItem { Value = c.MatrattTyp1.ToString(), Text = c.Beskrivning, Selected = d.SelectedCategoryId == c.MatrattTyp1 }).ToList(); d.Products = products.Select(p => new SelectListItem { Value = p.ProduktId.ToString(), Text = p.ProduktNamn, Selected = d.SelectedProductIds?.Any(id => id == p.ProduktId) ?? false }).ToList(); return(d); }
public ViewResult EditDish(int?id) { DishModificationModel dish = id != null?_dishService.GetDish(id.Value) : _dishService.GetEmptyDish(); return(View(dish)); }