/// <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();
            }
        }
Beispiel #2
0
        /// <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");
        }