Beispiel #1
0
        public async Task <PagingResponse <PoslanecDto> > GetCurrentPoslanci(PoslanciParameters poslanciParameters)
        {
            var queryStringParam = new Dictionary <string, string>
            {
                ["pageNumber"] = poslanciParameters.PageNumber.ToString(),
                ["searchTerm"] = poslanciParameters.SearchTerm == null ? "" : poslanciParameters.SearchTerm,
                ["orderBy"]    = poslanciParameters.OrderBy,
                ["houses"]     = poslanciParameters.Houses.ToString()
            };

            var response = await _client.GetAsync(QueryHelpers.AddQueryString("poslanec", queryStringParam));

            var content = await response.Content.ReadAsStringAsync();

            if (!response.IsSuccessStatusCode)
            {
                throw new ApplicationException(content);
            }

            var pagingResponse = new PagingResponse <PoslanecDto>
            {
                Items = JsonSerializer.Deserialize <List <PoslanecDto> >(content, new JsonSerializerOptions
                {
                    PropertyNameCaseInsensitive = true
                }),
                MetaData = JsonSerializer.Deserialize <MetaData>(response.Headers.GetValues("X-Pagination").First(), new JsonSerializerOptions
                {
                    PropertyNameCaseInsensitive = true
                })
            };

            return(pagingResponse);
        }
Beispiel #2
0
        public async Task <PagedList <Poslanec> > GetCurrentPoslanci(PoslanciParameters poslanciParameters)
        {
            var poslanci = await FindAll()
                           .Search(poslanciParameters.SearchTerm)
                           .Houses(poslanciParameters.Houses)
                           .Include(os => os.OsobniData)
                           .Include(ob => ob.VolebniObdobi)
                           .Include(ka => ka.Kandidatka)
                           .Include(kr => kr.Kraj)
                           .Sort(poslanciParameters.OrderBy)
                           .ToListAsync();

            return(PagedList <Poslanec> .ToPagedList(poslanci, poslanciParameters.PageNumber, poslanciParameters.PageSize));
        }
Beispiel #3
0
        public async Task <IActionResult> Get([FromQuery] PoslanciParameters poslanciParameters)
        {
            try
            {
                var poslanci = await _repo.Poslanec.GetCurrentPoslanci(poslanciParameters);

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

                var poslanciResult = _mapper.Map <IEnumerable <PoslanecDto> >(poslanci);


                return(Ok(poslanciResult));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, $"Internal server error: {ex.Message}"));
            }
        }