public TimeSpan UpdatePollingInterval(TimeSpan currentPollDuration, List<Project> projects, bool isPollingCancelled)
{
var newPollDuration = currentPollDuration;
if (projects.Any(p => p.Builds.Any(b => string.IsNullOrEmpty(b.Finished))))
newPollDuration = TimeSpan.FromSeconds(5);
if (projects.Any(p => p.Builds.Any(b => !string.IsNullOrEmpty(b.Finished))))
newPollDuration = TimeSpan.FromSeconds(30);
if (isPollingCancelled)
newPollDuration = TimeSpan.FromSeconds(10);
return newPollDuration;
}