Skip to content

Commit 9114f04

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

1 file changed

Lines changed: 12 additions & 15 deletions

File tree

Desktop/Tasks/TaskCreationViewModel.cs

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

56
namespace Desktop.Tasks;
67

@@ -17,21 +18,17 @@ public TaskCreationViewModel(
1718

1819
CreatedTask = new Task(taskName, taskDescription);
1920

20-
var anySucceeded = false;
21-
foreach (var repository in taskRepositories)
22-
{
23-
var creationResult = await repository.Save(CreatedTask);
24-
25-
if (creationResult.Succeeded)
26-
anySucceeded = true;
27-
else
28-
messageNotifier.Notify(
29-
"Task creation has failed due to " +
30-
"an internal error. The Task won't be created. " +
31-
"Please, try again later.");
32-
}
33-
34-
if (!anySucceeded)
21+
var savingTasks = taskRepositories
22+
.Select(x => x.Save(CreatedTask));
23+
var results = await SystemTask.WhenAll(savingTasks);
24+
25+
if (results.Any(x => !x.Succeeded))
26+
messageNotifier.Notify(
27+
"Task creation has failed due to " +
28+
"an internal error. The Task won't be created. " +
29+
"Please, try again later.");
30+
31+
if (results.All(x => !x.Succeeded))
3532
CreatedTask = null;
3633

3734
closeable!.Close();

0 commit comments

Comments
 (0)