Esempio n. 1
0
        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));
        }