public ActionResult Index(FEAFiltrationModel model) { // Фильтруем var availableProjects = CurrentUser.IsAdmin() ? DataContext.Projects.Select(p => p.Id) : CurrentUser.ProjectUsers.Select(pu => pu.ProjectId); IEnumerable <FEAOrder> orders = CurrentUser.IsAdmin() ? DataContext.FEAOrders : DataContext.FEAOrders.Where(fo => availableProjects.Contains(fo.ProjectId)); if (model.ProjectIds.Length > 0) { orders = orders.Where(fo => model.ProjectIds.Contains(fo.ProjectId)); } if (model.Statuses.Length > 0) { orders = orders.Where(fo => model.Statuses.Contains(fo.Status)); } if (model.UserIds.Length > 0) { orders = orders.Where(fo => model.UserIds.Contains(fo.ManagerId)); } if (!String.IsNullOrEmpty(model.Term)) { var term = model.Term.ToLower(); orders = orders.Where( o => (o.Description != null && o.Description.ToLower().Contains(term)) || o.FEAOrderItems.Any(oi => oi.ProductType.Title.ToLower().Contains(term))); } model.Fetched = orders.AsEnumerable().OrderByDescending(o => o.LastUpdate).ToList(); PushNavigationItem("ВЭД", "/fea"); PushNavigationItem("Список ВЭД заявок", "#"); // Отдаем вид return(View(model)); }
public ActionResult Index(FEAFiltrationModel model) { // Фильтруем var availableProjects = CurrentUser.IsAdmin() ? DataContext.Projects.Select(p => p.Id) : CurrentUser.ProjectUsers.Select(pu => pu.ProjectId); IEnumerable<FEAOrder> orders = CurrentUser.IsAdmin() ? DataContext.FEAOrders : DataContext.FEAOrders.Where(fo => availableProjects.Contains(fo.ProjectId)); if (model.ProjectIds.Length > 0) { orders = orders.Where(fo => model.ProjectIds.Contains(fo.ProjectId)); } if (model.Statuses.Length > 0) { orders = orders.Where(fo => model.Statuses.Contains(fo.Status)); } if (model.UserIds.Length > 0) { orders = orders.Where(fo => model.UserIds.Contains(fo.ManagerId)); } if (!String.IsNullOrEmpty(model.Term)) { var term = model.Term.ToLower(); orders = orders.Where( o => (o.Description != null && o.Description.ToLower().Contains(term)) || o.FEAOrderItems.Any(oi => oi.ProductType.Title.ToLower().Contains(term))); } model.Fetched = orders.AsEnumerable().OrderByDescending(o => o.LastUpdate).ToList(); PushNavigationItem("ВЭД","/fea"); PushNavigationItem("Список ВЭД заявок","#"); // Отдаем вид return View(model); }