public ActionResult AgreementsIndex(AgreementsFiltrationModel model) { // Выбираем var projects = CurrentUser.IsAdmin() ? DataContext.Projects.Select(p => p.Id) : CurrentUser.ProjectUsers.Select(p => p.ProjectId); IEnumerable <LeadAgreement> agreements = DataContext.LeadAgreements.Where(o => o.Status >= (short)LeadAgreementStatus.Signed && projects.Contains(o.ProjectId)); if (model.LeadIds.Length > 0) { agreements = agreements.Where(o => model.LeadIds.Contains(o.LeadId)); } if (model.ProjectIds.Length > 0) { agreements = agreements.Where(o => model.ProjectIds.Contains(o.ProjectId)); } if (model.Statuses.Length > 0) { agreements = agreements.Where(o => model.Statuses.Contains(o.Status)); } if (model.Managers.Length > 0) { agreements = agreements.Where(o => model.Managers.Contains(o.AssignedUserId)); } if (!String.IsNullOrEmpty(model.Term)) { var term = model.Term.ToLower(); agreements = agreements.Where( o => (o.Title != null && o.Title.ToLower().Contains(term) || (o.Description != null && o.Description.ToLower().Contains(term)))); } model.Fetched = agreements.OrderByDescending(a => a.DateModified).ToList(); PushNavigationItem("Бухгалтерия", "/finances/agreements"); PushNavigationItem("Оплата по договорам", "#"); return(View(model)); }
public ActionResult Index(AgreementsFiltrationModel model) { // Выбираем var projects = CurrentUser.IsAdmin() ? DataContext.Projects.Select(p => p.Id) : CurrentUser.ProjectUsers.Select(p => p.ProjectId); IEnumerable<LeadAgreement> agreements = DataContext.LeadAgreements.Where(o => projects.Contains(o.ProjectId)); if (model.LeadIds.Length > 0) { agreements = agreements.Where(o => model.LeadIds.Contains(o.LeadId)); } if (model.ProjectIds.Length > 0) { agreements = agreements.Where(o => model.ProjectIds.Contains(o.ProjectId)); } if (model.Statuses.Length > 0) { agreements = agreements.Where(o => model.Statuses.Contains(o.Status)); } if (model.Managers.Length > 0) { agreements = agreements.Where(o => model.Managers.Contains(o.AssignedUserId)); } if (!String.IsNullOrEmpty(model.Term)) { var term = model.Term.ToLower(); agreements = agreements.Where( o => (o.Title != null && o.Title.ToLower().Contains(term) || (o.Description != null && o.Description.ToLower().Contains(term)))); } model.Fetched = agreements.OrderByDescending(a => a.DateModified).ToList(); PushNavigationItem("Договора", "/agreements"); PushNavigationItem("Список договоров", "#"); return View(model); }