OSDN Git Service

構成変更のためファイルを置き直し。
[kybernetes/Kybernetes.git] / base / data / accessor / CommentDataAccessor.cs
diff --git a/base/data/accessor/CommentDataAccessor.cs b/base/data/accessor/CommentDataAccessor.cs
new file mode 100644 (file)
index 0000000..e90cf70
--- /dev/null
@@ -0,0 +1,136 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using com.andoutomo.kybernetes.data.DAO;\r
+using com.andoutomo.kybernetes.data.connection;\r
+using System.Data.SQLite;\r
+\r
+namespace com.andoutomo.kybernetes.data.accessor\r
+{\r
+    public class CommentDataAccessor\r
+    {\r
+        #region singleton\r
+        private static CommentDataAccessor accessor;\r
+        private CommentDataAccessor()\r
+        {\r
+        }\r
+        public static CommentDataAccessor getObject\r
+        {\r
+            get\r
+            {\r
+                if (accessor == null)\r
+                {\r
+                    accessor = new CommentDataAccessor();\r
+                }\r
+                return accessor;\r
+            }\r
+        }\r
+        #endregion\r
+\r
+        private List<CommentData> getCommentInner(string sql,List<object> paramList)\r
+        {\r
+            List<CommentData> result = new List<CommentData>();\r
+            \r
+            \r
+\r
+            TaskDBConnection.Connection.selectData(sql, paramList,\r
+                (SQLiteDataReader reader) =>\r
+                {\r
+                    while (reader.Read())\r
+                    {\r
+                        CommentData data = new CommentData();\r
+                        data.CommentID = Convert.ToInt32(reader["ID"].ToString());\r
+                        if (string.IsNullOrEmpty(reader["TASKID"].ToString()))\r
+                        {\r
+                            data.TaskID = 0; \r
+                        }\r
+                        else\r
+                        {\r
+                            data.TaskID = Convert.ToInt32(reader["TASKID"].ToString());\r
+                        }\r
+                        \r
+                        data.CreateDate = Convert.ToDateTime(reader["CREATETIME"].ToString());\r
+                        data.Comment = reader["COMMENT"].ToString();\r
+\r
+                        result.Add(data);\r
+                    }\r
+                });\r
+            return result;\r
+        }\r
+\r
+        /// <summary>\r
+        /// 対象IDに紐づくコメントを抽出する\r
+        /// </summary>\r
+        /// <param name="id"></param>\r
+        /// <returns></returns>\r
+        public List<CommentData> getComment(int id)\r
+        {\r
+            List<object> paramList = new List<object>() { id };\r
+            return getCommentInner(SqlDictionary.getComments,paramList);\r
+        }\r
+        /// <summary>\r
+        /// メタコメントを抽出する.\r
+        /// システム日付と一致するもののみ抽出する。\r
+        /// </summary>\r
+        /// <returns></returns>\r
+        public List<CommentData> getComment()\r
+        {\r
+            return getCommentInner(SqlDictionary.getMetaComment, new List<object>());\r
+        }\r
+\r
+        /// <summary>\r
+        /// コメントを入力する\r
+        /// </summary>\r
+        /// <param name="data"></param>\r
+        /// <returns></returns>\r
+        public bool insertComment(CommentData data)\r
+        {\r
+            List<object> paramList = new List<object>();\r
+            paramList.Add(data.TaskID);\r
+            paramList.Add(data.Comment);\r
+\r
+            return TaskDBConnection.Connection.updateData(SqlDictionary.insertComment, paramList);\r
+        }\r
+        /// <summary>\r
+        /// メタコメントを入力する\r
+        /// </summary>\r
+        /// <param name="comment"></param>\r
+        /// <returns></returns>\r
+        public bool insertMetaComment(string comment)\r
+        {\r
+            List<object> paramList = new List<object>() { comment };\r
+            return TaskDBConnection.Connection.updateData(SqlDictionary.insertMetaComment, paramList);\r
+        }\r
+\r
+        /// <summary>\r
+        /// 紐付きを失ったコメントを全削除します。\r
+        /// </summary>\r
+        /// <returns></returns>\r
+        public bool deleteCommentWithTask()\r
+        {\r
+            return TaskDBConnection.Connection.updateData(SqlDictionary.clearZombieComment);\r
+        }\r
+\r
+        /// <summary>\r
+        /// 日付単位のメタコメントを削除します。\r
+        /// </summary>\r
+        /// <param name="date"></param>\r
+        /// <returns></returns>\r
+        public bool deleteDailyComment(DateComponent date)\r
+        {\r
+            List<object> paramList = new List<object>() { date.getDateString("yyyy-MM-dd") };\r
+            return TaskDBConnection.Connection.updateData(SqlDictionary.clearMetaComment,paramList);\r
+        }\r
+        /// <summary>\r
+        /// タスク単位でコメントを削除します。\r
+        /// </summary>\r
+        /// <param name="taskID"></param>\r
+        /// <returns></returns>\r
+        public bool deleteTaskComment(int taskID)\r
+        {\r
+            List<object> paramList = new List<object>() { taskID };\r
+            return TaskDBConnection.Connection.updateData(SqlDictionary.clearTaskComment, paramList);\r
+        }\r
+    }\r
+}\r