OSDN Git Service

adf93594d37ce33e1d28c2cdff7c88bc5d29686d
[kybernetes/Kybernetes.git] / base / data / accessor / TaskDataAccessor.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Data.SQLite;\r
4 using com.andoutomo.kybernetes.data.connection;\r
5 using com.andoutomo.kybernetes.data.DAO;\r
6 using System.Linq;\r
7 \r
8 \r
9 namespace com.andoutomo.kybernetes.data.accessor\r
10 {\r
11     public class TaskDataAccessor\r
12     {\r
13         private static TaskDataAccessor accessor;\r
14         private TaskDataAccessor()\r
15         {\r
16         }\r
17         /// <summary>\r
18         /// アクセッサを取得します。\r
19         /// </summary>\r
20         public static TaskDataAccessor getObject\r
21         {\r
22             get\r
23             {\r
24                 if (accessor == null)\r
25                 {\r
26                     accessor = new TaskDataAccessor();\r
27                 }\r
28                 return accessor;\r
29             }\r
30         }\r
31         /// <summary>\r
32         /// 今日のタスクリストを取得します。「今日」はシステムテーブルから取得します。\r
33         /// </summary>\r
34         /// <returns></returns>\r
35         public List<TaskData> getToDayTaskList()\r
36         {\r
37             return getTaskList(SqlDictionary.getTodayList,new List<object>());\r
38         }\r
39 \r
40         /// <summary>\r
41         /// 日付ごとのタスクリストを取得します。\r
42         /// </summary>\r
43         /// <param name="date"></param>\r
44         /// <returns></returns>\r
45         public List<TaskData> getDailyTaskList(DateComponent date)\r
46         {\r
47             List<object> arg = new List<object>();\r
48             arg.Add(date.getDateString("yyyy-MM-dd"));\r
49 \r
50             return getTaskList(SqlDictionary.getDailyList, arg);\r
51         }\r
52         /// <summary>\r
53         /// 現在実施中のタスクリストを抽出します。日付はシステムテーブルから、実施中の判断は\r
54         /// StartしていてEndしていないもの、とします。\r
55         /// </summary>\r
56         /// <returns></returns>\r
57         public List<TaskData> getPwdTaskList()\r
58         {\r
59             return getTaskList(SqlDictionary.getPwdList, new List<object>());\r
60         }\r
61 \r
62 \r
63         /// <summary>\r
64         /// IDを元に単体タスクを抽出します。\r
65         /// </summary>\r
66         /// <param name="sortId"></param>\r
67         /// <returns></returns>\r
68         public TaskData getTask(int sortId)\r
69         {\r
70             List<object> args = new List<object>();\r
71             args.Add(sortId);\r
72             TaskData data = null;\r
73             TaskDBConnection.Connection.selectData(SqlDictionary.getOneTask, args,\r
74                 (SQLiteDataReader reader) =>\r
75                 {\r
76                     if (reader.HasRows)\r
77                     {\r
78                         data = new TaskData();\r
79                         reader.Read();\r
80                         data.TaskID = Convert.ToInt32(reader["TASKID"].ToString());\r
81                         data.SortID = Convert.ToInt32(reader["SORTID"].ToString());\r
82                         data.DoDate = new DateComponent(reader["DODATE"].ToString(), '/');\r
83                         data.TimeArea = reader["TIMEAREA"].ToString();\r
84                         data.CategID = Convert.ToInt32(reader["CATEGID"].ToString());\r
85                         data.Category = reader["CATEGORY"].ToString();\r
86                         data.Contents = reader["CONTENTS"].ToString();\r
87                         data.ForecastMin = Convert.ToInt32(reader["FORCASTMIN"].ToString());\r
88                         data.StartTime = new TimeComponent(reader["STARTTIME"].ToString());\r
89                         data.EndTime = new TimeComponent(reader["ENDTIME"].ToString());\r
90                         data.IsRepeat = Convert.ToInt32(reader["REPEATFLG"].ToString());\r
91                         data.Project = reader["PROJECT"].ToString();\r
92                         data.Tags = reader["TAGS"].ToString();\r
93                     }\r
94                 });\r
95             return data;\r
96         }\r
97 \r
98         /// <summary>\r
99         /// 内部メソッド。タスクリストを取得します。\r
100         /// </summary>\r
101         /// <param name="sql"></param>\r
102         /// <param name="args"></param>\r
103         /// <returns></returns>\r
104         private List<TaskData> getTaskList(string sql,List<object> args)\r
105         {\r
106             List<TaskData> resultList = new List<TaskData>();\r
107             TaskDBConnection.Connection.selectData(sql, args,\r
108             (SQLiteDataReader reader) =>\r
109             {\r
110                 while (reader.Read())\r
111                 {\r
112                     TaskData data = new TaskData();\r
113                     data.TaskID = Convert.ToInt32(reader["TASKID"].ToString());\r
114                     data.SortID = Convert.ToInt32(reader["SORTID"].ToString());\r
115                     data.DoDate = new DateComponent(reader["DODATE"].ToString(),'/');\r
116                     data.TimeArea = reader["TIMEAREA"].ToString();\r
117                     data.Category = reader["CATEGORY"].ToString();\r
118                     data.Contents = reader["CONTENTS"].ToString();\r
119                     data.ForecastMin = Convert.ToInt32(reader["FORCASTMIN"].ToString());\r
120                     data.StartTime = new TimeComponent(reader["STARTTIME"].ToString());\r
121                     data.EndTime = new TimeComponent(reader["ENDTIME"].ToString());\r
122                     data.IsRepeat = Convert.ToInt32(reader["REPEATFLG"].ToString());\r
123                     data.Project = reader["PROJECT"].ToString();\r
124                     data.Tags = reader["TAGS"].ToString();\r
125                     data.Comment = reader["COMMENT"].ToString();\r
126                     if (data.Category != string.Empty)\r
127                     {\r
128                         //data.BgColor = Convert.ToInt32(reader["BGCOLOR"].ToString());\r
129                         data.FrColor = Convert.ToInt32(reader["FRCOLOR"].ToString());\r
130                     }\r
131                     resultList.Add(data);\r
132                 }\r
133             });\r
134             return resultList;\r
135         }\r
136         /// <summary>\r
137         /// タスクの最大採番を行います。<br/>\r
138         /// その時点での最大の採番は、(タスクIDの最大値+1)×10とします。\r
139         /// (1の位に1~9が入っているとしても、次のタスクに採番されるのは10多いから重ならない)\r
140         /// </summary>\r
141         /// <returns></returns>\r
142         public int getMaxTaskID()\r
143         {\r
144             int maxID =0;\r
145             TaskDBConnection.Connection.selectData(SqlDictionary.getMaxIDofTask, \r
146                 (SQLiteDataReader reader) =>\r
147                 {\r
148 \r
149                     if (reader.HasRows)\r
150                     {\r
151                         reader.Read();\r
152                         string nextID = reader["NEXTID"].ToString();\r
153                         if (string.IsNullOrEmpty(nextID))\r
154                         {\r
155                             maxID = 1;\r
156                         }\r
157                         else\r
158                         {\r
159                             maxID = Convert.ToInt32(nextID);\r
160                         }\r
161                     }\r
162                 });\r
163             return maxID;\r
164         }\r
165         /// <summary>\r
166         /// ソート番号の最大を算出します。\r
167         /// このメソッドは、renum実行時に過去分のタスクはマイナスになっていることを前提とします。\r
168         /// </summary>\r
169         /// <returns></returns>\r
170         public int getMaxSortID()\r
171         {\r
172             int maxSortID = 0;\r
173             TaskDBConnection.Connection.selectData(SqlDictionary.getMaxSortID, \r
174                 (SQLiteDataReader reader) => \r
175                 {\r
176                     if (reader.HasRows)\r
177                     {\r
178                         reader.Read();\r
179                         string nextSortID = reader["NEXTSORTID"].ToString();\r
180                         if (string.IsNullOrEmpty(nextSortID))\r
181                         {\r
182                             maxSortID = 10;\r
183                         }\r
184                         else\r
185                         {\r
186                             maxSortID = Convert.ToInt32(nextSortID);\r
187                         }\r
188                     }\r
189  \r
190                 });\r
191             return maxSortID;\r
192 \r
193         }\r
194 \r
195         /// <summary>\r
196         /// 次タスクのスタートを決めるため、当日の最大End時間を求めます。\r
197         /// 当日にEnd時間がなければNullを返却します。\r
198         /// </summary>\r
199         /// <param name="date"></param>\r
200         /// <returns></returns>\r
201         public TimeComponent getNextStartTime(DateComponent date)\r
202         {\r
203             if (date == null)\r
204             {\r
205                 return null;\r
206             }\r
207             List<object> arg = new List<object>();\r
208             arg.Add(date.getDateString("yyyy-MM-dd"));\r
209             TimeComponent endDate = null;\r
210 \r
211             TaskDBConnection.Connection.selectData(SqlDictionary.getNextStartTime, arg, \r
212                 (SQLiteDataReader reader) => {\r
213                     if (reader.HasRows)\r
214                     {\r
215                         reader.Read();\r
216                         endDate = new TimeComponent(reader["MAXENDTIME"].ToString());\r
217                     }\r
218                 });\r
219             return endDate;\r
220         }\r
221 \r
222         /// <summary>\r
223         /// タスクを追加します。\r
224         /// </summary>\r
225         /// <param name="data"></param>\r
226         /// <returns></returns>\r
227         public bool insertTask(TaskData data)\r
228         {\r
229             List<object> parameters = new List<object>();\r
230 \r
231             parameters.Add(data.TaskID);\r
232             parameters.Add(data.SortID);\r
233             parameters.Add(data.DoDate.getDateString("yyyy-MM-dd"));\r
234             parameters.Add(data.TimeArea.ToUpper());\r
235             parameters.Add(data.CategID);\r
236             parameters.Add(data.Contents);\r
237             parameters.Add(data.ForecastMin);\r
238             parameters.Add(data.Project);\r
239             parameters.Add(data.Tags);\r
240 \r
241             return TaskDBConnection.Connection.updateData(SqlDictionary.insertTask, parameters);\r
242 \r
243         }\r
244         /// <summary>\r
245         /// タスクを更新します。\r
246         /// </summary>\r
247         /// <param name="data"></param>\r
248         /// <returns></returns>\r
249         public bool updateTask(TaskData data)\r
250         {\r
251             List<object> parameters = new List<object>();\r
252             parameters.Add(data.DoDate.getDateString("yyyy-MM-dd"));\r
253             parameters.Add(data.TimeArea.ToUpper());\r
254             parameters.Add(data.CategID);\r
255             parameters.Add(data.Contents);\r
256             parameters.Add(data.ForecastMin);\r
257             parameters.Add(data.Project);\r
258             parameters.Add(data.Tags);\r
259             parameters.Add(data.SortID);\r
260 \r
261             return TaskDBConnection.Connection.updateData(SqlDictionary.updateTask, parameters);\r
262         }\r
263 \r
264         /// <summary>\r
265         /// タスクを開始します。\r
266         /// </summary>\r
267         /// <param name="id">ソートID</param>\r
268         /// <param name="startTime"></param>\r
269         /// <returns></returns>\r
270         public bool startTask(int id ,TimeComponent startTime)\r
271         {\r
272             List<object> parameters = new List<object>();\r
273             parameters.Add(startTime.ToString());\r
274             parameters.Add(id);\r
275 \r
276             return TaskDBConnection.Connection.updateData(SqlDictionary.startTask, parameters);\r
277         }\r
278 \r
279         /// <summary>\r
280         /// タスクを終了します。\r
281         /// </summary>\r
282         /// <param name="id">ソートID</param>\r
283         /// <param name="endTime"></param>\r
284         /// <returns></returns>\r
285         public bool endTask(int id, TimeComponent endTime)\r
286         {\r
287             List<object> parameters = new List<object>();\r
288             parameters.Add(endTime.ToString());\r
289             parameters.Add(id);\r
290 \r
291             return TaskDBConnection.Connection.updateData(SqlDictionary.endTask, parameters);\r
292         }\r
293 \r
294         /// <summary>\r
295         /// タスクがリピート対象であるかどうかを照合します。\r
296         /// </summary>\r
297         /// <param name="id"></param>\r
298         /// <returns></returns>\r
299         public bool isRepeatTask(int id)\r
300         {\r
301             bool retval=false;\r
302             List<object> parameters = new List<object>();\r
303             parameters.Add(id);\r
304             TaskDBConnection.Connection.selectData(SqlDictionary.isRepeatTask, parameters,\r
305                 (SQLiteDataReader reader) =>\r
306                 {\r
307                     if (reader.HasRows)\r
308                     {\r
309                         reader.Read();\r
310                         int dbVal = Convert.ToInt32(reader["REPEATFLG"].ToString());\r
311                         if (dbVal > 0)\r
312                         {\r
313                             retval = true;\r
314 \r
315                         }\r
316                         else\r
317                         {\r
318                             retval = false;\r
319                         }\r
320                     }\r
321                 });\r
322             return retval;\r
323         }\r
324         /// <summary>\r
325         /// 繰り返しの設定を行います。\r
326         /// </summary>\r
327         /// <param name="id"></param>\r
328         /// <param name="isRepeat"></param>\r
329         /// <returns></returns>\r
330         private bool setRepeatTask(int id, bool isRepeat)\r
331         {\r
332             List<object> parameters = new List<object>();\r
333 \r
334             int settingData = (isRepeat ? 1 : 0);\r
335 \r
336             parameters.Add(settingData);\r
337             parameters.Add(id);\r
338 \r
339             return TaskDBConnection.Connection.updateData(SqlDictionary.setRepeatTask, parameters);\r
340 \r
341         }\r
342 \r
343         /// <summary>\r
344         /// 繰り返しの設定を行います(日付入り)\r
345         /// </summary>\r
346         /// <param name="id"></param>\r
347         /// <param name="dayAfter"></param>\r
348         /// <returns></returns>\r
349         public bool setRepeatTask(int id, int dayAfter)\r
350         {\r
351             List<object> parameters = new List<object>();\r
352 \r
353             int settingData = dayAfter;\r
354 \r
355             parameters.Add(settingData);\r
356             parameters.Add(id);\r
357 \r
358             return TaskDBConnection.Connection.updateData(SqlDictionary.setRepeatTask, parameters);\r
359 \r
360         }\r
361 \r
362         /// <summary>\r
363         /// タスクを削除します。\r
364         /// </summary>\r
365         /// <param name="id"></param>\r
366         /// <returns></returns>\r
367         public bool deleteTask(int from,int to)\r
368         {\r
369             List<object> parameters = new List<object>();\r
370             parameters.Add(from);\r
371             parameters.Add(to);\r
372 \r
373             return TaskDBConnection.Connection.updateData(SqlDictionary.deleteTasks, parameters);\r
374         }\r
375 \r
376         /// <summary>\r
377         /// 削除する前に何件あるか確認します。\r
378         /// </summary>\r
379         /// <param name="from"></param>\r
380         /// <param name="to"></param>\r
381         /// <returns></returns>\r
382         public int countDeleteTargetTask(int from, int to)\r
383         {\r
384             List<object> parameters = new List<object>();\r
385             parameters.Add(from);\r
386             parameters.Add(to);\r
387 \r
388             int retVal = 0;\r
389 \r
390             TaskDBConnection.Connection.selectData(SqlDictionary.countBeforeDelete, parameters,\r
391                 (SQLiteDataReader reader) =>\r
392                 {\r
393                     if (reader.HasRows)\r
394                     {\r
395                         reader.Read();\r
396                         retVal = Convert.ToInt32(reader["COUNT"].ToString());\r
397                     }\r
398                 });\r
399             return retVal;\r
400         }\r
401 \r
402         /// <summary>\r
403         /// 全タスクを表示します。\r
404         /// </summary>\r
405         /// <returns></returns>\r
406         public List<TaskData> getAllTaskList()\r
407         {\r
408             return getTaskList(SqlDictionary.getAllList, new List<object>());\r
409         }\r
410 \r
411         /// <summary>\r
412         /// 終了していないタスクをすべて表示します。\r
413         /// </summary>\r
414         /// <returns></returns>\r
415         public List<TaskData> getRemainTaskList()\r
416         {\r
417             return getTaskList(SqlDictionary.getRemainList, new List<object>());\r
418         }\r
419 \r
420         /// <summary>\r
421         /// 今後のタスクをすべて表示します。\r
422         /// </summary>\r
423         /// <returns></returns>\r
424         public List<TaskData> getGoingTaskList()\r
425         {\r
426             return getTaskList(SqlDictionary.getGoingList, new List<object>());\r
427         }\r
428 \r
429         /// <summary>\r
430         /// タスクの検索を行います。\r
431         /// </summary>\r
432         /// <param name="searchWord"></param>\r
433         /// <returns></returns>\r
434         public List<TaskData> findTask(string searchWord)\r
435         {\r
436             string wkSearchWord = "%" + searchWord + "%";\r
437 \r
438             List<object> args = new List<object> { wkSearchWord ,wkSearchWord,wkSearchWord,wkSearchWord};\r
439             return getTaskList(SqlDictionary.searchTasks, args);\r
440         }\r
441 \r
442 \r
443         /// <summary>\r
444         /// ソート番号の再設定を行います。\r
445         /// </summary>\r
446         /// <param name="data"></param>\r
447         /// <returns></returns>\r
448         public bool renumAllTasks(List<TaskData> data)\r
449         {\r
450             List<MultiSQLRunnningBean> sqlList = new List<MultiSQLRunnningBean>();\r
451 \r
452             for (int i = 0; i < data.Count; i++)\r
453             {\r
454                 int newNumber = (i + 1) * 10;\r
455                 string sql = SqlDictionary.changeTaskNo;\r
456                 List<object> paramList = new List<object>();\r
457                 paramList.Add(newNumber);\r
458                 paramList.Add(data[i].TaskID);\r
459 \r
460                 //連続実行するSQLを設定\r
461                 MultiSQLRunnningBean bean = new MultiSQLRunnningBean(sql, paramList);\r
462                 sqlList.Add(bean);\r
463 \r
464             }\r
465             //最後に、過去分タスクをマイナスに変換する(これをやらないと次に振り出されるIDがどんどん増えていく)\r
466             MultiSQLRunnningBean lastBean = new MultiSQLRunnningBean(SqlDictionary.suppressCompleteTask,new List<object>());\r
467             sqlList.Add(lastBean);\r
468             return TaskDBConnection.Connection.updateData(sqlList);\r
469         }\r
470 \r
471         /// <summary>\r
472         /// タスクを延期します。日をまたぎます。\r
473         /// </summary>\r
474         /// <param name="id"></param>\r
475         /// <param name="nextDay"></param>\r
476         /// <returns></returns>\r
477         public bool delayTask(int id, DateComponent nextDay)\r
478         {\r
479             List<object> paramList = new List<object>();\r
480             paramList.Add(nextDay.getDateString("yyyy-MM-dd"));\r
481             paramList.Add(id);\r
482 \r
483             return TaskDBConnection.Connection.updateData(SqlDictionary.delayTask, paramList);\r
484         }\r
485 \r
486         /// <summary>\r
487         /// ソート番号を変更します。\r
488         /// </summary>\r
489         /// <param name="targetTaskID"></param>\r
490         /// <param name="after"></param>\r
491         /// <returns></returns>\r
492         public bool changeNumber(int targetTaskID, int after)\r
493         {\r
494             List<object> paramList = new List<object>();\r
495             paramList.Add(after);\r
496             paramList.Add(targetTaskID);\r
497 \r
498             return TaskDBConnection.Connection.updateData(SqlDictionary.changeTaskNo, paramList);\r
499         }\r
500         /// <summary>\r
501         /// タイムエリアを変更します。\r
502         /// </summary>\r
503         /// <param name="targetSortID"></param>\r
504         /// <param name="nextArea"></param>\r
505         /// <returns></returns>\r
506         public bool changeArea(int targetSortID, string nextArea)\r
507         {\r
508             List<object> paramList = new List<object>();\r
509             paramList.Add(nextArea);\r
510             paramList.Add(targetSortID);\r
511 \r
512             return TaskDBConnection.Connection.updateData(SqlDictionary.changeAreaOfTask, paramList);\r
513         }\r
514         /// <summary>\r
515         /// 時間をクリアし、タスクを初期状態に戻します。\r
516         /// </summary>\r
517         /// <param name="targetSortID"></param>\r
518         /// <returns></returns>\r
519         public bool clearStartEnd(int targetSortID)\r
520         {\r
521             List<object> paramList = new List<object>();\r
522             paramList.Add(targetSortID);\r
523 \r
524             return TaskDBConnection.Connection.updateData(SqlDictionary.clearTime, paramList);\r
525         }\r
526 \r
527         /// <summary>\r
528         /// タスクIDからソート番号を逆引きします。主にコメント用です。\r
529         /// </summary>\r
530         /// <param name="taskID"></param>\r
531         /// <returns></returns>\r
532         public int getSortIDFromTaskID(int taskID)\r
533         {\r
534             List<object> paramList = new List<object>(){taskID};\r
535             int retVal=0;\r
536             TaskDBConnection.Connection.selectData(SqlDictionary.getSortIDFromTaskID, paramList,\r
537                 (SQLiteDataReader reader) =>\r
538                 {\r
539                     if (reader.HasRows)\r
540                     {\r
541                         reader.Read();\r
542                         retVal = Convert.ToInt32(reader["SORTID"].ToString());\r
543                     }\r
544                 });\r
545             return retVal;\r
546         }\r
547         /// <summary>\r
548         /// 対象タスクのプロジェクトを更新します。\r
549         /// </summary>\r
550         /// <param name="targetSortID"></param>\r
551         /// <param name="projectName"></param>\r
552         /// <returns></returns>\r
553         public bool updateProjectofTask(int targetSortID, string projectName)\r
554         {\r
555             List<object> paramList = new List<object>() { projectName, targetSortID };\r
556             return TaskDBConnection.Connection.updateData(SqlDictionary.updateProject, paramList);\r
557         }\r
558         /// <summary>\r
559         /// 現在登録されているプロジェクトを重複なしで取得します。\r
560         /// </summary>\r
561         /// <returns></returns>\r
562         public List<SimpleDataBean> getProjectList()\r
563         {\r
564             List<SimpleDataBean> retList = new List<SimpleDataBean>();\r
565             TaskDBConnection.Connection.selectData(SqlDictionary.findProject, \r
566                 (SQLiteDataReader reader) =>\r
567             {\r
568                 while (reader.Read())\r
569                 {\r
570                     string prjName = reader["PROJECT"].ToString();\r
571                     if (!string.IsNullOrEmpty(prjName))\r
572                     {\r
573                         SimpleDataBean bean = new SimpleDataBean(prjName, prjName);\r
574                         retList.Add(bean);\r
575                     }\r
576                 }\r
577             });\r
578             return retList;\r
579         }\r
580         /// <summary>\r
581         /// タスクにタグを付与します。\r
582         /// </summary>\r
583         /// <param name="targetSortID"></param>\r
584         /// <param name="tag"></param>\r
585         /// <returns></returns>\r
586         public bool updateTagofTask(int targetSortID, string tag)\r
587         {\r
588             string tagLikeStr = '%' + tag + '%';\r
589             List<object> paramList = new List<object>() { tag, tagLikeStr, tag, targetSortID };\r
590             return TaskDBConnection.Connection.updateData(SqlDictionary.addTag, paramList);\r
591         }\r
592         /// <summary>\r
593         /// タグ一覧を取得します。取得時点でC#側でカンマ区切りを配慮して分解します。\r
594         /// </summary>\r
595         /// <returns></returns>\r
596         public List<SimpleDataBean> getTagList()\r
597         {\r
598             List<string> wkList = new List<string>();\r
599             TaskDBConnection.Connection.selectData(SqlDictionary.findTags,\r
600                 (SQLiteDataReader reader) =>\r
601                 {\r
602                     while (reader.Read())\r
603                     {\r
604                         string tagName = reader["TAGS"].ToString();\r
605                         foreach (string eachTag in tagName.Split(','))\r
606                         {\r
607                             wkList.Add(eachTag);\r
608                         }\r
609                     }\r
610                 });\r
611 \r
612             //重複を排除\r
613             string[] wkArray = wkList.Distinct().ToArray();\r
614 \r
615             List<SimpleDataBean> retList = new List<SimpleDataBean>();\r
616             foreach (string tag in wkArray)\r
617             {\r
618                 retList.Add(new SimpleDataBean(tag, tag));\r
619             }\r
620             return retList;\r
621             \r
622         }\r
623 \r
624         /// <summary>\r
625         /// タグを全クリアします。\r
626         /// </summary>\r
627         /// <param name="targetSortID"></param>\r
628         /// <returns></returns>\r
629         public bool clearTagOfTask(int targetSortID)\r
630         {\r
631             List<object> paramList = new List<object>() { targetSortID };\r
632             return TaskDBConnection.Connection.updateData(SqlDictionary.clearTags, paramList);\r
633         }\r
634         /// <summary>\r
635         /// SQLiteの最適化コマンドを実行します。\r
636         /// </summary>\r
637         /// <returns></returns>\r
638         public bool rebuildDB()\r
639         {\r
640             return TaskDBConnection.Connection.maintainanceData();\r
641         }\r
642     }\r
643 }\r