OSDN Git Service

構成変更のためファイルを置き直し。
[kybernetes/Kybernetes.git] / TaskControlCommand / command / reference / SimulateCommand.cs
diff --git a/TaskControlCommand/command/reference/SimulateCommand.cs b/TaskControlCommand/command/reference/SimulateCommand.cs
new file mode 100644 (file)
index 0000000..f95eba1
--- /dev/null
@@ -0,0 +1,93 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using com.andoutomo.kybernetes.data;\r
+using com.andoutomo.kybernetes.data.accessor;\r
+using com.andoutomo.kybernetes.data.DAO;\r
+\r
+namespace com.andoutomo.kybernetes.command.reference\r
+{\r
+    class SimulateCommand:AbCommand\r
+    {\r
+        string message;\r
+        protected override bool execute()\r
+        {\r
+            SimulateCommandArg param = (SimulateCommandArg)argument;\r
+            DateComponent searchDate = param.targetDate;\r
+\r
+            DateComponent todayDate = SettingDataAccessor.getObject.getToday();\r
+            TaskDataAccessor dataAccess = TaskDataAccessor.getObject;\r
+            List<TaskData> dataList;\r
+            List<string> retList = new List<string>();\r
+\r
+            if (searchDate != null)\r
+            {\r
+                dataList = dataAccess.getDailyTaskList(searchDate);\r
+            }\r
+            else\r
+            {\r
+                dataList = dataAccess.getToDayTaskList();\r
+            }\r
+            if (dataList.Count == 0)\r
+            {\r
+                message = "対象タスクがありません。";\r
+                return false;\r
+            }\r
+            TimeComponent baseTime = TimeComponent.justNow();\r
+            \r
+            retList.Add("現在の時刻 " + baseTime.ToString());\r
+            retList.Add(string.Empty);\r
+            bool alreadySetFlg = false;\r
+            foreach (TaskData data in dataList)\r
+            {\r
+                if (data.isComplete)\r
+                {\r
+                    continue;\r
+                }\r
+                else if (data.StartTime.IsValid)\r
+                {\r
+                    //実行中のタスクを開始時間として取得していない場合\r
+                    if (alreadySetFlg)\r
+                    {\r
+                        continue;\r
+                    }\r
+                    //既に取得している場合は、二重取得をしない。\r
+                    else\r
+                    {\r
+                        baseTime = data.StartTime;\r
+                        alreadySetFlg = true;\r
+                    }\r
+                }\r
+\r
+                string wkStartTime = baseTime.ToString();\r
+                baseTime.add(data.ForecastMin);\r
+                string wkEndTime = baseTime.ToString();\r
+\r
+                retList.Add(" " + data.SortID + " " + wkStartTime + " ~ " + wkEndTime + "  " + data.Contents);\r
+\r
+            }\r
+            retList.Add(string.Empty);\r
+            retList.Add("終了予定時間 " + baseTime.ToString());\r
+\r
+            form.addMultiText(retList);\r
+\r
+            return true;\r
+        }\r
+\r
+        protected override string turnMessage()\r
+        {\r
+            return string.Empty;\r
+        }\r
+\r
+        protected override string turnErrorMessage()\r
+        {\r
+            return string.IsNullOrEmpty(message) ? base.DefaultErrorMessage : message;\r
+        }\r
+\r
+        protected override string turnSplitErrorMessage()\r
+        {\r
+            return base.DefaultSplitErrorMessage;\r
+        }\r
+    }\r
+}\r