1
- using System . Collections . ObjectModel ;
1
+ using System . Collections . Generic ;
2
2
using System . Collections . Specialized ;
3
3
using System . IO ;
4
+ using System . Linq ;
4
5
using System . Xml . Serialization ;
5
6
using Cysharp . Threading . Tasks ;
6
7
using Interfaces ;
@@ -19,13 +20,13 @@ public class DataStoreService : IDataStoreService
19
20
private readonly string _dataFilePath ;
20
21
21
22
private AsyncLazy _saveDataTask ;
22
- private AsyncLazy < Collection < TaskItemData > > _loadDataTask ;
23
+ private AsyncLazy < TaskItemData [ ] > _loadDataTask ;
23
24
24
25
public DataStoreService ( IAppContext appContext )
25
26
{
26
27
_mainViewModel = appContext . Resolve < MainViewModel > ( ) ;
27
28
_dataFilePath = Path . Combine ( Application . persistentDataPath , DataFileName ) ;
28
- _serializer = new XmlSerializer ( typeof ( Collection < TaskItemData > ) ) ;
29
+ _serializer = new XmlSerializer ( typeof ( TaskItemData [ ] ) ) ;
29
30
}
30
31
31
32
public async void Enable ( )
@@ -66,7 +67,7 @@ private async UniTask SaveDataAsync()
66
67
await _saveDataTask ;
67
68
}
68
69
69
- private async UniTask < Collection < TaskItemData > > LoadDataAsync ( )
70
+ private async UniTask < TaskItemData [ ] > LoadDataAsync ( )
70
71
{
71
72
if ( _loadDataTask ? . Task . Status . IsCompleted ( ) ?? true )
72
73
{
@@ -76,32 +77,38 @@ private async UniTask<Collection<TaskItemData>> LoadDataAsync()
76
77
return await _loadDataTask ;
77
78
}
78
79
79
- private async UniTask SaveDataAsync ( string filePath , Collection < TaskItemData > taskItems )
80
+ private async UniTask SaveDataAsync ( string filePath , IEnumerable < TaskItemData > taskItems )
80
81
{
81
82
await using var writeStream = File . Create ( filePath ) ;
82
- _serializer . Serialize ( writeStream , taskItems ) ;
83
+ _serializer . Serialize ( writeStream , taskItems . ToArray ( ) ) ;
83
84
}
84
85
85
- private async UniTask < Collection < TaskItemData > > LoadDataAsync ( string filePath )
86
+ private async UniTask < TaskItemData [ ] > LoadDataAsync ( string filePath )
86
87
{
87
88
if ( File . Exists ( filePath ) == false )
88
89
{
89
90
return GetDefaultDataSet ( ) ;
90
91
}
91
92
92
93
await using var readStream = File . OpenRead ( filePath ) ;
93
- return ( Collection < TaskItemData > ) _serializer . Deserialize ( readStream ) ;
94
+ return ( TaskItemData [ ] ) _serializer . Deserialize ( readStream ) ;
94
95
}
95
96
96
- private Collection < TaskItemData > GetDefaultDataSet ( )
97
+ private TaskItemData [ ] GetDefaultDataSet ( )
97
98
{
98
- return new Collection < TaskItemData >
99
+ return new TaskItemData [ ]
99
100
{
100
101
new ( ) { Name = "Add UnitTests" } ,
101
- new ( ) { Name = "Create UGUI ListView" } ,
102
- new ( ) { Name = "Write an article" } ,
103
- new ( ) { Name = "Add UI Toolkit ListView" } ,
104
- new ( ) { Name = "Fix Command bindings" }
102
+ new ( ) { Name = "Add UGUI ListView" } ,
103
+ new ( ) { Name = "Add UI Toolkit ListView" , IsDone = true } ,
104
+ new ( ) { Name = "Provide Custom Binding String Parser" } ,
105
+ new ( ) { Name = "Publish to OpenUPM" } ,
106
+ new ( ) { Name = "Fix Command Binding Issue" , IsDone = true } ,
107
+ new ( ) { Name = "Add AsyncCommand" , IsDone = true } ,
108
+ new ( ) { Name = "Add AsyncLazyCommand" , IsDone = true } ,
109
+ new ( ) { Name = "Add Counter Sample" , IsDone = true } ,
110
+ new ( ) { Name = "Add Calculator Sample" , IsDone = true } ,
111
+ new ( ) { Name = "Add ToDoList Sample" , IsDone = true }
105
112
} ;
106
113
}
107
114
}
0 commit comments