1
- using System . Collections . Specialized ;
1
+ using System . Collections . ObjectModel ;
2
+ using System . Collections . Specialized ;
2
3
using System . IO ;
3
- using System . Linq ;
4
4
using System . Xml . Serialization ;
5
5
using Cysharp . Threading . Tasks ;
6
6
using Interfaces ;
@@ -19,13 +19,13 @@ public class DataStoreService : IDataStoreService
19
19
private readonly string _dataFilePath ;
20
20
21
21
private AsyncLazy _saveDataTask ;
22
- private AsyncLazy < TaskItemData [ ] > _loadDataTask ;
22
+ private AsyncLazy < Collection < TaskItemData > > _loadDataTask ;
23
23
24
24
public DataStoreService ( IAppContext appContext )
25
25
{
26
26
_mainViewModel = appContext . Resolve < MainViewModel > ( ) ;
27
27
_dataFilePath = Path . Combine ( Application . persistentDataPath , DataFileName ) ;
28
- _serializer = new XmlSerializer ( typeof ( TaskItemData [ ] ) ) ;
28
+ _serializer = new XmlSerializer ( typeof ( Collection < TaskItemData > ) ) ;
29
29
}
30
30
31
31
public async void Enable ( )
@@ -60,13 +60,13 @@ private async UniTask SaveDataAsync()
60
60
{
61
61
if ( _saveDataTask ? . Task . Status . IsCompleted ( ) ?? true )
62
62
{
63
- _saveDataTask = SaveDataAsync ( _dataFilePath ) . ToAsyncLazy ( ) ;
63
+ _saveDataTask = SaveDataAsync ( _dataFilePath , _mainViewModel . TaskItems ) . ToAsyncLazy ( ) ;
64
64
}
65
65
66
66
await _saveDataTask ;
67
67
}
68
68
69
- private async UniTask < TaskItemData [ ] > LoadDataAsync ( )
69
+ private async UniTask < Collection < TaskItemData > > LoadDataAsync ( )
70
70
{
71
71
if ( _loadDataTask ? . Task . Status . IsCompleted ( ) ?? true )
72
72
{
@@ -76,26 +76,26 @@ private async UniTask<TaskItemData[]> LoadDataAsync()
76
76
return await _loadDataTask ;
77
77
}
78
78
79
- private async UniTask SaveDataAsync ( string filePath )
79
+ private async UniTask SaveDataAsync ( string filePath , Collection < TaskItemData > taskItems )
80
80
{
81
81
await using var writeStream = File . Create ( filePath ) ;
82
- _serializer . Serialize ( writeStream , _mainViewModel . TaskItems . ToArray ( ) ) ;
82
+ _serializer . Serialize ( writeStream , taskItems ) ;
83
83
}
84
84
85
- private async UniTask < TaskItemData [ ] > LoadDataAsync ( string filePath )
85
+ private async UniTask < Collection < TaskItemData > > LoadDataAsync ( string filePath )
86
86
{
87
87
if ( File . Exists ( filePath ) == false )
88
88
{
89
89
return GetDefaultDataSet ( ) ;
90
90
}
91
91
92
92
await using var readStream = File . OpenRead ( filePath ) ;
93
- return ( TaskItemData [ ] ) _serializer . Deserialize ( readStream ) ;
93
+ return ( Collection < TaskItemData > ) _serializer . Deserialize ( readStream ) ;
94
94
}
95
95
96
- private TaskItemData [ ] GetDefaultDataSet ( )
96
+ private Collection < TaskItemData > GetDefaultDataSet ( )
97
97
{
98
- return new TaskItemData [ ]
98
+ return new Collection < TaskItemData >
99
99
{
100
100
new ( ) { Name = "Add UnitTests" } ,
101
101
new ( ) { Name = "Create UGUI ListView" } ,
0 commit comments