2 using com.andoutomo.kybernetes.data.accessor;
\r
3 using com.andoutomo.kybernetes.data.DAO;
\r
4 using System.Collections.Generic;
\r
5 using System.Windows.Forms;
\r
6 using com.andoutomo.kybernetes.data;
\r
8 namespace com.andoutomo.kybernetes.command.change
\r
10 class AddCommand:AbCommand
\r
13 private string message;
\r
14 protected override bool execute()
\r
16 AddCommandArgs addArgs = (AddCommandArgs)base.argument;
\r
17 TaskData data = addArgs.PreparedTaskData;
\r
18 TaskDataAccessor taskAccessor = TaskDataAccessor.getObject;
\r
20 if (data.Contents == null)
\r
22 data.Contents = form.showInputBox("実施事項を入力してください。",ImeMode.Hiragana);
\r
23 if (data.Contents == null || data.Contents == string.Empty)
\r
25 message = "処理を中断しました。";
\r
29 if (data.DoDate == null)
\r
32 form.showInputBox("日付をyyyyMMddかMMddで入力してください。空の場合は今日とします。");
\r
33 if (dateStr == null)
\r
35 message = "処理を中断しました。";
\r
39 if (dateStr == string.Empty)
\r
41 dateStr = SettingDataAccessor.getObject.getToday().getDateString("yyyyMMdd");
\r
45 data.DoDate = new data.DateComponent(dateStr);
\r
49 message = "日付に不備がありました。お手数ですが最初からやり直してください。";
\r
54 if (data.TimeArea == null)
\r
56 TimeComponent now = TimeComponent.justNow();
\r
57 string defaultTimeArea = TimeAreaDataAccessor.getObject.getDefaultTimeArea(now);
\r
59 string wkTimeArea = form.showInputBox("タイムエリア(A-Z)または開始時間を入力してください", defaultTimeArea);
\r
60 //時刻入力された場合はタイムエリアを判定し、時間をタイトルに付与して続行
\r
61 if (wkTimeArea.Contains(":"))
\r
63 TimeComponent wkTimeAreaComp = new TimeComponent(wkTimeArea);
\r
64 string wkEstimatedTimeArea = TimeAreaDataAccessor.getObject.getDefaultTimeArea(wkTimeAreaComp);
\r
65 if (string.IsNullOrEmpty(wkEstimatedTimeArea))
\r
67 message = "処理を中断しました。";
\r
70 data.TimeArea = wkEstimatedTimeArea;
\r
71 data.Contents = data.Contents + "(" + wkTimeAreaComp.ToString() + ")";
\r
76 if (string.IsNullOrEmpty(wkTimeArea))
\r
78 message = "処理を中断しました。";
\r
81 data.TimeArea = wkTimeArea.ToUpper();
\r
84 if (data.CategID == 0)
\r
86 if (data.Category == null)
\r
88 CategoryDataAccessor dataAccessor = CategoryDataAccessor.getObject;
\r
89 //string wkStr = form.showInputBox("カテゴリを記入してください。");
\r
90 List<CategoryData> allList = dataAccessor.getAllCategory();
\r
91 List<SimpleDataBean> dropdownList = new List<SimpleDataBean>();
\r
94 foreach (CategoryData categList in allList)
\r
96 dropdownList.Add(categList.dataForDropDown);
\r
98 string wkStr = form.showDropBoxInputBox(dropdownList, "カテゴリを入力してください。", out wkIsOK);
\r
102 message = "処理を中断しました。";
\r
105 if (string.IsNullOrEmpty(wkStr))
\r
107 message = "処理を中断しました。";
\r
111 CategoryData categData = dataAccessor.getCategoryFromName(wkStr);
\r
112 if (categData != null)
\r
114 data.CategID = categData.CategId;
\r
123 data.CategID = addArgs.CategoryID;
\r
126 if (data.ForecastMin == 0)
\r
128 string wkFrcstMin = form.showInputBox("見積時間を分単位で入力してください。","0");
\r
129 if (wkFrcstMin == null)
\r
131 message = "処理を中断しました。";
\r
134 if (wkFrcstMin == string.Empty)
\r
139 if (wkFrcstMin.ToLower().EndsWith("h"))
\r
141 decimal forcastTime;
\r
142 string timestr = wkFrcstMin.Substring(0, wkFrcstMin.Length - 1);
\r
143 if (decimal.TryParse(timestr, out forcastTime))
\r
145 data.ForecastMin = decimal.ToInt32(forcastTime * 60);
\r
150 data.ForecastMin = Convert.ToInt32(wkFrcstMin);
\r
153 if (data.Project == null)
\r
156 string wkProject = null;
\r
157 List<SimpleDataBean> beanList = taskAccessor.getProjectList();
\r
158 wkProject = form.showDropBoxInputBox(beanList, "プロジェクトを入力してください。",out wkIsOK);
\r
161 message = "処理を中断しました。";
\r
164 data.Project = wkProject;
\r
166 if (data.Tags == null)
\r
169 string wkTag = null;
\r
170 List<SimpleDataBean> beanList = taskAccessor.getTagList();
\r
171 wkTag = form.showDropBoxInputBox(beanList, "タグを入力してください。",out wkIsOK);
\r
174 message = "処理を中断しました。";
\r
181 data.TaskID = taskAccessor.getMaxTaskID();
\r
182 if (data.SortID == 0)
\r
184 data.SortID = taskAccessor.getMaxSortID();
\r
186 if (taskAccessor.insertTask(data))
\r
188 message = "タスクNo." + data.SortID + "「" + data.Contents + "」を追加しました。";
\r
193 message = "処理途中でエラーが発生しました。";
\r
197 protected override string turnMessage()
\r
202 protected override string turnErrorMessage()
\r
204 if (string.IsNullOrEmpty(message))
\r
206 return base.DefaultErrorMessage;
\r
214 protected override string turnSplitErrorMessage()
\r
216 return base.DefaultSplitErrorMessage;
\r