Skip to content

Commit 33f4635

Browse files
committed
🔀 merge from fature/gold-plating
2 parents 39eb99a + a8f2ea8 commit 33f4635

File tree

2 files changed

+21
-22
lines changed

2 files changed

+21
-22
lines changed

‎jwl.core/JwlCoreProcess.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ private async Task FillJiraWithWorklogs(InputWorkLog[] inputWorklogs, WorkLog[]
164164
MultiTaskStats progress = new MultiTaskStats(fillJiraWithWorklogsTasks.Length);
165165
MultiTask multiTask = new MultiTask()
166166
{
167-
TaskFeedback = t => Feedback?.FillJiraWithWorklogsProcess(progress.ApplyTaskStatus(t.Status))
167+
OnTaskAwaited = t => Feedback?.FillJiraWithWorklogsProcess(progress.ApplyTaskStatus(t.Status))
168168
};
169169

170170
await multiTask.WhenAll(fillJiraWithWorklogsTasks);
@@ -181,7 +181,7 @@ private async Task<InputWorkLog[]> ReadInputFiles(IEnumerable<string> fileNames)
181181
MultiTaskStats progressStats = new MultiTaskStats(readerTasks.Length);
182182
MultiTask multiTask = new MultiTask()
183183
{
184-
TaskFeedback = t => Feedback?.ReadCsvInputProcess(progressStats.ApplyTaskStatus(t.Status))
184+
OnTaskAwaited = t => Feedback?.ReadCsvInputProcess(progressStats.ApplyTaskStatus(t.Status))
185185
};
186186

187187
if (readerTasks.Any())

‎jwl.infra/MultiTask.cs

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,17 @@ public enum ProgressState
66
{
77
Unknown,
88
Starting,
9-
BeforeTaskWait,
10-
AfterTaskWait,
9+
BeforeTaskAwait,
10+
AfterTaskAwait,
1111
Finished,
1212
Error,
1313
Cancelled
1414
}
1515

1616
public ProgressState State { get; private set; } = ProgressState.Unknown;
1717

18-
public Action<MultiTask>? ProcessFeedback { get; init; }
19-
public Action<Task>? TaskFeedback { get; init; }
18+
public Action<MultiTask>? OnStateChange { get; init; }
19+
public Action<Task>? OnTaskAwaited { get; init; }
2020

2121
public MultiTask()
2222
{
@@ -25,35 +25,34 @@ public MultiTask()
2525
public async Task WhenAll(IEnumerable<Task> tasks, CancellationToken? cancellationToken = null)
2626
{
2727
State = ProgressState.Starting;
28-
ProcessFeedback?.Invoke(this);
28+
OnStateChange?.Invoke(this);
2929

3030
HashSet<Task> tasksToExecute = tasks.ToHashSet();
3131
List<Exception> errors = new List<Exception>();
3232

3333
while (tasksToExecute.Any())
3434
{
35-
State = ProgressState.BeforeTaskWait;
36-
ProcessFeedback?.Invoke(this);
35+
State = ProgressState.BeforeTaskAwait;
36+
OnStateChange?.Invoke(this);
3737

38-
Task? taskFinished = null;
3938
try
4039
{
4140
cancellationToken?.ThrowIfCancellationRequested();
4241

43-
taskFinished = await Task.WhenAny(tasksToExecute);
42+
Task finishedTask = await Task.WhenAny(tasksToExecute);
4443

45-
State = ProgressState.AfterTaskWait;
46-
ProcessFeedback?.Invoke(this);
47-
TaskFeedback?.Invoke(taskFinished);
44+
State = ProgressState.AfterTaskAwait;
45+
OnStateChange?.Invoke(this);
46+
OnTaskAwaited?.Invoke(finishedTask);
4847

49-
if (taskFinished.Status is TaskStatus.Faulted or TaskStatus.Canceled)
48+
if (finishedTask.Status is TaskStatus.Faulted or TaskStatus.Canceled)
5049
{
51-
tasksToExecute.Remove(taskFinished);
52-
throw taskFinished.Exception ?? new Exception($"Task ended in {taskFinished.Status} status without exception details");
50+
tasksToExecute.Remove(finishedTask);
51+
throw finishedTask.Exception ?? new Exception($"Task ended in {finishedTask.Status} status without exception details");
5352
}
54-
else if (taskFinished.Status == TaskStatus.RanToCompletion)
53+
else if (finishedTask.Status == TaskStatus.RanToCompletion)
5554
{
56-
if (!tasksToExecute.Remove(taskFinished))
55+
if (!tasksToExecute.Remove(finishedTask))
5756
throw new InvalidOperationException("Task reported as finished... again!");
5857
}
5958
}
@@ -72,22 +71,22 @@ public async Task WhenAll(IEnumerable<Task> tasks, CancellationToken? cancellati
7271
if (errors.All(ex => ex is TaskCanceledException))
7372
{
7473
State = ProgressState.Cancelled;
75-
ProcessFeedback?.Invoke(this);
74+
OnStateChange?.Invoke(this);
7675

7776
throw new TaskCanceledException($"All {errors.Count} tasks have been cancelled", new AggregateException(errors));
7877
}
7978
else
8079
{
8180
State = ProgressState.Error;
82-
ProcessFeedback?.Invoke(this);
81+
OnStateChange?.Invoke(this);
8382

8483
throw new AggregateException(errors);
8584
}
8685
}
8786
else
8887
{
8988
State = ProgressState.Finished;
90-
ProcessFeedback?.Invoke(this);
89+
OnStateChange?.Invoke(this);
9190
}
9291
}
9392
}

0 commit comments

Comments
 (0)