public PagedList <Invite> GetInvites(InviteQueryFilter filters) { filters.PageNumber = filters.PageNumber == 0 ? _paginationOptions.DefaultPageNumber : filters.PageNumber; filters.PageSize = filters.PageSize == 0 ? _paginationOptions.DefaultPageSize : filters.PageSize; var invites = _unitOfWork.InviteRepository.GetAll().ToList(); if (!String.IsNullOrEmpty(filters.Email)) { invites = invites.Where(x => x.Email.ToLower().Contains(filters.Email.ToLower())).ToList(); } if (!String.IsNullOrEmpty(filters.Role)) { invites = invites.Where(x => x.Role.Name.ToLower().Contains(filters.Role.ToLower())).ToList(); } if (!String.IsNullOrEmpty(filters.Organization)) { invites = invites.Where(x => x.Organization.Name.ToLower().Contains(filters.Organization.ToLower())).ToList(); } if (!String.IsNullOrEmpty(filters.Facility)) { invites = invites.Where(x => x.Facility.Name.ToLower().Contains(filters.Facility.ToLower())).ToList(); } var pagedInvites = PagedList <Invite> .Create(invites, filters.PageNumber, filters.PageSize); return(pagedInvites); }
public IActionResult GetAll([FromQuery] InviteQueryFilter filters) { var invites = _inviteService.GetInvites(filters); var invitesDto = _mapper.Map <IEnumerable <InviteDto> >(invites); var metadata = new Metadata { TotalCount = invites.TotalCount, PageSize = invites.PageSize, CurrentPage = invites.CurrentPage, TotalPages = invites.TotalPages, HasNextPage = invites.HasNextPage, HasPreviousPage = invites.HasPreviousPage, NextPageUrl = _uriService.GetPaginationUri(Url.RouteUrl(nameof(GetAll))).ToString(), PreviousPageUrl = _uriService.GetPaginationUri(Url.RouteUrl(nameof(GetAll))).ToString() }; var response = new ApiResponse <IEnumerable <InviteDto> >(invitesDto) { Meta = metadata }; return(Ok(response)); }