示例#1
0
        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)));
        }
示例#3
0
        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);
            }
        }
示例#4
0
        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);
        }
示例#5
0
        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));
        }