public CustomJsonResult Search(IncidentSearchCriteria criteria) { return(this.CustomJson(this.SearchAndGetPage(criteria))); }
private PageViewModel <Incident> SearchAndGetPage(IncidentSearchCriteria criteria) { var page = this.db.Incidents.Search(criteria).GetPage(criteria); return(page); }
public static IQueryable <Incident> Search(this IQueryable <Incident> incidents, IncidentSearchCriteria searchCriteria) { incidents = incidents.IncludeAll(); if (searchCriteria.IncidentTypeId.HasValue) { incidents = incidents.Where(x => x.IncidentTypeId == searchCriteria.IncidentTypeId); } if (searchCriteria.IncidentDateFrom.HasValue) { incidents = incidents.Where(x => x.IncidentDate >= searchCriteria.IncidentDateFrom); } if (searchCriteria.IncidentDateTo.HasValue) { incidents = incidents.Where(x => x.IncidentDate <= searchCriteria.IncidentDateTo); } if (!string.IsNullOrWhiteSpace(searchCriteria.Description)) { incidents = incidents.Where(x => x.Description.Contains(searchCriteria.Description)); } if (!string.IsNullOrWhiteSpace(searchCriteria.Person)) { incidents = incidents.Where(x => x.Person.Contains(searchCriteria.Person)); } if (!string.IsNullOrWhiteSpace(searchCriteria.Location)) { incidents = incidents.Where(x => x.Person.Contains(searchCriteria.Person)); } return(incidents); }