@@ -10,16 +10,16 @@ namespace Desktop.Project;
1010
1111public class TaskListViewModel : ViewModelBase
1212{
13- private readonly ITaskRepository taskRepository ;
13+ private readonly IEnumerable < ITaskRepository > taskRepositories ;
1414 public ObservableCollection < Task > Tasks { get ; } = [ ] ;
1515
1616 public Func < TaskCreationViewModel , IShowable > TaskCreationViewCreator { get ; set ; }
1717
1818 public TaskListViewModel (
19- ITaskRepository taskRepository ,
19+ IEnumerable < ITaskRepository > taskRepositories ,
2020 TaskCreationViewModel taskCreationViewModel )
2121 {
22- this . taskRepository = taskRepository ;
22+ this . taskRepositories = taskRepositories ;
2323
2424 Add = new RelayCommand ( ( ) =>
2525 {
@@ -34,7 +34,9 @@ public TaskListViewModel(
3434 Delete = new RelayCommand < Task > ( taskToRemove =>
3535 {
3636 Tasks . Remove ( taskToRemove ! ) ;
37- taskRepository . Delete ( taskToRemove ! ) ;
37+
38+ foreach ( var repository in this . taskRepositories )
39+ repository . Delete ( taskToRemove ! ) ;
3840 } ) ;
3941 }
4042
@@ -47,7 +49,10 @@ public void PopulateTasks()
4749 Tasks . Clear ( ) ;
4850
4951 // TODO: load this async and deferred from the ctor.
50- var retrievedTasks = SystemTask . Run ( taskRepository . All ) . Result ;
52+ var retrievedTasks = SystemTask . Run ( ( ) => SystemTask
53+ . WhenAll ( taskRepositories . Select ( x => x . All ( ) ) ) )
54+ . Result
55+ . SelectMany ( x => x ) ;
5156 foreach ( var task in retrievedTasks )
5257 Tasks . Add ( task ) ;
5358 }
0 commit comments