OSDN Git Service

v1.1.6.6
[kybernetes/Kybernetes.git] / main / data / DAO / TaskData.cs
1 \r
2 using System.Text;\r
3 namespace com.andoutomo.kybernetes.data.DAO\r
4 {\r
5     public class TaskData\r
6     {\r
7         private int taskid;\r
8         private int sortid;\r
9         private DateComponent doDate;\r
10         private string timeArea;\r
11         private string category;\r
12         private string contents;\r
13         private int forecastMin;\r
14         private TimeComponent startTime;\r
15         private TimeComponent endTime;\r
16         private int isRepeat;\r
17         private int bgColor;\r
18         private int frColor;\r
19         private DateComponent _today;\r
20         private int categID;\r
21 \r
22 \r
23         private string project;\r
24         private string tags;\r
25         private string comment;\r
26 \r
27         private string path;\r
28 \r
29 \r
30         public int TaskID\r
31         {\r
32             get { return taskid; }\r
33             set { this.taskid = value; }\r
34         }\r
35         public int SortID\r
36         {\r
37             get { return sortid; }\r
38             set { this.sortid = value; }\r
39         }\r
40         public DateComponent DoDate\r
41         {\r
42             get { return doDate; }\r
43             set { this.doDate = value; }\r
44         }\r
45         public string TimeArea\r
46         {\r
47             get { return timeArea; }\r
48             set { this.timeArea = value; }\r
49         }\r
50         public string Category\r
51         {\r
52             get { return category; }\r
53             set { this.category = value; }\r
54         }\r
55         public int CategID\r
56         {\r
57             get { return categID; }\r
58             set { this.categID = value; }\r
59         }\r
60 \r
61         public string Contents\r
62         {\r
63             get { return contents; }\r
64             set { this.contents = value; }\r
65         }\r
66         public decimal forecastHour\r
67         {\r
68             get {\r
69                 decimal wkMin = forecastMin;\r
70                 return decimal.Round(wkMin / 60, 2);\r
71             }\r
72             set\r
73             {\r
74                 this.forecastMin = decimal.ToInt32(value * 60);\r
75             }\r
76         }\r
77         public string getForcastHourStr\r
78         {\r
79             get { return this.forecastHour.ToString("0.00"); }\r
80         }\r
81         public int ForecastMin\r
82         {\r
83             get { return forecastMin; }\r
84             set { this.forecastMin = value; }\r
85         }\r
86         public int RealMin\r
87         {\r
88             get\r
89             {\r
90                 if (startTime.IsValid == false) { return 0; }\r
91                 else\r
92                 {\r
93                     if (endTime.IsValid)\r
94                     {\r
95                         return endTime.getSubtractionMinute(startTime);\r
96                     }\r
97                     else\r
98                     {\r
99                         return 0;\r
100                     }\r
101                 }\r
102             }\r
103         }\r
104         public TimeComponent StartTime\r
105         {\r
106             get { return startTime; }\r
107             set { this.startTime = value; }\r
108         }\r
109         public TimeComponent EndTime\r
110         {\r
111             get { return endTime; }\r
112             set { this.endTime = value; }\r
113         }\r
114         public bool isComplete\r
115         {\r
116             get { return endTime != null && endTime.IsValid; }\r
117         }\r
118         public int IsRepeat\r
119         {\r
120             get { return isRepeat; }\r
121             set\r
122             {\r
123                 this.isRepeat = value;\r
124             }\r
125         }\r
126         public int BgColor\r
127         {\r
128             get { return bgColor; }\r
129             set { this.bgColor = value; }\r
130         }\r
131         public int FrColor\r
132         {\r
133             get { return frColor; }\r
134             set { this.frColor = value; }\r
135         }\r
136         public DateComponent Today\r
137         {\r
138             private get { return _today; }\r
139             set { this._today = value; }\r
140         }\r
141         private bool isToday\r
142         {\r
143             get { return 0 == doDate.calculateDateDiff(_today); }\r
144         }\r
145         private int SpanOfDate\r
146         {\r
147             get { return doDate.calculateDateDiff(_today); }\r
148         }\r
149         public string Indicator\r
150         {\r
151             get\r
152             {\r
153                 if (isToday)\r
154                 {\r
155                     if (isComplete)\r
156                     {\r
157                         return "■";\r
158                     }\r
159                     else\r
160                     {\r
161                         return "□";\r
162                     }\r
163                 }\r
164                 //未来分(SpanOfDateが正の数)\r
165                 else if (SpanOfDate > 0)\r
166                 {\r
167                     return "◎";\r
168                 }\r
169                 //過去分(SpanOfDateが負の数)\r
170                 else\r
171                 {\r
172                     return "☆";\r
173                 }\r
174             }\r
175         }\r
176 \r
177         public static string CSVHeader\r
178         {\r
179             get\r
180             {\r
181                 return "日付,曜,@,ID,カテゴリ,内容,予測時間(H),予測時間(m),実績,開始,終了,プロジェクト,タグ,最終コメント";\r
182             }\r
183         }\r
184         public string CSVData\r
185         {\r
186             get\r
187             {\r
188                 StringBuilder builder = new StringBuilder();\r
189                 builder.Append(this.doDate.getDateString()).Append(",");\r
190                 builder.Append(this.doDate.getDowStr()).Append(",");\r
191                 builder.Append(this.timeArea).Append(",");\r
192                 builder.Append(this.sortid).Append(",");\r
193                 builder.Append(this.category).Append(",");\r
194                 builder.Append(this.contents).Append(",");\r
195                 builder.Append(this.forecastHour).Append(",");\r
196                 builder.Append(this.forecastMin).Append(",");\r
197                 builder.Append(this.RealMin).Append(",");\r
198                 builder.Append(this.startTime.ToString()).Append(",");\r
199                 builder.Append(this.endTime.ToString()).Append(",");\r
200                 builder.Append(this.project).Append(",");\r
201                 builder.Append(this.tags.Replace(',','|')).Append(",");//タグはカンマを変換する\r
202                 builder.Append(this.comment);\r
203                 return builder.ToString(); \r
204             }\r
205         }\r
206 \r
207         public string Project\r
208         {\r
209             get { return project; }\r
210             set { this.project = value; }\r
211         }\r
212         public string Tags\r
213         {\r
214             get { return tags; }\r
215             set { this.tags = value; }\r
216         }\r
217         public string Comment\r
218         {\r
219             get { return comment; }\r
220             set { this.comment = value; }\r
221         }\r
222         public string FilePath\r
223         {\r
224             get { return path; }\r
225             set { this.path = value; }\r
226         }\r
227     }\r
228 }\r