TimeEntry.cs
上传用户:autodoor
上传日期:2022-08-04
资源大小:9973k
文件大小:5k
源码类别:

.net编程

开发平台:

Others

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using qminoa.DA;
  5. namespace qminoa.BLL.PM
  6. {
  7. public class TimeEntry
  8. {
  9. private int _categoryID;
  10. private string _categoryName;
  11. private string _categoryShortName;
  12. private string _day;
  13. private string _description;
  14. private decimal _duration;
  15. private DateTime _entryDate;
  16. private int _entryLogID;
  17. private int _projectID;
  18. private string _projectName;
  19. private int _userID;
  20. public TimeEntry()
  21. {
  22. }
  23. public TimeEntry(int entryLogID)
  24. {
  25. _entryLogID = entryLogID;
  26. }
  27. public TimeEntry(int entryLogID, int userID, int ProjectID, int CategoryID, DateTime EntryDate, string Description, decimal Duration)
  28. {
  29. _entryLogID = entryLogID;
  30. _userID = userID;
  31. _projectID = ProjectID;
  32. _categoryID = CategoryID;
  33. _entryDate = EntryDate;
  34. _description = Description;
  35. _duration = Duration;
  36. }
  37. public int CategoryID
  38. {
  39. get { return _categoryID; }
  40. set { _categoryID = value; }
  41. }
  42. public string CategoryName
  43. {
  44. get { return _categoryName; }
  45. set { _categoryName = value; }
  46. }
  47. public string CategoryShortName
  48. {
  49. get { return _categoryShortName; }
  50. set { _categoryShortName = value; }
  51. }
  52. public string Day
  53. {
  54. get { return _day; }
  55. set { _day = value; }
  56. }
  57. public string Description
  58. {
  59. get { return _description; }
  60. set { _description = value; }
  61. }
  62. public decimal Duration
  63. {
  64. get { return _duration; }
  65. set { _duration = value; }
  66. }
  67. public DateTime EntryDate
  68. {
  69. get { return _entryDate; }
  70. set { _entryDate = value; }
  71. }
  72. public int EntryLogID 
  73. {
  74. get { return _entryLogID; }
  75. set { _entryLogID = value; }
  76. }
  77. public int ProjectID
  78. {
  79. get { return _projectID; }
  80. set { _projectID = value; }
  81. }
  82. public string ProjectName
  83. {
  84. get { return _projectName; }
  85. set { _projectName = value; }
  86. }
  87. public static void FillCorrectStartEndDates(DateTime selectedDate, ref DateTime startDate, ref DateTime endDate)
  88. {
  89. int firstDayOfWeek = 1;
  90. for(int i = 0; i<7; i++) 
  91. {
  92. if (Convert.ToInt32(selectedDate.AddDays(i).DayOfWeek) == firstDayOfWeek)
  93. {
  94. startDate = selectedDate.AddDays(i);
  95. if(i!=0)
  96. startDate = startDate.AddDays(-7);
  97. endDate = startDate.AddDays(6);
  98. break;
  99. }
  100. }
  101. }
  102. public static TimeEntriesCollection GetEntries(int queryUserID, int userID, DateTime startDate, DateTime endDate)
  103. {
  104. DataSet dsData = SqlHelper.ExecuteDataset(
  105. ConfigurationSettings.AppSettings["ConnectionString"], 
  106. "PM_ListTimeEntries", queryUserID, userID, startDate, endDate);
  107. TimeEntriesCollection entryList = new TimeEntriesCollection();
  108. foreach(DataRow row in dsData.Tables[0].Rows)
  109. {
  110. TimeEntry time = new TimeEntry();
  111. time.EntryLogID = Convert.ToInt32(row["EntryLogID"]);
  112. time.Description = row["Description"].ToString();
  113. time.Duration = Convert.ToDecimal(row["Duration"]);
  114. time.EntryDate = Convert.ToDateTime(row["EntryDate"]);
  115. time.ProjectID = Convert.ToInt32(row["ProjectID"]);
  116. time.CategoryID = Convert.ToInt32(row["CategoryID"]);
  117. time.CategoryName = row["CategoryName"].ToString();
  118. time.ProjectName = row["ProjectName"].ToString();
  119. time.Day = time.EntryDate.ToString("dddd");
  120. time.CategoryShortName = row["CatShortName"].ToString(); 
  121. entryList.Add(time);
  122. }
  123. return entryList;
  124. }
  125. public static DataTable GetWeek(DateTime selectedDate)
  126. {
  127. DateTime start = DateTime.MinValue;
  128. DateTime end = DateTime.MinValue;
  129. DataTable dt = new DataTable();
  130. dt.Columns.Add("Day");
  131. dt.Columns.Add("Date");
  132. FillCorrectStartEndDates(selectedDate, ref start, ref end);
  133. DataRow workRow;
  134. for (int i = 0; i < 7; i++)
  135. {
  136. workRow = dt.NewRow();
  137. workRow["Day"] = Convert.ToDateTime(start.AddDays(i)).ToString("ddd");
  138. workRow["Date"] = start.AddDays(i);
  139. dt.Rows.Add(workRow);
  140. }
  141. return dt;
  142. }
  143. public static void Remove(int entryLogID)
  144. {
  145. SqlHelper.ExecuteNonQuery(ConfigurationSettings.AppSettings["ConnectionString"], "PM_DeleteTimeEntry", entryLogID);
  146. }
  147. public void Load()
  148. {
  149. DataSet ds = SqlHelper.ExecuteDataset(ConfigurationSettings.AppSettings["ConnectionString"], "PM_GetTimeEntry", _entryLogID);
  150. DataRow row = ds.Tables[0].Rows[0];
  151. _description = row["Description"].ToString();
  152. _duration = Convert.ToDecimal(row["Duration"]);
  153. _entryDate = Convert.ToDateTime(row["EntryDate"]);
  154. _projectID = Convert.ToInt32(row["ProjectID"]);
  155. _userID = Convert.ToInt32(row["UserID"]);
  156. _categoryID = Convert.ToInt32(row["CategoryID"]);
  157. _projectName = row["ProjectName"].ToString();
  158. }
  159. public bool Save()
  160. {
  161. if (_entryLogID == 0)
  162. return Insert();
  163. else
  164. return Update();
  165. }
  166. private bool Insert()
  167. {
  168. _entryLogID = Convert.ToInt32(SqlHelper.ExecuteScalar(ConfigurationSettings.AppSettings["ConnectionString"], "PM_AddTimeEntry", _userID, _projectID, _categoryID,
  169. _entryDate, _description, _duration));
  170. return (0 < _entryLogID);
  171. }
  172. private bool Update()
  173. {
  174. try
  175. {
  176. SqlHelper.ExecuteNonQuery(ConfigurationSettings.AppSettings["ConnectionString"], "PM_UpdateTimeEntry", _entryLogID, _userID, _projectID, _categoryID,
  177. _entryDate, _description, _duration);
  178. return true;
  179. }
  180. catch 
  181. {
  182. return false; }
  183. }
  184. }
  185. }