Exemplo n.º 1
0
        public async static Task <IssuesSummaries> GetSummariesAsync(IssueFilter filter)
        {
            await Task.Delay(300).ConfigureAwait(false);

            var issues = (IEnumerable <IssueData>)AllIssues.Value;

            if (filter != null)
            {
                issues = FilterIssues(filter, issues);
            }
            var lastCreated = issues.Any() ? issues.Max(x => x.Created) : default(DateTime?);

            return(new IssuesSummaries(issues.Count(), lastCreated));
        }
        static async Task <FetchRowsResult> FetchRowsAsync(FetchRowsAsyncEventArgs e)
        {
            IssueSortOrder sortOrder = GetIssueSortOrder(e);
            IssueFilter    filter    = MakeIssueFilter(e.Filter);

            var take   = e.Take ?? 30;
            var issues = await IssuesService.GetIssuesAsync(
                skip : e.Skip,
                take : take,
                sortOrder : sortOrder,
                filter : filter);

            return(new FetchRowsResult(issues, hasMoreRows: issues.Length == take));
        }
        static async Task <object[]> GetTotalSummariesAsync(GetSummariesAsyncEventArgs e)
        {
            IssueFilter filter        = MakeIssueFilter(e.Filter);
            var         summaryValues = await IssuesService.GetSummariesAsync(filter);

            return(e.Summaries.Select(x => {
                if (x.SummaryType == SummaryType.Count)
                {
                    return (object)summaryValues.Count;
                }
                if (x.SummaryType == SummaryType.Max && x.PropertyName == "Created")
                {
                    return summaryValues.LastCreated;
                }
                throw new InvalidOperationException();
            }).ToArray());
        }
Exemplo n.º 4
0
 static IEnumerable <IssueData> FilterIssues(IssueFilter filter, IEnumerable <IssueData> issues)
 {
     if (filter.CreatedFrom != null || filter.CreatedTo != null)
     {
         if (filter.CreatedFrom == null || filter.CreatedTo == null)
         {
             throw new InvalidOperationException();
         }
         issues = issues.Where(x => x.Created >= filter.CreatedFrom.Value && x.Created < filter.CreatedTo);
     }
     if (filter.MinVotes != null)
     {
         issues = issues.Where(x => x.Votes >= filter.MinVotes.Value);
     }
     if (filter.Priority != null)
     {
         issues = issues.Where(x => x.Priority == filter.Priority);
     }
     return(issues);
 }
Exemplo n.º 5
0
        public async static Task <IssueData[]> GetIssuesAsync(int skip, int take, IssueSortOrder sortOrder, IssueFilter filter)
        {
            await Task.Delay(300).ConfigureAwait(false);

            var issues = SortIssues(sortOrder, AllIssues.Value);

            if (filter != null)
            {
                issues = FilterIssues(filter, issues);
            }
            return(issues.Skip(skip).Take(take).Select(x => x.Clone()).ToArray());
        }