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
7 namespace com.andoutomo.kybernetes.command
\r
9 class AddCommand:AbCommand
\r
12 private string message;
\r
13 protected override bool execute()
\r
15 AddCommandArgs addArgs = (AddCommandArgs)base.args;
\r
16 TaskData data = addArgs.PreparedTaskData;
\r
18 if (data.Contents == null)
\r
20 data.Contents = form.showInputBox("実施事項を入力してください。",ImeMode.Hiragana);
\r
21 if (data.Contents == null || data.Contents == string.Empty)
\r
23 message = "書くからには何か実施しましょう。やり直してください。";
\r
27 if (data.DoDate == null)
\r
30 form.showInputBox("日付をyyyyMMddかMMddで入力してください。空の場合は今日とします。");
\r
31 if (dateStr == null)
\r
33 message = "処理を中断します。";
\r
37 if (dateStr == string.Empty)
\r
39 dateStr = SettingDataAccessor.getObject.getToday().getDateString("yyyyMMdd");
\r
43 data.DoDate = new data.DateComponents(dateStr);
\r
47 message = "日付に不備がありました。お手数ですが最初からやり直してください。";
\r
52 if (data.TimeArea == null)
\r
54 string defaultTimeArea = SettingDataAccessor.getObject.getDefaultTimeArea();
\r
55 data.TimeArea = form.showInputBox("タイムエリアを選択してください(A-Z)",defaultTimeArea).ToUpper();
\r
56 if (data.TimeArea == null || data.TimeArea == string.Empty)
\r
58 message = "タイムエリアが選択されませんでした。お手数ですが最初からやり直してください。";
\r
62 if (data.Category == null)
\r
64 CategoryDataAccessor dataAccessor = CategoryDataAccessor.getObject;
\r
65 //string wkStr = form.showInputBox("カテゴリを記入してください。");
\r
66 List<CategoryData> allList = dataAccessor.getAllCategory();
\r
67 List<SimpleDataBean> dropdownList = new List<SimpleDataBean>();
\r
69 foreach (CategoryData categList in allList)
\r
71 dropdownList.Add(categList.dataForDropDown);
\r
73 string wkStr = form.showDropBoxInputBox(dropdownList,"カテゴリを入力してください。");
\r
77 message = "処理を中断します。";
\r
81 CategoryData categData = dataAccessor.getCategoryFromName(wkStr);
\r
82 if (categData != null)
\r
84 data.CategID = categData.CategId;
\r
93 data.CategID = addArgs.CategoryID;
\r
95 if (data.ForecastMin == 0)
\r
97 string wkFrcstMin = form.showInputBox("見積時間を分単位で入力してください。入力されない場合は0(予定外作業)とみなします。");
\r
98 if (wkFrcstMin == null || wkFrcstMin == string.Empty)
\r
103 if (wkFrcstMin.ToLower().EndsWith("h"))
\r
105 decimal forcastTime;
\r
106 string timestr = wkFrcstMin.Substring(0, wkFrcstMin.Length - 1);
\r
107 if (decimal.TryParse(timestr, out forcastTime))
\r
109 data.ForecastMin = decimal.ToInt32(forcastTime * 60);
\r
114 data.ForecastMin = Convert.ToInt32(wkFrcstMin);
\r
121 TaskDataAccessor taskAccessor = TaskDataAccessor.getObject;
\r
122 data.TaskID = taskAccessor.getMaxTaskID();
\r
123 data.SortID = taskAccessor.getMaxSortID();
\r
125 if (taskAccessor.insertTask(data))
\r
127 message = "タスク「" + data.Contents + "」を追加しました。";
\r
132 message = "処理途中でエラーが発生しました。";
\r
136 protected override string turnMessage()
\r
141 protected override string turnErrorMessage()
\r
143 return base.DefaultErrorMessage;
\r
146 protected override string turnSplitErrorMessage()
\r
148 return base.DefaultSplitErrorMessage;
\r