--- /dev/null
+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