+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Linq;\r
-using System.Text;\r
-using com.andoutomo.kybernetes.data.accessor;\r
-using com.andoutomo.kybernetes.data;\r
-using com.andoutomo.kybernetes.data.DAO;\r
-\r
-namespace com.andoutomo.kybernetes.command.Control\r
-{\r
- class CheckCommand:AbCommand\r
- {\r
- CheckCommandArg param;\r
- protected override bool execute()\r
- {\r
- TaskDataAccessor accessor = TaskDataAccessor.getObject;\r
-\r
- param = (CheckCommandArg)argument;\r
- TaskData target = accessor.getTask(param.sortID);\r
- if (param.AutoMode)\r
- {\r
-\r
- if (target != null)\r
- {\r
- TimeComponent lastEndtime = accessor.getNextStartTime(target.DoDate);\r
- if (lastEndtime != null && lastEndtime.IsValid)\r
- {\r
- if (accessor.startTask(target.SortID, lastEndtime))\r
- {\r
- if (accessor.endTask(target.SortID, lastEndtime))\r
- {\r
- return repeatCheck(target);\r
- }\r
- else\r
- {\r
- return true;\r
- }\r
- }\r
- else\r
- {\r
- return false;\r
- }\r
- }\r
- else\r
- {\r
- message = "終了しているタスクが無いため、自動設定できません。最初は時刻を手動設定してください。";\r
- return false;\r
- }\r
- }\r
- else\r
- {\r
- base.errorType = ErrorType.DataNotFound;\r
- return false;\r
- }\r
- }\r
- else\r
- {\r
- if (accessor.startTask(param.sortID, param.reportTime))\r
- {\r
- if (accessor.endTask(param.sortID, param.reportTime))\r
- {\r
- return repeatCheck(target);\r
- }\r
- else\r
- {\r
- return false;\r
- }\r
- }\r
- else\r
- {\r
- return false;\r
- }\r
- }\r
- }\r
- string message;\r
-\r
- protected override string turnMessage()\r
- {\r
- return "タスク " + param.sortID + " をチェック完了しました。";\r
- }\r
-\r
- protected override string turnErrorMessage()\r
- {\r
- if (string.IsNullOrEmpty(message))\r
- {\r
- return base.DefaultErrorMessage;\r
- }\r
- return message;\r
- }\r
-\r
- protected override string turnSplitErrorMessage()\r
- {\r
- return base.DefaultSplitErrorMessage;\r
- }\r
- /// <summary>\r
- /// \r
- /// </summary>\r
- /// <param name="_newData"></param>\r
- /// <returns></returns>\r
- private bool repeatCheck(TaskData _newData)\r
- {\r
- if (TaskDataAccessor.getObject.isRepeatTask(param.sortID))\r
- {\r
- string nextDay = form.showInputBox("次回は何日後ですか?0の場合は繰り返しません。", "1");\r
- if (nextDay != "0")\r
- {\r
- _newData.DoDate.addDate(int.Parse(nextDay));\r
- _newData.TaskID = TaskDataAccessor.getObject.getMaxTaskID();\r
- _newData.SortID = TaskDataAccessor.getObject.getMaxSortID();\r
-\r
-\r
- //_newData.CategID = CategoryDataAccessor.getObject.getCategoryFromName(_newData.Category).CategId;\r
-\r
- TaskDataAccessor.getObject.insertTask(_newData);\r
-\r
- //リピート対象としたタスクは複製後もリピート対象とする。\r
- TaskDataAccessor.getObject.setRepeatTask(_newData.SortID, true);\r
-\r
- message = "タスク " + param.sortID + " を終了します。次回は" + _newData.DoDate.getDateString() + "です。";\r
- return true;\r
- }\r
- else\r
- {\r
- //リピートしないと判断したならそこで終了。\r
- return true;\r
- }\r
- }\r
- else\r
- {\r
- //リピート対象でないなら何もしない\r
- return true;\r
- }\r
- }\r
- \r
- }\r
-}\r