OSDN Git Service

f95eba1bc652643b426d3160687b252b93ffba88
[kybernetes/Kybernetes.git] / main / command / reference / SimulateCommand.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Linq;\r
4 using System.Text;\r
5 using com.andoutomo.kybernetes.data;\r
6 using com.andoutomo.kybernetes.data.accessor;\r
7 using com.andoutomo.kybernetes.data.DAO;\r
8 \r
9 namespace com.andoutomo.kybernetes.command.reference\r
10 {\r
11     class SimulateCommand:AbCommand\r
12     {\r
13         string message;\r
14         protected override bool execute()\r
15         {\r
16             SimulateCommandArg param = (SimulateCommandArg)argument;\r
17             DateComponent searchDate = param.targetDate;\r
18 \r
19             DateComponent todayDate = SettingDataAccessor.getObject.getToday();\r
20             TaskDataAccessor dataAccess = TaskDataAccessor.getObject;\r
21             List<TaskData> dataList;\r
22             List<string> retList = new List<string>();\r
23 \r
24             if (searchDate != null)\r
25             {\r
26                 dataList = dataAccess.getDailyTaskList(searchDate);\r
27             }\r
28             else\r
29             {\r
30                 dataList = dataAccess.getToDayTaskList();\r
31             }\r
32             if (dataList.Count == 0)\r
33             {\r
34                 message = "対象タスクがありません。";\r
35                 return false;\r
36             }\r
37             TimeComponent baseTime = TimeComponent.justNow();\r
38             \r
39             retList.Add("現在の時刻 " + baseTime.ToString());\r
40             retList.Add(string.Empty);\r
41             bool alreadySetFlg = false;\r
42             foreach (TaskData data in dataList)\r
43             {\r
44                 if (data.isComplete)\r
45                 {\r
46                     continue;\r
47                 }\r
48                 else if (data.StartTime.IsValid)\r
49                 {\r
50                     //実行中のタスクを開始時間として取得していない場合\r
51                     if (alreadySetFlg)\r
52                     {\r
53                         continue;\r
54                     }\r
55                     //既に取得している場合は、二重取得をしない。\r
56                     else\r
57                     {\r
58                         baseTime = data.StartTime;\r
59                         alreadySetFlg = true;\r
60                     }\r
61                 }\r
62 \r
63                 string wkStartTime = baseTime.ToString();\r
64                 baseTime.add(data.ForecastMin);\r
65                 string wkEndTime = baseTime.ToString();\r
66 \r
67                 retList.Add(" " + data.SortID + " " + wkStartTime + " ~ " + wkEndTime + "  " + data.Contents);\r
68 \r
69             }\r
70             retList.Add(string.Empty);\r
71             retList.Add("終了予定時間 " + baseTime.ToString());\r
72 \r
73             form.addMultiText(retList);\r
74 \r
75             return true;\r
76         }\r
77 \r
78         protected override string turnMessage()\r
79         {\r
80             return string.Empty;\r
81         }\r
82 \r
83         protected override string turnErrorMessage()\r
84         {\r
85             return string.IsNullOrEmpty(message) ? base.DefaultErrorMessage : message;\r
86         }\r
87 \r
88         protected override string turnSplitErrorMessage()\r
89         {\r
90             return base.DefaultSplitErrorMessage;\r
91         }\r
92     }\r
93 }\r