public async Task <IPagedList <GetSchools.Summary> > Handle(GetSchools.Query request, CancellationToken cancellationToken) { var query = await _repo.GetAll(cancellationToken) as IEnumerable <SchoolReadModel>; if (string.IsNullOrEmpty(request.SearchPattern) == false) { query = query.Where(x => x.Name.Contains(request.SearchPattern, StringComparison.InvariantCultureIgnoreCase) || x.City.Contains(request.SearchPattern, StringComparison.InvariantCultureIgnoreCase) || x.Address.Contains(request.SearchPattern, StringComparison.InvariantCultureIgnoreCase)); } return(query .Select(x => new GetSchools.Summary() { Id = x.Id.GetGuid(), Name = x.Name, Address = x.Address, City = x.City, Status = x.GetEffectiveStatus(_clock.GetTodayDate()) }) .ToPagedList(request.PageNo, request.PageSize)); }
public async Task <IActionResult> Index([FromQuery] GetSchools.Query query) { return(Ok(await _engine.Query(query))); }