OSDN Git Service

パネルの順序調整及び番号欄の表示調整
[kybernetes/Kybernetes.git] / KyberNetes / data / accessor / CommentDataAccessor.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Linq;\r
4 using System.Text;\r
5 using com.andoutomo.kybernetes.data.DAO;\r
6 using com.andoutomo.kybernetes.data.connection;\r
7 using System.Data.SQLite;\r
8 \r
9 namespace com.andoutomo.kybernetes.data.accessor\r
10 {\r
11     class CommentDataAccessor\r
12     {\r
13         #region singleton\r
14         private static CommentDataAccessor accessor;\r
15         private CommentDataAccessor()\r
16         {\r
17         }\r
18         internal static CommentDataAccessor getObject\r
19         {\r
20             get\r
21             {\r
22                 if (accessor == null)\r
23                 {\r
24                     accessor = new CommentDataAccessor();\r
25                 }\r
26                 return accessor;\r
27             }\r
28         }\r
29         #endregion\r
30 \r
31         private List<CommentData> getCommentInner(string sql,List<object> paramList)\r
32         {\r
33             List<CommentData> result = new List<CommentData>();\r
34             \r
35             \r
36 \r
37             TaskDBConnection.Connection.selectData(sql, paramList,\r
38                 (SQLiteDataReader reader) =>\r
39                 {\r
40                     while (reader.Read())\r
41                     {\r
42                         CommentData data = new CommentData();\r
43                         data.CommentID = Convert.ToInt32(reader["ID"].ToString());\r
44                         if (string.IsNullOrEmpty(reader["TASKID"].ToString()))\r
45                         {\r
46                             data.TaskID = 0; \r
47                         }\r
48                         else\r
49                         {\r
50                             data.TaskID = Convert.ToInt32(reader["TASKID"].ToString());\r
51                         }\r
52                         \r
53                         data.CreateDate = Convert.ToDateTime(reader["CREATETIME"].ToString());\r
54                         data.Comment = reader["COMMENT"].ToString();\r
55 \r
56                         result.Add(data);\r
57                     }\r
58                 });\r
59             return result;\r
60         }\r
61 \r
62         /// <summary>\r
63         /// 対象IDに紐づくコメントを抽出する\r
64         /// </summary>\r
65         /// <param name="id"></param>\r
66         /// <returns></returns>\r
67         internal List<CommentData> getComment(int id)\r
68         {\r
69             List<object> paramList = new List<object>() { id };\r
70             return getCommentInner(SqlDictionary.getComments,paramList);\r
71         }\r
72         /// <summary>\r
73         /// メタコメントを抽出する.\r
74         /// システム日付と一致するもののみ抽出する。\r
75         /// </summary>\r
76         /// <returns></returns>\r
77         internal List<CommentData> getComment()\r
78         {\r
79             return getCommentInner(SqlDictionary.getMetaComment, new List<object>());\r
80         }\r
81 \r
82         /// <summary>\r
83         /// コメントを入力する\r
84         /// </summary>\r
85         /// <param name="data"></param>\r
86         /// <returns></returns>\r
87         internal bool insertComment(CommentData data)\r
88         {\r
89             List<object> paramList = new List<object>();\r
90             paramList.Add(data.TaskID);\r
91             paramList.Add(data.Comment);\r
92 \r
93             return TaskDBConnection.Connection.updateData(SqlDictionary.insertComment, paramList);\r
94         }\r
95         /// <summary>\r
96         /// メタコメントを入力する\r
97         /// </summary>\r
98         /// <param name="comment"></param>\r
99         /// <returns></returns>\r
100         internal bool insertMetaComment(string comment)\r
101         {\r
102             List<object> paramList = new List<object>() { comment };\r
103             return TaskDBConnection.Connection.updateData(SqlDictionary.insertMetaComment, paramList);\r
104         }\r
105 \r
106         /// <summary>\r
107         /// 紐付きを失ったコメントを全削除します。\r
108         /// </summary>\r
109         /// <returns></returns>\r
110         internal bool deleteCommentWithTask()\r
111         {\r
112             return TaskDBConnection.Connection.updateData(SqlDictionary.clearZombieComment);\r
113         }\r
114 \r
115         /// <summary>\r
116         /// 日付単位のメタコメントを削除します。\r
117         /// </summary>\r
118         /// <param name="date"></param>\r
119         /// <returns></returns>\r
120         internal bool deleteDailyComment(DateComponent date)\r
121         {\r
122             List<object> paramList = new List<object>() { date.getDateString("yyyy-MM-dd") };\r
123             return TaskDBConnection.Connection.updateData(SqlDictionary.clearMetaComment,paramList);\r
124         }\r
125         /// <summary>\r
126         /// タスク単位でコメントを削除します。\r
127         /// </summary>\r
128         /// <param name="taskID"></param>\r
129         /// <returns></returns>\r
130         internal bool deleteTaskComment(int taskID)\r
131         {\r
132             List<object> paramList = new List<object>() { taskID };\r
133             return TaskDBConnection.Connection.updateData(SqlDictionary.clearTaskComment, paramList);\r
134         }\r
135     }\r
136 }\r