public IActionResult EditHamper(int id) { Hamper hamper = _hamperService.GetSingle(h => h.HamperId == id); if (hamper == null) { return(NotFound()); } var product = _productService.GetAll().ToList(); var productChecks = product.Select(p => new ProductCheckList { ProductName = p.ProductName, Checked = false, ProductId = p.ProductId }).ToList(); var hp = _HPService.Query(hps => hps.HamperId == hamper.HamperId); productChecks.ForEach(x => { foreach (HamperProduct hpr in hp) { if (hpr.ProductId == x.ProductId) { x.Checked = true; } } }); var cats = _categoryService.GetAll().ToList(); var filenames = _imageService.GetAll().ToList(); var catSelect = cats.Select(x => new SelectListItem { Value = x.CategoryId.ToString(), Text = x.CategoryName }); var fileSelect = filenames.Select(x => new SelectListItem { Value = x.ImageId.ToString(), Text = x.FileName }); AdminEditHamperViewModel vm = new AdminEditHamperViewModel { CategoryId = hamper.CategoryId.ToString(), Cost = hamper.Cost, ImageId = _imageService.GetSingle(img => img.ImageId == hamper.ImageId).ImageId.ToString(), HamperId = hamper.HamperId, HamperName = hamper.HamperName, FileNames = fileSelect.ToList(), CategoryNamesList = catSelect.ToList(), ProductNamesList = productChecks.ToArray(), IsDiscontinued = hamper.isDiscontinued }; return(View(vm)); }
public async Task <IActionResult> EditHamper(AdminEditHamperViewModel vm) { if (ModelState.IsValid) { bool isCId = int.TryParse(vm.CategoryId, out int categoryid); bool isIId = int.TryParse(vm.ImageId, out int imageid); if (!isCId && !isIId) { return(NotFound()); } var getnames = vm.ProductNamesList.Where(pl => pl.Checked == true).Select(p => p.ProductName); var productids = _productService.Query (p => getnames.Any(g => g == p.ProductName)); IEnumerable <HamperProduct> hamperProducts = productids.Select(p => new HamperProduct { HamperId = vm.HamperId, ProductId = p.ProductId, }); Hamper hamper = new Hamper { HamperId = vm.HamperId, HamperName = vm.HamperName, ImageId = imageid, CategoryId = categoryid, Cost = vm.Cost, isDiscontinued = vm.IsDiscontinued, HamperProducts = hamperProducts.ToList() }; await _hamperService.Update(hamper); return(RedirectToAction("Index", "Admin")); } return(View(vm)); }