OSDN Git Service

構成変更のためファイルを置き直し。
[kybernetes/Kybernetes.git] / StandardCommand / command / CRUD / AddCommand.cs
diff --git a/StandardCommand/command/CRUD/AddCommand.cs b/StandardCommand/command/CRUD/AddCommand.cs
new file mode 100644 (file)
index 0000000..15a174b
--- /dev/null
@@ -0,0 +1,170 @@
+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