--- /dev/null
+using System.Collections.Generic;\r
+using com.andoutomo.kybernetes.data.DAO;\r
+using com.andoutomo.kybernetes.data.accessor;\r
+using com.andoutomo.kybernetes.data;\r
+\r
+namespace com.andoutomo.kybernetes.command\r
+{\r
+ class UpdateCommandArg:CommandArg\r
+ {\r
+ TaskData _data;\r
+ \r
+\r
+ public TaskData PreparedTaskData\r
+ {\r
+ get { return _data; }\r
+ }\r
+\r
+ public bool changeDialog\r
+ {\r
+ get;\r
+ private set;\r
+ }\r
+\r
+ public void split(string arguments)\r
+ {\r
+ string[] spaceSplitData = arguments.Split(' ');\r
+ \r
+ string sortID = spaceSplitData[1];\r
+ List<string> otherParamList = new List<string>();\r
+ for (int i = 2; i < spaceSplitData.Length; i++)\r
+ {\r
+ otherParamList.Add(spaceSplitData[i]);\r
+ }\r
+ TaskDataAccessor taskAccessor = TaskDataAccessor.getObject;\r
+\r
+ int sortIDNum;\r
+ if (int.TryParse(sortID, out sortIDNum))\r
+ {\r
+ _data = taskAccessor.getTask(sortIDNum);\r
+\r
+ }\r
+ else\r
+ {\r
+ _data = null;\r
+ return;\r
+ }\r
+\r
+ changeDialog = true;\r
+ foreach (string options in otherParamList)\r
+ {\r
+ string[] optionData = options.Split(':');\r
+ switch (optionData[0].ToUpper())\r
+ {\r
+ case "@":\r
+ //時間帯\r
+ if (optionData[1].Length == 1)\r
+ {\r
+ _data.TimeArea = optionData[1];\r
+ changeDialog = false;\r
+ }\r
+ break;\r
+ case "D":\r
+ //日付\r
+ if (optionData[1].Length == 4 || optionData[1].Length == 8)\r
+ {\r
+ _data.DoDate = new DateComponent(optionData[1]);\r
+ changeDialog = false;\r
+ }\r
+ break;\r
+ case "C":\r
+ //カテゴリ\r
+ \r
+ CategoryData categData = CategoryDataAccessor.getObject.getCategoryFromName(optionData[1]);\r
+ if (categData != null)\r
+ {\r
+ _data.Category = optionData[1];\r
+ _data.CategID = categData.CategId;\r
+ \r
+ changeDialog = false;\r
+ }\r
+ break;\r
+ case "F":\r
+ decimal forcastTime;\r
+ string timestr;\r
+ if (optionData[1].ToLower().EndsWith("h"))\r
+ {\r
+ timestr = optionData[1].Substring(0, optionData[1].Length - 1);\r
+ if (decimal.TryParse(timestr, out forcastTime))\r
+ {\r
+ _data.ForecastMin = decimal.ToInt32(forcastTime * 60);\r
+ changeDialog = false;\r
+ }\r
+ }\r
+ else if (decimal.TryParse(optionData[1], out forcastTime))\r
+ {\r
+ _data.ForecastMin = decimal.ToInt32(forcastTime);\r
+ changeDialog = false;\r
+ }\r
+\r
+ break;\r
+ default:\r
+ //なにもない場合はコンテンツ(最初の記載を是とする)\r
+ if (!string.IsNullOrEmpty(_data.Contents))\r
+ {\r
+ _data.Contents = optionData[0];\r
+ changeDialog = false;\r
+ }\r
+ break;\r
+ }\r
+ }\r
+ }\r
+\r
+ public bool getSplitResult()\r
+ {\r
+ return _data != null;\r
+ }\r
+ }\r
+}\r