/// <summary> /// Get Areas /// </summary> public AreaSearchRequestResponse Get([FromUri] AreaSearchRequest request) { if (request == null || !ModelState.IsValid) { throw new HttpException((int)HttpStatusCode.BadRequest, "Invalid Request"); } return(areaService.SearchArea(request).CreateFrom()); }
/// <summary> /// Search Area /// </summary> public AreaSearchRequestResponse SearchArea(AreaSearchRequest request) { int rowCount; return(new AreaSearchRequestResponse { Areas = areaRepository.SearchArea(request, out rowCount), TotalCount = rowCount }); }
/// <summary> /// Search Area /// </summary> public IEnumerable <Area> SearchArea(AreaSearchRequest request, out int rowCount) { int fromRow = (request.PageNo - 1) * request.PageSize; int toRow = request.PageSize; Expression <Func <Area, bool> > query = city => (string.IsNullOrEmpty(request.AreaFilterText) || (city.AreaCode.Contains(request.AreaFilterText)) || (city.AreaName.Contains(request.AreaFilterText))) && ( (!request.CityId.HasValue || request.CityId == city.CityId)); rowCount = DbSet.Count(query); return(request.IsAsc ? DbSet.Where(query) .OrderBy(areaOrderByClause[request.AreaOrderBy]) .Skip(fromRow) .Take(toRow) .ToList() : DbSet.Where(query) .OrderByDescending(areaOrderByClause[request.AreaOrderBy]) .Skip(fromRow) .Take(toRow) .ToList()); }