Пример #1
0
        public async Task <IActionResult> EditFilters(int id, [Bind("Id, FilterAddititons")] ProductExtViewModel product)
        {
            if (id != product.Id)
            {
                return(NotFound());
            }

            List <Value> oldFilterValues = await _context.Values.Where(p => p.ProductId == id).ToListAsync();

            if (oldFilterValues.Count != 0)
            {
                foreach (var item in product.FilterAddititons)
                {
                    if (item.IsChecked)
                    {
                        if (oldFilterValues.FirstOrDefault(fv => fv.FilterAddId == item.Id && fv.ProductId == product.Id) == null)
                        {
                            _context.Update(new Value {
                                FilterAddId = item.Id, ProductId = product.Id
                            });
                        }
                    }
                    else
                    {
                        if (oldFilterValues.FirstOrDefault(fv => fv.FilterAddId == item.Id && fv.ProductId == product.Id) != null)
                        {
                            _context.Remove(oldFilterValues.First(fv => fv.FilterAddId == item.Id && fv.ProductId == product.Id));
                        }
                    }
                }
            }
            else
            {
                foreach (var item in product.FilterAddititons)
                {
                    if (item.IsChecked)
                    {
                        _context.Update(new Value {
                            FilterAddId = item.Id, ProductId = product.Id
                        });
                    }
                }
            }

            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
Пример #2
0
        //привязка доп фильтров к продукту
        public async Task <IActionResult> EditFilters(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var productsModel = await _context.Products.FindAsync(id);

            List <Filter> filters = await _context.Filters.ToListAsync();

            List <FilterAddititon> filterAddititons = await _context.FilterAddititons.ToListAsync();

            List <Value> filterValues = await _context.Values.Where(p => p.ProductId == id).ToListAsync();

            if (filterValues.Count != 0)
            {
                foreach (FilterAddititon fa in filterAddititons)
                {
                    if (filterValues.FirstOrDefault(fv => fv.FilterAddId == fa.Id) != null)
                    {
                        fa.IsChecked = true;
                    }
                    fa.Filter = filters.Find(f => f.Id == fa.FilterId);
                }
            }
            filterAddititons = filterAddititons.OrderBy(f => f.FilterId).ToList();
            ProductExtViewModel tour = new ProductExtViewModel
            {
                Id               = productsModel.Id,
                Title            = productsModel.Title,
                FilterAddititons = filterAddititons
            };

            if (productsModel == null)
            {
                return(NotFound());
            }
            return(View(tour));
        }