protected override async Task <WorkItemStateTransitions> AggregatorAsync(WorkItem workItem, DateTime?sinceDate)
        {
            if (workItem?.Id == null)
            {
                return(null);
            }

            var revisions = await WorkItemClient.GetWorkItemRevisionsAsync(workItem);

            return(new WorkItemStateTransitions(workItem.Id, workItem.Title(), revisions.StateTransitions()));
        }
        protected override async Task <WorkItemCycleTime> AggregatorAsync(WorkItem workItem, DateTime?sinceDate)
        {
            var revisions = await WorkItemClient.GetWorkItemRevisionsAsync(workItem);

            var startTime = CalculateStartOfCycle(revisions);
            var endTime   = revisions.LastStateTransitionTo(_toState);

            if (startTime != null && endTime != null && endTime.Value.IsNewerThan(sinceDate))
            {
                return(new WorkItemCycleTime(workItem.Id.Value, workItem.Title(),
                                             workItem.Tags(), startTime.Value, endTime.Value));
            }

            return(null);
        }
Esempio n. 3
0
        protected override async Task <WorkItemDoneDate> AggregatorAsync(WorkItem workItem, DateTime?sinceDate)
        {
            if (workItem?.Id == null)
            {
                return(null);
            }

            var revisions = await WorkItemClient.GetWorkItemRevisionsAsync(workItem);

            var doneDate = revisions.LastStateTransitionTo(_doneState);

            if (doneDate != null && doneDate.Value.IsNewerThan(sinceDate))
            {
                return new WorkItemDoneDate
                       {
                           Id       = workItem.Id.Value,
                           DoneDate = doneDate.Value
                       }
            }
            ;

            return(null);
        }
    }