Skip to content

Commit 4cbba81

Browse files
committed
refactor: replace foreach with Task.WhenAll
1 parent afe7f4c commit 4cbba81

1 file changed

Lines changed: 12 additions & 15 deletions

File tree

Desktop/Tasks/TaskEditingViewModel.cs

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using CommunityToolkit.Mvvm.Input;
33
using Desktop.Common;
44
using Task = Desktop.Domain.Task;
5+
using SystemTask = System.Threading.Tasks.Task;
56

67
namespace Desktop.Tasks;
78

@@ -21,21 +22,17 @@ public TaskEditingViewModel(
2122
var originalDescription = taskBeingEdited.Description;
2223
taskBeingEdited.Description = description;
2324

24-
var anySucceeded = false;
25-
foreach (var repository in taskRepositories)
26-
{
27-
var editingResult = await repository.Save(taskBeingEdited);
28-
29-
if (editingResult.Succeeded)
30-
anySucceeded = true;
31-
else
32-
messageNotifier.Notify(
33-
"Task editing has failed due to " +
34-
"an internal error. The modifications will be reverted. " +
35-
"Please, try again later.");
36-
}
37-
38-
if (!anySucceeded)
25+
var editsTasks = taskRepositories
26+
.Select(x => x.Save(taskBeingEdited));
27+
var results = await SystemTask.WhenAll(editsTasks);
28+
29+
if (results.Any(x => !x.Succeeded))
30+
messageNotifier.Notify(
31+
"Task editing has failed due to " +
32+
"an internal error. The modifications will be reverted. " +
33+
"Please, try again later.");
34+
35+
if (results.All(x => !x.Succeeded))
3936
RevertEdit(taskBeingEdited, originalName, originalDescription);
4037
});
4138
}

0 commit comments

Comments
 (0)