コード例 #1
0
        public async Task <IActionResult> GetPersonas([FromQuery] PersonaQueryFilter filters)
        {
            var personas = await _personaService.GetPersonas(filters);

            var personasDtos = _mapper.Map <IEnumerable <PersonaDto> >(personas);


            var metadata = new Metadata
            {
                TotalCount      = personas.TotalCount,
                PageSize        = personas.PageSize,
                ActualPage      = personas.ActualPage,
                TotalPages      = personas.TotalPages,
                HasNextPage     = personas.HasNextPage,
                HasPreviousPage = personas.HasPreviousPage,
                NextPageUrl     = _uriService.GetPersonaPaginationUri(filters, Url.RouteUrl(nameof(GetPersonas))).ToString(),
                PreviousPageUrl = _uriService.GetPersonaPaginationUri(filters, Url.RouteUrl(nameof(GetPersonas))).ToString()
            };

            var response = new ApiResponse <IEnumerable <PersonaDto> >(personasDtos)
            {
                Meta = metadata
            };

            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));

            return(Ok(response));
        }