OSDN Git Service

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