2 using System.Collections.Generic;
\r
5 using com.andoutomo.kybernetes.data.accessor;
\r
6 using com.andoutomo.kybernetes.data;
\r
7 using com.andoutomo.kybernetes.data.DAO;
\r
8 using System.Windows.Forms;
\r
10 namespace com.andoutomo.kybernetes.command.Control
\r
12 class CheckCommand:AbCommand
\r
14 CheckCommandArg param;
\r
15 protected override bool execute()
\r
17 TaskDataAccessor accessor = TaskDataAccessor.getObject;
\r
19 param = (CheckCommandArg)argument;
\r
20 TaskData target = accessor.getTask(param.sortID);
\r
26 TimeComponent lastEndtime = accessor.getNextStartTime(target.DoDate);
\r
27 if (lastEndtime != null && lastEndtime.IsValid)
\r
29 if (accessor.startTask(target.SortID, lastEndtime))
\r
31 if (accessor.endTask(target.SortID, lastEndtime))
\r
33 string endingComment = form.showInputBox("本タスクへのコメントをどうぞ。", ImeMode.Hiragana);
\r
34 if (!string.IsNullOrEmpty(endingComment))
\r
36 CommentData data = new CommentData();
\r
37 data.TaskID = target.TaskID;
\r
38 data.Comment = endingComment;
\r
40 CommentDataAccessor.getObject.insertComment(data);
\r
42 return repeatCheck(target);
\r
56 message = "終了しているタスクが無いため、自動設定できません。最初は時刻を手動設定してください。";
\r
62 base.errorType = ErrorType.DataNotFound;
\r
68 if (accessor.startTask(param.sortID, param.reportTime))
\r
70 if (accessor.endTask(param.sortID, param.reportTime))
\r
72 string endingComment = form.showInputBox("本タスクへのコメントをどうぞ。", ImeMode.Hiragana);
\r
73 if (!string.IsNullOrEmpty(endingComment))
\r
75 CommentData data = new CommentData();
\r
76 data.TaskID = target.TaskID;
\r
77 data.Comment = endingComment;
\r
79 CommentDataAccessor.getObject.insertComment(data);
\r
81 return repeatCheck(target);
\r
96 protected override string turnMessage()
\r
98 return "タスク " + param.sortID + " をチェック完了しました。";
\r
101 protected override string turnErrorMessage()
\r
103 if (string.IsNullOrEmpty(message))
\r
105 return base.DefaultErrorMessage;
\r
110 protected override string turnSplitErrorMessage()
\r
112 return base.DefaultSplitErrorMessage;
\r
117 /// <param name="_newData"></param>
\r
118 /// <returns></returns>
\r
119 private bool repeatCheck(TaskData _newData)
\r
121 if (TaskDataAccessor.getObject.isRepeatTask(param.sortID))
\r
123 string nextDay = form.showInputBox("次回は何日後ですか?0の場合は繰り返しません。", "1");
\r
124 if (nextDay != "0")
\r
126 _newData.DoDate.addDate(int.Parse(nextDay));
\r
127 _newData.TaskID = TaskDataAccessor.getObject.getMaxTaskID();
\r
128 _newData.SortID = TaskDataAccessor.getObject.getMaxSortID();
\r
131 //_newData.CategID = CategoryDataAccessor.getObject.getCategoryFromName(_newData.Category).CategId;
\r
133 TaskDataAccessor.getObject.insertTask(_newData);
\r
135 //リピート対象としたタスクは複製後もリピート対象とする。
\r
136 TaskDataAccessor.getObject.setRepeatTask(_newData.SortID, true);
\r
138 message = "タスク " + param.sortID + " を終了します。次回は" + _newData.DoDate.getDateString() + "です。";
\r
143 //リピートしないと判断したならそこで終了。
\r