public static void AddPagination(this HttpResponse response, int currentPage, int itemsPerPage, int totalItems, int totalPages) { var paginationHeader = new PagingHeader(currentPage, itemsPerPage, totalItems, totalPages); var camelCaseFormmater = new JsonSerializerSettings(); camelCaseFormmater.ContractResolver = new CamelCasePropertyNamesContractResolver(); response.Headers.Add("Pagination", JsonConvert.SerializeObject(paginationHeader, camelCaseFormmater)); response.Headers.Add("Access-Control-Expose-Headers", "Pagination"); }
private async Task LoadData(string location = null) { isLoading = true; StateHasChanged(); await Task.Delay(100); var url = Url; _UrlManager.Uri = _NavigationManager.Uri; string page = _UrlManager.GetQueryParm("page"); if (_UrlManager.Query.isNOEOW() || page.isNOEOW()) { if (location.isNOEOW() && isFirstRender) { url = $"{url}?page=1&pageSize={PageSize}&req_s=1"; } else if (location.isNOEOW()) { url = $"{url}?page=1&pageSize={PageSize}&req_s=2"; } else if (page.isNOEOW()) { url = $"{url}?page=1&pageSize={PageSize}&req_s=3"; } else { _UrlManager.AddQueryParm("pageSize", PageSize.ToString()); url = $"{url}{_UrlManager.GetQueryString(location)}"; } } else { if (page.isNumberic()) { CurrentPage = int.Parse(page); if (CurrentPage < 1) { CurrentPage = 1; } } _UrlManager.AddQueryParm("pageSize", PageSize.ToString()); url = $"{url}{_UrlManager.GetQueryString()}"; } try { var response = await _api.GetList(url); if (response == null || response.Data == null) { Items = new List <T>(); PagingHeader = new PagingHeader(); } else { Items = _Items = response.Data; PagingHeader = response.Paging; } } catch (Exception e) { PagingHeader = new PagingHeader(); Items = new List <T>(); Console.WriteLine(e.Message); } isLoading = false; StateHasChanged(); }