Skip to content

Commit aa2f3a7

Browse files
committed
Change saving data type from array to collection.
1 parent 87d29d3 commit aa2f3a7

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

samples/Unity.Mvvm.ToDoList/Assets/Scripts/Services/DataStoreService.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
using System.Collections.Specialized;
1+
using System.Collections.ObjectModel;
2+
using System.Collections.Specialized;
23
using System.IO;
3-
using System.Linq;
44
using System.Xml.Serialization;
55
using Cysharp.Threading.Tasks;
66
using Interfaces;
@@ -19,13 +19,13 @@ public class DataStoreService : IDataStoreService
1919
private readonly string _dataFilePath;
2020

2121
private AsyncLazy _saveDataTask;
22-
private AsyncLazy<TaskItemData[]> _loadDataTask;
22+
private AsyncLazy<Collection<TaskItemData>> _loadDataTask;
2323

2424
public DataStoreService(IAppContext appContext)
2525
{
2626
_mainViewModel = appContext.Resolve<MainViewModel>();
2727
_dataFilePath = Path.Combine(Application.persistentDataPath, DataFileName);
28-
_serializer = new XmlSerializer(typeof(TaskItemData[]));
28+
_serializer = new XmlSerializer(typeof(Collection<TaskItemData>));
2929
}
3030

3131
public async void Enable()
@@ -60,13 +60,13 @@ private async UniTask SaveDataAsync()
6060
{
6161
if (_saveDataTask?.Task.Status.IsCompleted() ?? true)
6262
{
63-
_saveDataTask = SaveDataAsync(_dataFilePath).ToAsyncLazy();
63+
_saveDataTask = SaveDataAsync(_dataFilePath, _mainViewModel.TaskItems).ToAsyncLazy();
6464
}
6565

6666
await _saveDataTask;
6767
}
6868

69-
private async UniTask<TaskItemData[]> LoadDataAsync()
69+
private async UniTask<Collection<TaskItemData>> LoadDataAsync()
7070
{
7171
if (_loadDataTask?.Task.Status.IsCompleted() ?? true)
7272
{
@@ -76,26 +76,26 @@ private async UniTask<TaskItemData[]> LoadDataAsync()
7676
return await _loadDataTask;
7777
}
7878

79-
private async UniTask SaveDataAsync(string filePath)
79+
private async UniTask SaveDataAsync(string filePath, Collection<TaskItemData> taskItems)
8080
{
8181
await using var writeStream = File.Create(filePath);
82-
_serializer.Serialize(writeStream, _mainViewModel.TaskItems.ToArray());
82+
_serializer.Serialize(writeStream, taskItems);
8383
}
8484

85-
private async UniTask<TaskItemData[]> LoadDataAsync(string filePath)
85+
private async UniTask<Collection<TaskItemData>> LoadDataAsync(string filePath)
8686
{
8787
if (File.Exists(filePath) == false)
8888
{
8989
return GetDefaultDataSet();
9090
}
9191

9292
await using var readStream = File.OpenRead(filePath);
93-
return (TaskItemData[]) _serializer.Deserialize(readStream);
93+
return (Collection<TaskItemData>) _serializer.Deserialize(readStream);
9494
}
9595

96-
private TaskItemData[] GetDefaultDataSet()
96+
private Collection<TaskItemData> GetDefaultDataSet()
9797
{
98-
return new TaskItemData[]
98+
return new Collection<TaskItemData>
9999
{
100100
new() { Name = "Add UnitTests" },
101101
new() { Name = "Create UGUI ListView" },

0 commit comments

Comments
 (0)