OSDN Git Service

構成変更のためファイルを置き直し。
[kybernetes/Kybernetes.git] / StandardCommand / command / CRUD / AddCommandArg.cs
1 using com.andoutomo.kybernetes.data;\r
2 using com.andoutomo.kybernetes.data.accessor;\r
3 using com.andoutomo.kybernetes.data.DAO;\r
4 \r
5 namespace com.andoutomo.kybernetes.command\r
6 {\r
7     class AddCommandArgs:CommandArg\r
8     {\r
9         private TaskData _data;\r
10         private int _categoryID;\r
11 \r
12         public TaskData PreparedTaskData\r
13         {\r
14             get { return _data; }\r
15         }\r
16         public int CategoryID\r
17         {\r
18             get { return _categoryID; }\r
19         }\r
20 \r
21         public void split(string arguments)\r
22         {\r
23             _data = new TaskData();\r
24             string[] spaceSplitData = arguments.Split(' ');\r
25             string command = spaceSplitData[0].ToLower();\r
26             foreach (string options in spaceSplitData)\r
27             {\r
28                 if (string.Equals(command,options.ToLower())) { continue; }\r
29                 string[] optionData = options.Split(':');\r
30                 switch (optionData[0].ToUpper())\r
31                 {\r
32                     case "@":\r
33                         //時間帯\r
34                         if (optionData[1].Length == 1)\r
35                         {\r
36                             _data.TimeArea = optionData[1];\r
37                         }\r
38                         break;\r
39                     case "D":\r
40                         //日付\r
41                         if (optionData[1].Length == 4 || optionData[1].Length == 8)\r
42                         {\r
43                             _data.DoDate = new DateComponent(optionData[1]);\r
44                         }\r
45                         break;\r
46                     case "C":\r
47                         //カテゴリ\r
48                         CategoryDataAccessor dataAccessor = CategoryDataAccessor.getObject;\r
49                         CategoryData categData = dataAccessor.getCategoryFromName(optionData[1]);\r
50                         if (categData != null)\r
51                         {\r
52                             _data.Category = optionData[1];\r
53                             _categoryID = categData.CategId;\r
54                         }\r
55                         break;\r
56                     case "F":\r
57                         decimal forcastTime;\r
58                         string timestr;\r
59                         if (optionData[1].ToLower().EndsWith("h"))\r
60                         {\r
61                             timestr = optionData[1].Substring(0, optionData[1].Length - 1);\r
62                             if (decimal.TryParse(timestr, out forcastTime))\r
63                             {\r
64                                 _data.ForecastMin = decimal.ToInt32(forcastTime *  60);\r
65                             }\r
66                         }\r
67                         else if (decimal.TryParse(optionData[1], out forcastTime))\r
68                         {\r
69                             _data.ForecastMin = decimal.ToInt32(forcastTime);\r
70                         }\r
71 \r
72                         break;\r
73                     case "N":\r
74                         int outInt;\r
75 \r
76                         if (int.TryParse(optionData[1], out outInt))\r
77                         {\r
78                             _data.SortID = outInt;\r
79                         }\r
80                         else\r
81                         {\r
82                             _data.SortID = 0;\r
83                         }\r
84                         break;\r
85                     default:\r
86                         //なにもない場合はコンテンツ(最初の記載を是とする)\r
87                         if (_data.Contents == null || _data.Contents == string.Empty)\r
88                         {\r
89                             _data.Contents = optionData[0];\r
90                             //コロンを含む場合もあるので一応確認\r
91                             for (int i = 1; i < optionData.Length; i++)\r
92                             {\r
93                                 _data.Contents += ":" + optionData[i];\r
94                             }\r
95                         }\r
96                         break;\r
97                 }\r
98             }\r
99         }\r
100 \r
101         public bool getSplitResult()\r
102         {\r
103             return true;\r
104         }\r
105     }\r
106 }\r