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
8 namespace com.andoutomo.kybernetes.command.change
\r
10 class UpdateCommand:AbCommand
\r
13 protected override bool execute()
\r
15 UpdateCommandArg param = (UpdateCommandArg)argument;
\r
16 TaskData data = param.PreparedTaskData;
\r
18 TaskDataAccessor accessor = TaskDataAccessor.getObject;
\r
22 base.errorType = ErrorType.DataNotFound;
\r
25 if (param.changeDialog)
\r
28 data.Contents = form.showInputBox("実施事項を入力してください。",data.Contents,ImeMode.Hiragana);
\r
29 if (data.Contents == null || data.Contents == string.Empty)
\r
31 message = "処理を中断しました。";
\r
36 string dateStr = form.showInputBox("日付をyyyyMMddかMMddで入力してください。空の場合は今日とします。",data.DoDate.getDateString("yyyyMMdd"));
\r
37 if (dateStr == null)
\r
39 message = "処理を中断しました。";
\r
43 if (dateStr == string.Empty)
\r
45 dateStr = DateTime.Today.ToString("yyyyMMdd");
\r
49 data.DoDate = new data.DateComponent(dateStr);
\r
53 message = "日付に不備がありました。お手数ですが最初からやり直してください。";
\r
59 string wkTimeArea= form.showInputBox("タイムエリアを選択してください(A-Z)",data.TimeArea);
\r
60 if (wkTimeArea.Contains(":"))
\r
62 //時刻入力された場合はタイムエリアを判定し、時間をタイトルに付与して続行
\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
75 data.TimeArea = wkTimeArea.ToUpper();
\r
76 if (data.TimeArea == null || data.TimeArea == string.Empty)
\r
78 message = "処理を中断しました。";
\r
84 CategoryDataAccessor dataAccessor = CategoryDataAccessor.getObject;
\r
85 //string wkStr = form.showInputBox("カテゴリを記入してください。");
\r
86 List<CategoryData> allList = dataAccessor.getAllCategory();
\r
87 List<SimpleDataBean> dropdownList = new List<SimpleDataBean>();
\r
89 foreach (CategoryData categList in allList)
\r
91 dropdownList.Add(categList.dataForDropDown);
\r
94 CategoryData selectedCategory = dataAccessor.getCategoryFromID(data.CategID);
\r
96 if (selectedCategory == null)
\r
98 wkStr = form.showDropBoxInputBox(dropdownList, "カテゴリを入力してください。",out wkIsOK);
\r
102 wkStr = form.showDropBoxInputBox(dropdownList, "カテゴリを入力してください。", selectedCategory.Category, out wkIsOK);
\r
107 message = "処理を中断しました。";
\r
112 CategoryData categData = dataAccessor.getCategoryFromName(wkStr);
\r
113 if (categData != null)
\r
115 data.CategID = categData.CategId;
\r
124 string wkFrcstMin = form.showInputBox("見積時間を入力してください。",data.ForecastMin.ToString());
\r
125 if (wkFrcstMin == null || wkFrcstMin == string.Empty)
\r
127 message = "処理を中断しました。";
\r
131 if (wkFrcstMin.ToLower().EndsWith("h"))
\r
133 decimal forcastTime;
\r
134 string timestr = wkFrcstMin.Substring(0, wkFrcstMin.Length - 1);
\r
135 if (decimal.TryParse(timestr, out forcastTime))
\r
137 data.ForecastMin = decimal.ToInt32(forcastTime * 60);
\r
142 data.ForecastMin = Convert.ToInt32(wkFrcstMin);
\r
149 string wkProject = null;
\r
150 List<SimpleDataBean> beanList = accessor.getProjectList();
\r
151 wkProject = form.showDropBoxInputBox(beanList, "プロジェクトを入力してください。", data.Project, out wkIsOK);
\r
154 message = "処理を中断しました。";
\r
157 data.Project = wkProject;
\r
161 data.Tags = form.showInputBox("タグを入力してください", data.Tags);
\r
169 //成功した場合のメッセージをここで作っておく
\r
170 message = "タスクNo." + data.SortID + "を更新しました。";
\r
171 return accessor.updateTask(data);
\r
175 protected override string turnMessage()
\r
180 protected override string turnErrorMessage()
\r
182 if (message == string.Empty)
\r
184 return base.DefaultErrorMessage;
\r
192 protected override string turnSplitErrorMessage()
\r
194 return base.DefaultSplitErrorMessage;
\r