2 using System.Collections.Generic;
\r
3 using com.andoutomo.kybernetes.data.DAO;
\r
4 using com.andoutomo.kybernetes.data.accessor;
\r
5 using System.Windows.Forms;
\r
6 using com.andoutomo.kybernetes.data;
\r
7 using com.andoutomo.kybernetes.control;
\r
9 namespace com.andoutomo.kybernetes.command.change
\r
11 class UpdateCommand:AbCommand
\r
14 protected override bool execute()
\r
16 UpdateCommandArg param = (UpdateCommandArg)argument;
\r
17 TaskData data = param.PreparedTaskData;
\r
19 TaskDataAccessor accessor = TaskDataAccessor.getObject;
\r
23 base.errorType = ErrorType.DataNotFound;
\r
26 if (param.changeDialog)
\r
29 data.Contents = form.showInputBox("実施事項を入力してください。",data.Contents,ImeMode.Hiragana);
\r
30 if (data.Contents == null || data.Contents == string.Empty)
\r
32 message = "処理を中断しました。";
\r
37 string dateStr = form.showInputBox("日付をyyyyMMddかMMddで入力してください。空の場合は今日とします。",data.DoDate.getDateString("yyyyMMdd"));
\r
38 if (dateStr == null)
\r
40 message = "処理を中断しました。";
\r
44 if (dateStr == string.Empty)
\r
46 dateStr = DateTime.Today.ToString("yyyyMMdd");
\r
50 data.DoDate = new data.DateComponent(dateStr);
\r
54 message = "日付に不備がありました。お手数ですが最初からやり直してください。";
\r
55 KybernetesLogger.Log.debug(e.Message);
\r
61 string wkTimeArea= form.showInputBox("タイムエリアを選択してください(A-Z)",data.TimeArea);
\r
62 if (wkTimeArea.Contains(":"))
\r
64 //時刻入力された場合はタイムエリアを判定し、時間をタイトルに付与して続行
\r
65 TimeComponent wkTimeAreaComp = new TimeComponent(wkTimeArea);
\r
66 string wkEstimatedTimeArea = TimeAreaDataAccessor.getObject.getDefaultTimeArea(wkTimeAreaComp);
\r
67 if (string.IsNullOrEmpty(wkEstimatedTimeArea))
\r
69 message = "処理を中断しました。";
\r
72 data.TimeArea = wkEstimatedTimeArea;
\r
73 data.Contents = data.Contents + "(" + wkTimeAreaComp.ToString() + ")";
\r
77 data.TimeArea = wkTimeArea.ToUpper();
\r
78 if (data.TimeArea == null || data.TimeArea == string.Empty)
\r
80 message = "処理を中断しました。";
\r
86 CategoryDataAccessor dataAccessor = CategoryDataAccessor.getObject;
\r
87 //string wkStr = form.showInputBox("カテゴリを記入してください。");
\r
88 List<CategoryData> allList = dataAccessor.getAllCategory();
\r
89 List<SimpleDataBean> dropdownList = new List<SimpleDataBean>();
\r
91 foreach (CategoryData categList in allList)
\r
93 dropdownList.Add(categList.dataForDropDown);
\r
96 CategoryData selectedCategory = dataAccessor.getCategoryFromID(data.CategID);
\r
98 if (selectedCategory == null)
\r
100 wkStr = form.showDropBoxInputBox(dropdownList, "カテゴリを入力してください。",out wkIsOK);
\r
104 wkStr = form.showDropBoxInputBox(dropdownList, "カテゴリを入力してください。", selectedCategory.Category, out wkIsOK);
\r
109 message = "処理を中断しました。";
\r
114 CategoryData categData = dataAccessor.getCategoryFromName(wkStr);
\r
115 if (categData != null)
\r
117 data.CategID = categData.CategId;
\r
126 string wkFrcstMin = form.showInputBox("見積時間を入力してください。",data.ForecastMin.ToString());
\r
127 if (wkFrcstMin == null || wkFrcstMin == string.Empty)
\r
129 message = "処理を中断しました。";
\r
133 if (wkFrcstMin.ToLower().EndsWith("h"))
\r
135 decimal forcastTime;
\r
136 string timestr = wkFrcstMin.Substring(0, wkFrcstMin.Length - 1);
\r
137 if (decimal.TryParse(timestr, out forcastTime))
\r
139 data.ForecastMin = decimal.ToInt32(forcastTime * 60);
\r
144 data.ForecastMin = Convert.ToInt32(wkFrcstMin);
\r
151 string wkProject = null;
\r
152 List<SimpleDataBean> beanList = accessor.getProjectList();
\r
153 wkProject = form.showDropBoxInputBox(beanList, "プロジェクトを入力してください。", data.Project, out wkIsOK);
\r
156 message = "処理を中断しました。";
\r
159 data.Project = wkProject;
\r
163 data.Tags = form.showInputBox("タグを入力してください", data.Tags);
\r
171 //成功した場合のメッセージをここで作っておく
\r
172 message = "タスクNo." + data.SortID + "を更新しました。";
\r
173 return accessor.updateTask(data);
\r
177 protected override string turnMessage()
\r
182 protected override string turnErrorMessage()
\r
184 if (message == string.Empty)
\r
186 return base.DefaultErrorMessage;
\r
194 protected override string turnSplitErrorMessage()
\r
196 return base.DefaultSplitErrorMessage;
\r