public async Task <IEnumerable <Building> > GetBuildings( BuildingUserParams userParams = null, Expression <Func <Building, object> >[] includeProperties = null, Expression <Func <Building, bool> > filter = null, bool includeAllNestedProps = false, Func <IQueryable <Building>, IOrderedQueryable <Building> > orderBy = null ) { var buildings = _context.Buildings.AsQueryable(); if (includeAllNestedProps) { buildings = IncludeAllProperties(buildings); } else if (includeProperties != null) { buildings = ProcessProperties(buildings, includeProperties); } buildings = ProcessFilter(buildings, userParams, filter); if (orderBy != null) { return(await orderBy(buildings).ToListAsync()); } else { return(await buildings.ToListAsync()); } }
public async Task <IActionResult> GetBuildingsDisplay([FromQuery] BuildingUserParams userParams) { var buildingToDisplay = _mapper.Map <IEnumerable <BuildingForDisplay> >( await _buildingService.GetBuildings(userParams) ); return(Ok(buildingToDisplay)); }
public async Task <PagedList <Building> > GetBuildingsPagination(BuildingUserParams pageParams) { var bldgs = await _buildingsRepo.GetBuildingsPagination( pageParams, new Expression <Func <Building, object> >[] { b => b.BuildingCategory }); return(bldgs); }
public async Task <IEnumerable <Building> > GetBuildings(BuildingUserParams userParams = null) { var buildings = await _buildingsRepo.GetBuildings( userParams, new Expression <Func <Building, object> >[] { b => b.BuildingCategory }); return(buildings); }
public async Task <IActionResult> GetBuildingsPagination([FromQuery] BuildingUserParams userParams) { var bldgs = await _buildingService.GetBuildingsPagination(userParams); var bldgsToReturn = _mapper.Map <IEnumerable <Building> >(bldgs); Response.AddPagination(bldgs.CurrentPage, bldgs.PageSize, bldgs.TotalCount, bldgs.TotalPages); return(Ok(bldgsToReturn)); }
private IQueryable <Building> ProcessFilter(IQueryable <Building> buildings, BuildingUserParams userParams, Expression <Func <Building, bool> > filter) { if (filter != null) { buildings = buildings.Where(filter); } if (userParams?.BuildingCategoryId != null) { buildings = buildings.Where(b => b.BuildingCategoryId == userParams.BuildingCategoryId); } return(buildings); }
public async Task <PagedList <Building> > GetBuildingsPagination( BuildingUserParams userParams, Expression <Func <Building, object> >[] includeProperties = null, Expression <Func <Building, bool> > filter = null ) { var buildings = _context.Buildings.AsQueryable(); if (includeProperties != null) { buildings = ProcessProperties(buildings, includeProperties); } buildings = ProcessFilter(buildings, userParams, filter); return(await PagedList <Building> .CreateAsync(buildings, userParams.PageNumber, userParams.PageSize)); }
public async Task <IActionResult> GetBuildings([FromQuery] BuildingUserParams buildingParams) { var buildings = await _buildingService.GetBuildings(buildingParams); return(Ok(buildings)); }