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

.net编程

开发平台:

Others

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Text;
  5. using qminoa.DA;
  6. namespace qminoa.BLL.PM
  7. {
  8. public class Project
  9. {
  10. private CategoriesCollection _categories;
  11. private string _description;
  12. private DateTime _estCompletionDate;
  13. private decimal _estDuration;
  14. private int _managerUserID;
  15. private string _managerUserName;
  16. private UsersCollection _members;
  17. private string _name;
  18. private int _projectID;
  19. public Project()
  20. {
  21. }
  22. public Project(int projectID)
  23. {
  24. _projectID = projectID;
  25. }
  26. public Project(
  27. int projectID, 
  28. string name, 
  29. string description, 
  30. int managerUserID,
  31. DateTime estCompletionDate, 
  32. decimal estDuration)
  33. {
  34. _projectID = projectID;
  35. _name = name;
  36. _description = description;
  37. _managerUserID = managerUserID;
  38. _estCompletionDate = estCompletionDate;
  39. _estDuration = estDuration;
  40. }
  41. public CategoriesCollection Categories
  42. {
  43. get{ return _categories; }
  44. set{ _categories = value; }
  45. }
  46. public string Description
  47. {
  48. get{ return _description; }
  49. set{ _description = value; }
  50. }
  51. public DateTime EstCompletionDate
  52. {
  53. get{ return _estCompletionDate; }
  54. set{ _estCompletionDate = value; }
  55. }
  56. public decimal EstDuration
  57. {
  58. get{ return _estDuration; }
  59. set{ _estDuration = value; }
  60. }
  61. public int ManagerUserID
  62. {
  63. get{ return _managerUserID; }
  64. set{ _managerUserID = value; }
  65. }
  66. public string ManagerUserName
  67. {
  68. get{ return _managerUserName; }
  69. set{ _managerUserName = value; }
  70. }
  71. public UsersCollection Members
  72. {
  73. get{ return _members; }
  74. set{ _members = value; }
  75. }
  76. public string Name
  77. {
  78. get{ return _name; }
  79. set{ _name = value; }
  80. }
  81. public int ProjectID
  82. {
  83. get{ return _projectID; }
  84. set{ _projectID = value; }
  85. }
  86. public static ProjectsCollection GetProjects()
  87. {
  88. DataSet ds = SqlHelper.ExecuteDataset(
  89. ConfigurationSettings.AppSettings["ConnectionString"], 
  90. CommandType.StoredProcedure, "PM_ListAllProjects");  
  91. ProjectsCollection projects = new ProjectsCollection();
  92. foreach(DataRow r in ds.Tables[0].Rows)
  93. {
  94. Project prj = new Project();
  95. prj.ProjectID = Convert.ToInt32(r["ProjectID"]);
  96. prj.Name = r["ProjectName"].ToString();
  97. prj.Description = r["Description"].ToString();
  98. prj.ManagerUserID = Convert.ToInt32(r["ManagerUserID"]);
  99. prj.EstCompletionDate = Convert.ToDateTime(r["EstCompletionDate"]);
  100. prj.EstDuration = Convert.ToDecimal(r["EstDuration"]);
  101. projects.Add(prj);
  102. }
  103. return projects;
  104. }
  105. public static ProjectsCollection GetProjects(int userID, string role)
  106. {
  107. DataSet ds = SqlHelper.ExecuteDataset(
  108. ConfigurationSettings.AppSettings["ConnectionString"],
  109. "PM_ListProjects", userID, Convert.ToInt32(role));  
  110. ProjectsCollection projects = new ProjectsCollection();
  111. foreach(DataRow r in ds.Tables[0].Rows)
  112. {
  113. Project prj = new Project();
  114. prj.ProjectID = Convert.ToInt32(r["ProjectID"]);
  115. prj.Name = r["ProjectName"].ToString();
  116. prj.Description = r["Description"].ToString();
  117. prj.ManagerUserID = Convert.ToInt32(r["ManagerUserID"]);
  118. prj.ManagerUserName = Convert.ToString(r["UserName"]);
  119. prj.EstCompletionDate = Convert.ToDateTime(r["EstCompletionDate"]);
  120. prj.EstDuration = Convert.ToDecimal(r["EstDuration"]);
  121. projects.Add(prj);
  122. }
  123. return projects;
  124. }
  125. public static ProjectsCollection GetProjects(int queryUserID, int userID)
  126. {
  127. ProjectsCollection projects = new ProjectsCollection();
  128. DataSet ds = SqlHelper.ExecuteDataset(
  129. ConfigurationSettings.AppSettings["ConnectionString"], 
  130. "PM_ListProjectsWithMembership", queryUserID, userID);
  131. foreach(DataRow r in ds.Tables[0].Rows)
  132. {
  133. Project prj = new Project();
  134. prj.ProjectID = Convert.ToInt32(r["ProjectID"]);
  135. prj.Name = r["Name"].ToString();
  136. prj.Description = r["Description"].ToString();
  137. prj.ManagerUserID = Convert.ToInt32(r["ManagerUserID"]);
  138. prj.EstCompletionDate = Convert.ToDateTime(r["EstCompletionDate"]);
  139. prj.EstDuration = Convert.ToDecimal(r["EstDuration"]);
  140. projects.Add(prj);
  141. }
  142. return projects;
  143. }
  144. public static CategoriesCollection GetCategories(int projectID)
  145. {
  146. DataSet ds = SqlHelper.ExecuteDataset(
  147. ConfigurationSettings.AppSettings["ConnectionString"], 
  148. "PM_ListCategories", projectID); 
  149. CategoriesCollection categories = new CategoriesCollection();
  150. foreach(DataRow r in ds.Tables[0].Rows)
  151. {
  152. Category cat = new Category();
  153. cat.CategoryID = Convert.ToInt32(r["CategoryID"]);
  154. cat.ProjectID = projectID;
  155. cat.Name = r["Name"].ToString();
  156. cat.Abbreviation = r["Abbreviation"].ToString();
  157. cat.EstDuration = Convert.ToDecimal(r["EstDuration"]);
  158. categories.Add(cat);
  159. }
  160. return categories;
  161. }
  162. public static void Remove (int projectID)
  163. {
  164. SqlHelper.ExecuteNonQuery(ConfigurationSettings.AppSettings["ConnectionString"], 
  165. "PM_DeleteProject", projectID);
  166. }
  167. private bool Insert()
  168. {
  169. StringBuilder selectedMembers = new StringBuilder(_members.Count);
  170. int index = 1;
  171. foreach(PMUser user in _members)
  172. {
  173. selectedMembers.Append(user.UserID);
  174. if (index != _members.Count)
  175. {
  176. selectedMembers.Append(",");
  177. }
  178. index++;
  179. }
  180. StringBuilder categories = new StringBuilder(_categories.Count);
  181. index = 1;
  182. foreach(Category cat in _categories)
  183. {
  184. string categoryString = 
  185. string.Format("{0},{1},{2}", cat.Name, cat.Abbreviation, cat.EstDuration);
  186. categories.Append(categoryString);
  187. if (index != _categories.Count)
  188. {
  189. categories.Append(";");
  190. }
  191. index++;
  192. }
  193. _projectID = Convert.ToInt32(SqlHelper.ExecuteScalar(
  194. ConfigurationSettings.AppSettings["ConnectionString"], "PM_AddProject", 
  195. _name,
  196. _description,
  197. _managerUserID,
  198. _estCompletionDate,
  199. _estDuration,
  200. selectedMembers.ToString(),
  201. categories.ToString()
  202. ));
  203. return (_projectID > 0);
  204. }
  205. public bool Load()
  206. {
  207. DataSet ds = SqlHelper.ExecuteDataset(
  208. ConfigurationSettings.AppSettings["ConnectionString"], 
  209. "PM_GetProject", _projectID);
  210. if (ds.Tables[0].Rows.Count < 1)
  211. return false;
  212. _name = Convert.ToString(ds.Tables[0].Rows[0]["Name"]);
  213. _description = Convert.ToString(ds.Tables[0].Rows[0]["Description"]);
  214. _managerUserID = Convert.ToInt32(ds.Tables[0].Rows[0]["ManagerUserID"]);
  215. _estCompletionDate = Convert.ToDateTime(ds.Tables[0].Rows[0]["EstCompletionDate"]);
  216. _estDuration = Convert.ToDecimal(ds.Tables[0].Rows[0]["estDuration"]);
  217. _members = new UsersCollection();
  218. foreach(DataRow row in ds.Tables[1].Rows)
  219. {
  220. PMUser user = new PMUser();
  221. user.UserID = Convert.ToInt32(row["UserID"]);
  222. user.UserName = Convert.ToString(row["UserName"]);
  223. _members.Add(user);
  224. }
  225. _categories = new CategoriesCollection();
  226. foreach(DataRow row in ds.Tables[2].Rows)
  227. {
  228. Category cat = new Category();
  229. cat.ProjectID = _projectID;
  230. cat.CategoryID = Convert.ToInt32(row["CategoryID"]);
  231. cat.Name = Convert.ToString(row["Name"]);
  232. cat.Abbreviation = Convert.ToString(row["CategoryShortName"]);
  233. cat.EstDuration = Convert.ToDecimal(row["EstDuration"]);
  234. _categories.Add(cat);
  235. }
  236. return true;
  237. }
  238. public bool Save()
  239. {
  240. if (_projectID == 0)
  241. return Insert();
  242. else if (_projectID > 0)
  243. return Update();
  244. else
  245. {
  246. _projectID = 0;
  247. return false;
  248. }
  249. }
  250. private bool Update()
  251. {
  252. StringBuilder selectedMembers = new StringBuilder(_members.Count);
  253. int index = 1;
  254. foreach(PMUser user in _members)
  255. {
  256. selectedMembers.Append(user.UserID);
  257. if (index != _members.Count)
  258. {
  259. selectedMembers.Append(",");
  260. }
  261. index++;
  262. }
  263. StringBuilder categories = new StringBuilder(_categories.Count);
  264. index = 1;
  265. foreach(Category cat in _categories)
  266. {
  267. string categoryString = 
  268. string.Format("{0},{1},{2},{3}", cat.CategoryID, cat.Name, 
  269. cat.Abbreviation, cat.EstDuration);
  270. categories.Append(categoryString);
  271. if (index != _categories.Count)
  272. {
  273. categories.Append(";");
  274. }
  275. index++;
  276. }
  277. try
  278. {
  279. SqlHelper.ExecuteNonQuery(
  280. ConfigurationSettings.AppSettings["ConnectionString"], "PM_UpdateProject",
  281. _projectID,
  282. _name,
  283. _description,
  284. _managerUserID,
  285. _estCompletionDate,
  286. _estDuration,
  287. selectedMembers.ToString(),
  288. categories.ToString()
  289. );
  290. }
  291. catch
  292. {
  293. return false;
  294. }
  295. return true;
  296. }
  297. }
  298. }