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));
        }