public IActionResult GetAll([FromQuery] OrganizationQueryFilter filters) { // GET ORGANIZATIONS DEPENDING ON USER LOGGED var organizations = _organizationService.GetOrganizations(filters); var organizationsDto = _mapper.Map <IEnumerable <OrganizationsListDto> >(organizations); var metadata = new Metadata { TotalCount = organizations.TotalCount, PageSize = organizations.PageSize, CurrentPage = organizations.CurrentPage, TotalPages = organizations.TotalPages, HasNextPage = organizations.HasNextPage, HasPreviousPage = organizations.HasPreviousPage, NextPageUrl = _uriService.GetPaginationUri(Url.RouteUrl(nameof(GetAll))).ToString(), PreviousPageUrl = _uriService.GetPaginationUri(Url.RouteUrl(nameof(GetAll))).ToString() }; var response = new ApiResponse <IEnumerable <OrganizationsListDto> >(organizationsDto) { Meta = metadata }; return(Ok(response)); }
public PagedList <Organization> GetOrganizations(OrganizationQueryFilter filters) { filters.PageNumber = filters.PageNumber == 0 ? _paginationOptions.DefaultPageNumber : filters.PageNumber; filters.PageSize = filters.PageSize == 0 ? _paginationOptions.DefaultPageSize : filters.PageSize; var organizations = _unitOfWork.OrganizationRepository.GetAll().ToList(); if (!String.IsNullOrEmpty(filters.Name)) { organizations = organizations.Where(x => x.Name.ToLower().Contains(filters.Name.ToLower())).ToList(); } if (!String.IsNullOrEmpty(filters.City)) { organizations = organizations.Where(x => x.Address.City.ToLower().Contains(filters.City.ToLower())).ToList(); } if (filters.StateId.HasValue) { organizations = organizations.Where(x => x.Address.StateId == filters.StateId.Value).ToList(); } organizations = organizations.Where(x => x.IsActive == filters.Status).ToList(); var pagedOrganizations = PagedList <Organization> .Create(organizations, filters.PageNumber, filters.PageSize); return(pagedOrganizations); }