Пример #1
0
        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);
        }