--- /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
+using System.Windows.Forms;\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
+ string endingComment = form.showInputBox("本タスクへのコメントをどうぞ。", ImeMode.Hiragana);\r
+ if (!string.IsNullOrEmpty(endingComment))\r
+ {\r
+ CommentData data = new CommentData();\r
+ data.TaskID = target.TaskID;\r
+ data.Comment = endingComment;\r
+\r
+ CommentDataAccessor.getObject.insertComment(data);\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
+ string endingComment = form.showInputBox("本タスクへのコメントをどうぞ。", ImeMode.Hiragana);\r
+ if (!string.IsNullOrEmpty(endingComment))\r
+ {\r
+ CommentData data = new CommentData();\r
+ data.TaskID = target.TaskID;\r
+ data.Comment = endingComment;\r
+\r
+ CommentDataAccessor.getObject.insertComment(data);\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