OSDN Git Service

当日5時からと月曜5時からのバケツの増減を表示する
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer / Status.cs
1 // Copyright (C) 2014 Kazuhiro Fujieda <fujieda@users.sourceforge.jp>\r
2 // \r
3 // This program is part of KancolleSniffer.\r
4 //\r
5 // KancolleSniffer is free software: you can redistribute it and/or modify\r
6 // it under the terms of the GNU General Public License as published by\r
7 // the Free Software Foundation, either version 3 of the License, or\r
8 // (at your option) any later version.\r
9 //\r
10 // This program is distributed in the hope that it will be useful,\r
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 // GNU General Public License for more details.\r
14 //\r
15 // You should have received a copy of the GNU General Public License\r
16 // along with this program; if not, see <http://www.gnu.org/licenses/>.\r
17 \r
18 using System;\r
19 using System.IO;\r
20 using System.Windows.Forms;\r
21 using Codeplex.Data;\r
22 \r
23 namespace KancolleSniffer\r
24 {\r
25     public class Status\r
26     {\r
27         private readonly string _statusFileName = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath),\r
28             "status.json");\r
29 \r
30         public int ExperiencePoint { get; set; }\r
31         public DateTime LastResetTime { get; set; }\r
32         public int BucketsInMorning { get; set; }\r
33         public int BucketsOnMonday { get; set; }\r
34         public DateTime BacketsLastSetTime { get; set; }\r
35 \r
36         public void Load()\r
37         {\r
38             try\r
39             {\r
40                 var obj = (Status)DynamicJson.Parse(File.ReadAllText(_statusFileName));\r
41                 foreach (var property in GetType().GetProperties())\r
42                     property.SetValue(this, property.GetValue(obj, null), null);\r
43             }\r
44             catch (FileNotFoundException)\r
45             {\r
46             }\r
47         }\r
48 \r
49         public void Save()\r
50         {\r
51             File.WriteAllText(_statusFileName, DynamicJson.Serialize(this));\r
52         }\r
53     }\r
54 }\r