private static async Task <string> GetChangeLog(string ticketNumber, string fromState, string toState) { var output = new StringBuilder(); IClient client = new JiraClient(_url, _userName, _password); Issue issue = await client.GetAsync($"issue/{ticketNumber}") .WithArgument("expand", "changelog") .As <Issue>(); DateTime?startTime = null; var endTime = DateTime.Now.AddDays(-365); var quickTransition = true; foreach (var historyItem in issue.ChangeLog.Histories.OrderBy(x => x.Created)) { foreach (var item in historyItem.Items) { if (item.Field == "status") { if (item.ToString.ToLower() == fromState.ToLower()) { var timeTransitioned = historyItem.Created; quickTransition = false; if (!startTime.HasValue) { startTime = timeTransitioned; } } else if (item.ToString.ToLower() == toState.ToLower()) { var timeTransitioned = historyItem.Created; if (timeTransitioned.Ticks > endTime.Ticks) { endTime = timeTransitioned; } } } } } if (!quickTransition) { var time = endTime.Subtract(startTime.Value).Days; if (time >= 0) { var resultString = $"Issue: {issue.Key} = Transition time : {endTime.Subtract(startTime.Value).Days}"; Console.WriteLine(resultString); output.AppendLine(resultString); } } return(output.ToString()); }