Recursition problem

This commit is contained in:
2024-11-13 16:20:12 -07:00
parent 0505330ac5
commit 7e38c565f3
3 changed files with 96 additions and 60 deletions

View File

@ -261,7 +261,7 @@ public class ProcessData : IProcessData
results.Add($"## {record.WorkItem.AssignedTo} - {record.WorkItem.Id} - {record.WorkItem.Title}");
results.Add(string.Empty);
results.Add($"- [{record.WorkItem.Id}]({url}{record.WorkItem.Id})");
if (record.Children.Length == 0)
if (record.Children is null || record.Children.Length == 0)
results.Add(string.Empty);
else
{
@ -300,12 +300,15 @@ public class ProcessData : IProcessData
string line;
spaces.Add('\t');
WorkItem workItem;
foreach (Record child in record.Children)
if (record.Children is not null)
{
workItem = child.WorkItem;
line = GetLine(spaces, workItem, child, condensed, sprintOnly).TrimEnd();
lines.Add(line);
AppendLines(spaces, lines, child, condensed, sprintOnly);
foreach (Record child in record.Children)
{
workItem = child.WorkItem;
line = GetLine(spaces, workItem, child, condensed, sprintOnly).TrimEnd();
lines.Add(line);
AppendLines(spaces, lines, child, condensed, sprintOnly);
}
}
spaces.RemoveAt(0);
}
@ -358,12 +361,15 @@ public class ProcessData : IProcessData
private static void FilterChildren(ReadOnlyCollection<string> workItemTypes, Record record, List<Record> results)
{
foreach (Record r in record.Children)
if (record.Children is not null)
{
if (!workItemTypes.Contains(r.WorkItem.WorkItemType))
continue;
results.Add(r);
FilterChildren(workItemTypes, r, results);
foreach (Record r in record.Children)
{
if (!workItemTypes.Contains(r.WorkItem.WorkItemType))
continue;
results.Add(r);
FilterChildren(workItemTypes, r, results);
}
}
}
@ -414,7 +420,7 @@ public class ProcessData : IProcessData
if (record.WorkItem.WorkItemType != workItemType)
continue;
collection.Clear();
if (record.Children.Length == 0)
if (record.Children is null || record.Children.Length == 0)
continue;
records = FilterChildren(workItemTypes, record);
maxIterationPath = GetMaxIterationPath122508(records);
@ -462,7 +468,7 @@ public class ProcessData : IProcessData
continue;
collection.Clear();
violations.Clear();
if (record.Children.Length == 0)
if (record.Children is null || record.Children.Length == 0)
continue;
if (string.IsNullOrEmpty(record.WorkItem.Tags))
recordsNotMatching = new(new Record[] { record });
@ -521,7 +527,7 @@ public class ProcessData : IProcessData
continue;
collection.Clear();
violations.Clear();
if (record.Children.Length == 0)
if (record.Children is null || record.Children.Length == 0)
continue;
records = FilterChildren(workItemTypes, record);
recordsNotMatching = GetWorkItemsNotMatching126169(record, records);
@ -653,7 +659,7 @@ public class ProcessData : IProcessData
continue;
collection.Clear();
violations.Clear();
if (record.Children.Length == 0)
if (record.Children is null || record.Children.Length == 0)
continue;
records = FilterChildren(workItemTypes, record);
recordsNotMatching = GetWorkItemsNotMatching123066(record, records);
@ -691,7 +697,7 @@ public class ProcessData : IProcessData
continue;
collection.Clear();
violations.Clear();
if (record.Children.Length == 0)
if (record.Children is null || record.Children.Length == 0)
continue;
records = FilterChildren(workItemTypes, record);
recordsNotMatching = GetWorkItemsNotMatching123067(record, records);
@ -729,7 +735,7 @@ public class ProcessData : IProcessData
continue;
collection.Clear();
violations.Clear();
if (record.Children.Length == 0)
if (record.Children is null || record.Children.Length == 0)
continue;
if (record.WorkItem.StartDate is null)
continue;