--- /dev/null
+using System;\r
+using com.andoutomo.kybernetes.data.accessor;\r
+using com.andoutomo.kybernetes.data.DAO;\r
+using System.Collections.Generic;\r
+using System.Windows.Forms;\r
+using com.andoutomo.kybernetes.data;\r
+\r
+namespace com.andoutomo.kybernetes.command\r
+{\r
+ class AddCommand:AbCommand\r
+ {\r
+\r
+ private string message;\r
+ protected override bool execute()\r
+ {\r
+ AddCommandArgs addArgs = (AddCommandArgs)base.argument;\r
+ TaskData data = addArgs.PreparedTaskData;\r
+\r
+ if (data.Contents == null)\r
+ {\r
+ data.Contents = form.showInputBox("実施事項を入力してください。",ImeMode.Hiragana);\r
+ if (data.Contents == null || data.Contents == string.Empty)\r
+ {\r
+ message = "処理を中断しました。";\r
+ return false;\r
+ }\r
+ }\r
+ if (data.DoDate == null)\r
+ {\r
+ string dateStr =\r
+ form.showInputBox("日付をyyyyMMddかMMddで入力してください。空の場合は今日とします。");\r
+ if (dateStr == null)\r
+ {\r
+ message = "処理を中断しました。";\r
+ return false;\r
+ }\r
+\r
+ if (dateStr == string.Empty)\r
+ {\r
+ dateStr = SettingDataAccessor.getObject.getToday().getDateString("yyyyMMdd");\r
+ }\r
+ try\r
+ {\r
+ data.DoDate = new data.DateComponent(dateStr);\r
+ }\r
+ catch (Exception e)\r
+ {\r
+ message = "日付に不備がありました。お手数ですが最初からやり直してください。";\r
+ return false;\r
+ }\r
+ \r
+ }\r
+ if (data.TimeArea == null)\r
+ {\r
+ TimeComponent now = TimeComponent.justNow();\r
+ string defaultTimeArea = TimeAreaDataAccessor.getObject.getDefaultTimeArea(now);\r
+\r
+ string wkTimeArea = form.showInputBox("タイムエリアを選択してください(A-Z)",defaultTimeArea);\r
+ \r
+ if (string.IsNullOrEmpty(wkTimeArea))\r
+ {\r
+ message = "処理を中断しました。";\r
+ return false;\r
+ }\r
+ data.TimeArea = wkTimeArea.ToUpper();\r
+ }\r
+ if (data.Category == null)\r
+ {\r
+ CategoryDataAccessor dataAccessor = CategoryDataAccessor.getObject;\r
+ //string wkStr = form.showInputBox("カテゴリを記入してください。");\r
+ List<CategoryData> allList = dataAccessor.getAllCategory();\r
+ List<SimpleDataBean> dropdownList = new List<SimpleDataBean>();\r
+ \r
+ foreach (CategoryData categList in allList)\r
+ {\r
+ dropdownList.Add(categList.dataForDropDown);\r
+ }\r
+ string wkStr = form.showDropBoxInputBox(dropdownList,"カテゴリを入力してください。");\r
+\r
+ if (wkStr == null)\r
+ {\r
+ message = "処理を中断しました。";\r
+ return false;\r
+ }\r
+\r
+ CategoryData categData = dataAccessor.getCategoryFromName(wkStr);\r
+ if (categData != null)\r
+ {\r
+ data.CategID = categData.CategId;\r
+ }\r
+ else\r
+ {\r
+ data.CategID = 0;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ data.CategID = addArgs.CategoryID;\r
+ }\r
+ if (data.ForecastMin == 0)\r
+ {\r
+ string wkFrcstMin = form.showInputBox("見積時間を分単位で入力してください。","0");\r
+ if (wkFrcstMin == null)\r
+ {\r
+ message = "処理を中断しました。";\r
+ return false;\r
+ }\r
+ if (wkFrcstMin == string.Empty)\r
+ {\r
+ wkFrcstMin = "0";\r
+ \r
+ }\r
+ if (wkFrcstMin.ToLower().EndsWith("h"))\r
+ {\r
+ decimal forcastTime;\r
+ string timestr = wkFrcstMin.Substring(0, wkFrcstMin.Length - 1);\r
+ if (decimal.TryParse(timestr, out forcastTime))\r
+ {\r
+ data.ForecastMin = decimal.ToInt32(forcastTime * 60);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ data.ForecastMin = Convert.ToInt32(wkFrcstMin); \r
+ }\r
+\r
+\r
+ }\r
+\r
+ //DBへの追加\r
+ TaskDataAccessor taskAccessor = TaskDataAccessor.getObject;\r
+ data.TaskID = taskAccessor.getMaxTaskID();\r
+ if (data.SortID == 0)\r
+ {\r
+ data.SortID = taskAccessor.getMaxSortID();\r
+ }\r
+ if (taskAccessor.insertTask(data))\r
+ {\r
+ message = "タスクNo." + data.SortID + "「" + data.Contents + "」を追加しました。";\r
+ return true;\r
+ }\r
+ else\r
+ {\r
+ message = "処理途中でエラーが発生しました。";\r
+ return false;\r
+ }\r
+ }\r
+ protected override string turnMessage()\r
+ {\r
+ return message;\r
+ }\r
+\r
+ protected override string turnErrorMessage()\r
+ {\r
+ if (string.IsNullOrEmpty(message))\r
+ {\r
+ return base.DefaultErrorMessage;\r
+ }\r
+ else\r
+ {\r
+ return message;\r
+ }\r
+ }\r
+\r
+ protected override string turnSplitErrorMessage()\r
+ {\r
+ return base.DefaultSplitErrorMessage;\r
+ }\r
+ }\r
+}\r