public IActionResult GetEnterprises([FromBody] EnterpriseQueryFilter filters) { if (!User.Identity.IsAuthenticated) { throw new AuthenticationException(); } var enterprises = _enterpriseService.GetEnterprises(filters); var enterpriseDto = _mapper.Map <IEnumerable <EnterpriseDto> >(enterprises); var metadata = new Metadata { TotalCount = enterprises.TotalCount, PageSize = enterprises.PageSize, CurrentPage = enterprises.CurrentPage, TotalPages = enterprises.TotalPages, HasNextPage = enterprises.HasNextPage, HasPreviousPage = enterprises.HasPreviousPage, NextPageUrl = _uriService.GetPostPaginationUri(filters, Url.RouteUrl(nameof(GetEnterprises))).ToString(), PreviousPageUrl = _uriService.GetPostPaginationUri(filters, Url.RouteUrl(nameof(GetEnterprises))).ToString() }; var response = new ApiResponse <IEnumerable <EnterpriseDto> >(enterpriseDto) { Meta = metadata }; Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata)); return(Ok(response)); }
public PagedList <Enterprise> GetEnterprises(EnterpriseQueryFilter filters) { filters.PageNumber = filters.PageNumber == 0 ? _paginationOptions.DefaultPageNumber : filters.PageNumber; filters.PageSize = filters.PageSize == 0 ? _paginationOptions.DefaultPageSize : filters.PageSize; var enterprises = _unitOfWork.EnterpriseRepository.GetAll(); if (filters.filter != null) { enterprises = enterprises.Where(x => x.commercial_name.ToLower().Contains(filters.filter.ToLower())); enterprises = enterprises.Where(x => x.enterprise_address.ToLower().Contains(filters.enterprise_address.ToLower())); enterprises = enterprises.Where(x => x.name_application.ToLower().Contains(filters.name_application.ToLower())); } if (filters.id_city != null) { enterprises = enterprises.Where(x => x.id_city == filters.id_city); } if (filters.name_application != null) { enterprises = enterprises.Where(x => x.name_application == filters.name_application); } if (filters.commercial_name != null) { enterprises = enterprises.Where(x => x.commercial_name.ToLower().Contains(filters.commercial_name.ToLower())); } if (filters.enterprise_address != null) { enterprises = enterprises.Where(x => x.enterprise_address.ToLower().Contains(filters.enterprise_address.ToLower())); } if (filters.name_application != null) { enterprises = enterprises.Where(x => x.name_application.ToLower().Contains(filters.name_application.ToLower())); } if (filters.orderedBy != null && filters.orderedBy.Count() > 0) { foreach (var sortM in filters.orderedBy) { enterprises = enterprises.OrderBy(sortM.PairAsSqlExpression); } } var pagedPosts = PagedList <Enterprise> .Create(enterprises, filters.PageNumber, filters.PageSize); return(pagedPosts); }
public Uri GetPostPaginationUri(EnterpriseQueryFilter filter, string actionUrl) { string baseUrl = $"{_baseUri}{actionUrl}"; return(new Uri(baseUrl)); }