/// <summary> /// 内部ストレージから読み込み /// </summary> void Load() { var docs = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments); var file = System.IO.Path.Combine(docs, "save.xml"); if (System.IO.File.Exists(file)) { using (var st = System.IO.File.OpenRead(file)) { if (items == null) { items = new ToDoFiltableCollection(); } if (items.Load(st) == false) { // 失敗時には、初期データを作成する System.IO.File.Delete(file); // 初期データを作成する items = ToDoFiltableCollection.MakeSampleData(); } } } else { // 初期データを作成する items = ToDoFiltableCollection.MakeSampleData(); } }
/// <summary> /// 内部ストレージから読み込み /// </summary> void Load() { var items = new ToDoFiltableCollection(); // .NET Standard 版では、 // Android/iOSのコードも、共有プロジェクトに書ける var docs = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments); var path = System.IO.Path.Combine(docs, "save.xml"); try { if (System.IO.File.Exists(path)) { var st = System.IO.File.OpenRead(path); if (items.Load(st) == false) { // 初期データを作成する items = ToDoFiltableCollection.MakeSampleData(); } } else { // 初期データを作成する items = ToDoFiltableCollection.MakeSampleData(); } } catch { // UWPを含める場合は従来通り DependencyService を使う using (var st = storage.OpenReader("save.xml")) { if (st == null || items.Load(st) == false) { // 初期データを作成する items = ToDoFiltableCollection.MakeSampleData(); } } } viewModel.Items = items; }
/// <summary> /// 内部ストレージから読み込み /// </summary> void Load() { var items = new ToDoFiltableCollection(); using (var st = storage.OpenReader("save.xml")) { if (st == null || items.Load(st) == false) { // 初期データを作成する items = ToDoFiltableCollection.MakeSampleData(); } } viewModel.Items = items; }
public void TestSaveStream() { var lst = new List <ToDo>(); lst.Add(new ToDo() { Id = 1, Text = "ccc", DueDate = new DateTime(2017, 5, 1), CreatedAt = new DateTime(2017, 4, 3), Completed = false }); lst.Add(new ToDo() { Id = 2, Text = "bbb", DueDate = new DateTime(2017, 5, 2), CreatedAt = new DateTime(2017, 4, 2), Completed = true }); lst.Add(new ToDo() { Id = 3, Text = "aaa", DueDate = new DateTime(2017, 5, 3), CreatedAt = new DateTime(2017, 4, 1), Completed = false }); var items = new ToDoFiltableCollection(lst); var sw = System.IO.File.OpenWrite("save.xml"); bool b = items.Save(sw); sw.Close(); Assert.AreEqual(true, b); /// 新しいコレクションを用意する var newItems = new ToDoFiltableCollection(); var sr = System.IO.File.OpenRead("save.xml"); b = newItems.Load(sr); sr.Close(); Assert.AreEqual(true, b); Assert.AreEqual(3, newItems.Count); Assert.AreEqual(1, newItems[0].Id); Assert.AreEqual("ccc", newItems[0].Text); Assert.AreEqual(new DateTime(2017, 5, 1), newItems[0].DueDate); Assert.AreEqual(new DateTime(2017, 4, 3), newItems[0].CreatedAt); Assert.AreEqual(false, newItems[0].Completed); System.IO.File.Delete("save.xml"); }