OSDN Git Service

構成変更のためファイルを置き直し。
[kybernetes/Kybernetes.git] / StandardCommand / command / CRUD / UpdateCommand.cs
diff --git a/StandardCommand/command/CRUD/UpdateCommand.cs b/StandardCommand/command/CRUD/UpdateCommand.cs
new file mode 100644 (file)
index 0000000..1703ca0
--- /dev/null
@@ -0,0 +1,151 @@
+using System;\r
+using System.Collections.Generic;\r
+using com.andoutomo.kybernetes.data.DAO;\r
+using com.andoutomo.kybernetes.data.accessor;\r
+\r
+namespace com.andoutomo.kybernetes.command\r
+{\r
+    class UpdateCommand:AbCommand\r
+    {\r
+        string message;\r
+        protected override bool execute()\r
+        {\r
+            UpdateCommandArg param = (UpdateCommandArg)argument;\r
+            TaskData data = param.PreparedTaskData;\r
+            if (data == null)\r
+            {\r
+                base.errorType = ErrorType.DataNotFound;\r
+                return false;\r
+            }\r
+            if (param.changeDialog)\r
+            {\r
+                #region 実施事項\r
+                data.Contents = form.showInputBox("実施事項を入力してください。",data.Contents);\r
+                if (data.Contents == null || data.Contents == string.Empty)\r
+                {\r
+                    message = "処理を中断しました。";\r
+                    return false;\r
+                }\r
+                #endregion\r
+                #region 実行日付\r
+                string dateStr = form.showInputBox("日付をyyyyMMddかMMddで入力してください。空の場合は今日とします。",data.DoDate.getDateString("yyyyMMdd"));\r
+                if (dateStr == null)\r
+                {\r
+                    message = "処理を中断しました。";\r
+                    return false;\r
+                }\r
+\r
+                if (dateStr == string.Empty)\r
+                {\r
+                    dateStr = DateTime.Today.ToString("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
+                #endregion\r
+                #region タイムエリア\r
+                data.TimeArea = form.showInputBox("タイムエリアを選択してください(A-Z)",data.TimeArea).ToUpper();\r
+                if (data.TimeArea == null || data.TimeArea == string.Empty)\r
+                {\r
+                    message = "処理を中断しました。";\r
+                    return false;\r
+                }\r
+                #endregion\r
+                #region カテゴリ\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
+\r
+                CategoryData selectedCategory = dataAccessor.getCategoryFromID(data.CategID);\r
+                string wkStr;\r
+                if (selectedCategory == null)\r
+                {\r
+                    wkStr = form.showDropBoxInputBox(dropdownList, "カテゴリを入力してください。");\r
+                }\r
+                else\r
+                {\r
+                    wkStr = form.showDropBoxInputBox(dropdownList, "カテゴリを入力してください。", selectedCategory.Category);\r
+                }\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 = 99;\r
+                }\r
+                #endregion\r
+\r
+                string wkFrcstMin = form.showInputBox("見積時間を入力してください。",data.ForecastMin.ToString());\r
+                if (wkFrcstMin == null || wkFrcstMin == string.Empty)\r
+                {\r
+                    message = "処理を中断しました。";\r
+                    return false;\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
+            TaskDataAccessor accessor = TaskDataAccessor.getObject;\r
+            \r
+            //成功した場合のメッセージをここで作っておく\r
+            message = "タスクNo." + data.SortID + "を更新しました。";\r
+            return accessor.updateTask(data);\r
+\r
+        }\r
+\r
+        protected override string turnMessage()\r
+        {\r
+            return message;\r
+        }\r
+\r
+        protected override string turnErrorMessage()\r
+        {\r
+            if (message == string.Empty)\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