static async Task <FetchRowsResult> FetchRowsAsync(FetchPageAsyncEventArgs e) { IssueSortOrder sortOrder = GetIssueSortOrder(e); IssueFilter filter = MakeIssueFilter(e.Filter); var issues = await IssuesService.GetIssuesAsync( page : e.Skip / e.Take, pageSize : e.Take, sortOrder : sortOrder, filter : filter); return(new FetchRowsResult(issues, hasMoreRows: issues.Length == e.Take)); }
static IssueSortOrder GetIssueSortOrder(FetchPageAsyncEventArgs e) { if (e.SortOrder.Length > 0) { var sort = e.SortOrder.Single(); if (sort.PropertyName == "Created") { return(sort.Direction == ListSortDirection.Ascending ? IssueSortOrder.CreatedAscending : IssueSortOrder.CreatedDescending); } } return(IssueSortOrder.CreatedDescending); }
static async Task <FetchRowsResult> FetchRowsAsync(FetchPageAsyncEventArgs e) { IssueSortOrder sortOrder = GetIssueSortOrder(e); var issuesFetchResult = await IssuesService.GetIssuesAsync( skipToken : e.SkipToken, pageSize : e.Take, sortOrder : sortOrder); return(new FetchRowsResult( issuesFetchResult.Issues, hasMoreRows: issuesFetchResult.Issues.Length == e.Take, nextSkipToken: issuesFetchResult.NextSkipToken)); }
static IssueSortOrder GetIssueSortOrder(FetchPageAsyncEventArgs e) { if (e.SortOrder.Length > 0) { var sort = e.SortOrder.Single(); if (sort.PropertyName == "Created") { if (sort.Direction != ListSortDirection.Descending) { throw new InvalidOperationException(); } return(IssueSortOrder.CreatedDescending); } if (sort.PropertyName == "Votes") { return(sort.Direction == ListSortDirection.Ascending ? IssueSortOrder.VotesAscending : IssueSortOrder.VotesDescending); } } return(IssueSortOrder.Default); }