public ActionResult Index(ProductsFiltrationModel model) { // Фильтруем var availableProjects = CurrentUser.ProjectUsers.Select(p => p.ProjectId).ToArray(); IEnumerable <ProductType> products = DataContext.ProductTypes.Where(w => availableProjects.Contains(w.ProjectId)); if (model.ProjectIds.Length > 0) { products = products.Where(p => model.ProjectIds.Contains(p.ProjectId)); } if (!String.IsNullOrEmpty(model.Term)) { var term = model.Term.ToLower(); products = products.Where( p => p.Article.ToLower().Contains(term) || p.Title.ToLower().Contains(term) || p.Description.ToLower().Contains(term)); } if (model.InStock) { products = products.Where(p => p.WarehouseProducts.Any(wp => wp.Quantity > 0)); } if (model.Ordered) { products = products.Where(p => p.FEAOrderItems.Any(f => f.FEAOrder.Status != (short)FEAOrderStatus.Completed)); } model.Fetched = products.OrderBy(p => p.Title).ToList(); PushNavigationItem("Управление товарами", "/manage/products"); PushNavigationItem("Список товаров", "#"); return(View(model)); }
public ActionResult Index(ProductsFiltrationModel model) { // Фильтруем var availableProjects = CurrentUser.ProjectUsers.Select(p => p.ProjectId).ToArray(); IEnumerable<ProductType> products = DataContext.ProductTypes.Where(w => availableProjects.Contains(w.ProjectId)); if (model.ProjectIds.Length > 0) { products = products.Where(p => model.ProjectIds.Contains(p.ProjectId)); } if (!String.IsNullOrEmpty(model.Term)) { var term = model.Term.ToLower(); products = products.Where( p => p.Article.ToLower().Contains(term) || p.Title.ToLower().Contains(term) || p.Description.ToLower().Contains(term)); } if (model.InStock) { products = products.Where(p => p.WarehouseProducts.Any(wp => wp.Quantity > 0)); } if (model.Ordered) { products = products.Where(p => p.FEAOrderItems.Any(f => f.FEAOrder.Status != (short) FEAOrderStatus.Completed)); } model.Fetched = products.OrderBy(p => p.Title).ToList(); PushNavigationItem("Управление товарами","/manage/products"); PushNavigationItem("Список товаров","#"); return View(model); }