You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

356 lines
16 KiB

  1. using System;
  2. using System.Data;
  3. using System.Text;
  4. using System.Data.SqlClient;
  5. using OT.IDAL;
  6. using DBUtility;//Please add references
  7. using System.Collections.Generic;
  8. namespace OT.SQLServerDAL
  9. {
  10. /// <summary>
  11. /// 資料訪問類:OTB_SYS_Authorize
  12. /// </summary>
  13. public partial class OTB_SYS_Authorize : IOTB_SYS_Authorize
  14. {
  15. public OTB_SYS_Authorize()
  16. { }
  17. #region Method
  18. /// <summary>
  19. /// 是否存在該記錄
  20. /// </summary>
  21. public bool Exists( string RuleID, string ProgramID)
  22. {
  23. int rowsAffected;
  24. StringBuilder strSql = new StringBuilder();
  25. strSql.Append("select count(1) from OTB_SYS_Authorize");
  26. strSql.Append(" where RuleID=@RuleID and ProgramID=@ProgramID ");
  27. SqlParameter[] parameters = {
  28. new SqlParameter("@RuleID", SqlDbType.VarChar,20),
  29. new SqlParameter("@ProgramID", SqlDbType.VarChar,200) };
  30. parameters[0].Value = RuleID;
  31. parameters[1].Value = ProgramID;
  32. return DbHelperSQL.Exists(strSql.ToString(), parameters);
  33. //int result = DbHelperSQL.RunProcedure("OSP_OTB_SYS_Authorize_Exists", parameters, out rowsAffected);
  34. //if (result == 1)
  35. //{
  36. // return true;
  37. //}
  38. //else
  39. //{
  40. // return false;
  41. //}
  42. }
  43. /// <summary>
  44. /// 增加一條資料
  45. /// </summary>
  46. public bool Add(OT.Model.OTB_SYS_Authorize model)
  47. {
  48. int rowsAffected;
  49. StringBuilder strSql = new StringBuilder();
  50. strSql.Append(" INSERT INTO [OTB_SYS_Authorize]( ");
  51. strSql.Append(" [RuleID],[ProgramID],[AllowRight],[Memo],[CreateUser],[CreateDate],[ModifyUser],[ModifyDate] ");
  52. strSql.Append(" )VALUES( ");
  53. strSql.Append(" @RuleID,@ProgramID,@AllowRight,@Memo,@CreateUser,GETDATE(),@CreateUser,GETDATE() ) ");
  54. SqlParameter[] parameters = {
  55. new SqlParameter("@RuleID", SqlDbType.VarChar,20),
  56. new SqlParameter("@ProgramID", SqlDbType.VarChar,200),
  57. new SqlParameter("@AllowRight", SqlDbType.VarChar,200),
  58. new SqlParameter("@Memo", SqlDbType.Text),
  59. new SqlParameter("@CreateUser", SqlDbType.VarChar,50),
  60. new SqlParameter("@CreateDate", SqlDbType.DateTime),
  61. new SqlParameter("@ModifyUser", SqlDbType.VarChar,50),
  62. new SqlParameter("@ModifyDate", SqlDbType.DateTime)};
  63. parameters[0].Value = model.RuleID;
  64. parameters[1].Value = model.ProgramID;
  65. parameters[2].Value = model.AllowRight;
  66. parameters[3].Value = model.Memo;
  67. parameters[4].Value = model.CreateUser;
  68. parameters[5].Value = model.CreateDate;
  69. parameters[6].Value = model.ModifyUser;
  70. parameters[7].Value = model.ModifyDate;
  71. int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
  72. if (rows > 0)
  73. {
  74. return true;
  75. }
  76. else
  77. {
  78. return false;
  79. }
  80. }
  81. /// <summary>
  82. /// 更新一條資料
  83. /// </summary>
  84. public bool Update(OT.Model.OTB_SYS_Authorize model)
  85. {
  86. int rowsAffected = 0;
  87. StringBuilder strSql = new StringBuilder();
  88. strSql.Append(" update [OTB_SYS_Authorize] set ");
  89. strSql.Append("[ProgramID]=@ProgramID,[AllowRight]=@AllowRight,[Memo]=@Memo,[ModifyUser]=@ModifyUser,[ModifyDate]=GETDATE() ");
  90. strSql.Append(" where [RuleID]=@RuleID ");
  91. SqlParameter[] parameters = {
  92. new SqlParameter("@RuleID", SqlDbType.VarChar,20),
  93. new SqlParameter("@ProgramID", SqlDbType.VarChar,200),
  94. new SqlParameter("@AllowRight", SqlDbType.VarChar,200),
  95. new SqlParameter("@Memo", SqlDbType.Text),
  96. new SqlParameter("@CreateUser", SqlDbType.VarChar,50),
  97. new SqlParameter("@CreateDate", SqlDbType.DateTime),
  98. new SqlParameter("@ModifyUser", SqlDbType.VarChar,50),
  99. new SqlParameter("@ModifyDate", SqlDbType.DateTime)};
  100. parameters[0].Value = model.RuleID;
  101. parameters[1].Value = model.ProgramID;
  102. parameters[2].Value = model.AllowRight;
  103. parameters[3].Value = model.Memo;
  104. parameters[4].Value = model.CreateUser;
  105. parameters[5].Value = model.CreateDate;
  106. parameters[6].Value = model.ModifyUser;
  107. parameters[7].Value = model.ModifyDate;
  108. //DbHelperSQL.RunProcedure("OSP_OTB_SYS_Authorize_Update", parameters, out rowsAffected);
  109. int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
  110. if (rows > 0)
  111. {
  112. return true;
  113. }
  114. else
  115. {
  116. return false;
  117. }
  118. }
  119. /// <summary>
  120. /// 刪除一條資料
  121. /// </summary>
  122. public bool Delete( string RuleID, string ProgramID)
  123. {
  124. int rowsAffected = 0;
  125. StringBuilder strSql = new StringBuilder();
  126. strSql.Append(" DELETE [TB_SYS_Authorize] ");
  127. strSql.Append(" WHERE RuleID=@RuleID and ProgramID=@ProgramID ");
  128. SqlParameter[] parameters = {
  129. new SqlParameter("@RuleID", SqlDbType.VarChar,20),
  130. new SqlParameter("@ProgramID", SqlDbType.VarChar,200) };
  131. parameters[0].Value = RuleID;
  132. parameters[1].Value = ProgramID;
  133. //DbHelperSQL.RunProcedure("OSP_OTB_SYS_Authorize_Delete", parameters, out rowsAffected);
  134. int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
  135. if (rows > 0)
  136. {
  137. return true;
  138. }
  139. else
  140. {
  141. return false;
  142. }
  143. }
  144. /// <summary>
  145. /// 得到一個對象實體
  146. /// </summary>
  147. public OT.Model.OTB_SYS_Authorize GetModel( string RuleID, string ProgramID)
  148. {
  149. StringBuilder strSql = new StringBuilder();
  150. strSql.Append(" DECLARE @AllowRight NVARCHAR(4000) ");
  151. strSql.Append(" SET @AllowRight='' ");
  152. strSql.Append(" SELECT @AllowRight=@AllowRight+'|'+RTRIM(AllowRight) "); //看看是不是能去掉重複的
  153. strSql.Append(" FROM [OTB_SYS_Authorize] ");
  154. strSql.Append(" WHERE RuleID IN (SELECT RuleID FROM OTB_SYS_MembersToRule WHERE MemberID = @RuleID) ");
  155. strSql.Append(" and ProgramID=@ProgramID ");
  156. strSql.Append(" PRINT @AllowRight ");
  157. strSql.Append(" SELECT DISTINCT ");
  158. strSql.Append(" @RuleID AS RuleID,A.ProgramID,@AllowRight AS AllowRight,'' AS Memo,'' AS CreateUser,'' AS CreateDate,'' AS ModifyUser,'' AS ModifyDate,P.Effective ");//Add by Alina 20141029 添加查詢出來一個程式的狀態欄位
  159. strSql.Append(" FROM [OTB_SYS_Authorize] A ");
  160. strSql.Append(" INNER JOIN ");
  161. strSql.Append(" [OTB_SYS_ProgramList] P ");
  162. strSql.Append(" ON A.ProgramID = P.ProgramID ");
  163. strSql.Append(" WHERE RuleID IN (SELECT RuleID FROM OTB_SYS_MembersToRule WHERE MemberID = @RuleID) ");
  164. strSql.Append(" and A.ProgramID=@ProgramID AND P.ProgramType <> 'S' ");
  165. SqlParameter[] parameters = {
  166. new SqlParameter("@RuleID", SqlDbType.VarChar,20),
  167. new SqlParameter("@ProgramID", SqlDbType.VarChar,200) };
  168. parameters[0].Value = RuleID;
  169. parameters[1].Value = ProgramID;
  170. OT.Model.OTB_SYS_Authorize model = new OT.Model.OTB_SYS_Authorize();
  171. //DataSet ds = DbHelperSQL.RunProcedure("OSP_OTB_SYS_Authorize_GetModel", parameters, "ds");
  172. DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);
  173. if (ds.Tables[0].Rows.Count > 0)
  174. {
  175. if (ds.Tables[0].Rows[0]["RuleID"] != null && ds.Tables[0].Rows[0]["RuleID"].ToString() != "")
  176. {
  177. model.RuleID = ds.Tables[0].Rows[0]["RuleID"].ToString();
  178. }
  179. if (ds.Tables[0].Rows[0]["ProgramID"] != null && ds.Tables[0].Rows[0]["ProgramID"].ToString() != "")
  180. {
  181. model.ProgramID = ds.Tables[0].Rows[0]["ProgramID"].ToString();
  182. }
  183. if (ds.Tables[0].Rows[0]["AllowRight"] != null && ds.Tables[0].Rows[0]["AllowRight"].ToString() != "")
  184. {
  185. model.AllowRight = ds.Tables[0].Rows[0]["AllowRight"].ToString();
  186. }
  187. if (ds.Tables[0].Rows[0]["Memo"] != null && ds.Tables[0].Rows[0]["Memo"].ToString() != "")
  188. {
  189. model.Memo = ds.Tables[0].Rows[0]["Memo"].ToString();
  190. }
  191. if (ds.Tables[0].Rows[0]["CreateUser"] != null && ds.Tables[0].Rows[0]["CreateUser"].ToString() != "")
  192. {
  193. model.CreateUser = ds.Tables[0].Rows[0]["CreateUser"].ToString();
  194. }
  195. if (ds.Tables[0].Rows[0]["CreateDate"] != null && ds.Tables[0].Rows[0]["CreateDate"].ToString() != "")
  196. {
  197. model.CreateDate = DateTime.Parse(ds.Tables[0].Rows[0]["CreateDate"].ToString());
  198. }
  199. if (ds.Tables[0].Rows[0]["ModifyUser"] != null && ds.Tables[0].Rows[0]["ModifyUser"].ToString() != "")
  200. {
  201. model.ModifyUser = ds.Tables[0].Rows[0]["ModifyUser"].ToString();
  202. }
  203. if (ds.Tables[0].Rows[0]["ModifyDate"] != null && ds.Tables[0].Rows[0]["ModifyDate"].ToString() != "")
  204. {
  205. model.ModifyDate = DateTime.Parse(ds.Tables[0].Rows[0]["ModifyDate"].ToString());
  206. }
  207. if (ds.Tables[0].Rows[0]["Effective"] != null && ds.Tables[0].Rows[0]["Effective"].ToString() != "")
  208. {
  209. model.ProgramStatus = ds.Tables[0].Rows[0]["Effective"].ToString();
  210. }
  211. return model;
  212. }
  213. else
  214. {
  215. return null;
  216. }
  217. }
  218. /// <summary>
  219. /// 儲存權限表
  220. /// </summary>
  221. public bool Save(OT.Model.OTB_SYS_Authorize model)
  222. {
  223. List<CommandInfo> lstCommandInfo = new List<CommandInfo>();
  224. CommandInfo o_CommandInfo;
  225. //把該角色下所有的權限給刪除掉先
  226. StringBuilder strSql = new StringBuilder();
  227. strSql.Append(" DELETE [OTB_SYS_Authorize] ");
  228. strSql.Append(" WHERE RuleID=@RuleID ");
  229. SqlParameter[] parametersDel = {
  230. new SqlParameter("@RuleID", SqlDbType.VarChar,20),
  231. new SqlParameter("@ProgramID", SqlDbType.VarChar,200) };
  232. parametersDel[0].Value = model.RuleID;
  233. parametersDel[1].Value = model.ProgramID;
  234. //DbHelperSQL.RunProcedure("OSP_OTB_SYS_Authorize_Delete", parametersDel);
  235. o_CommandInfo = new CommandInfo();
  236. //o_CommandInfo.CommandText = "OSP_OTB_SYS_Authorize_Delete";
  237. o_CommandInfo.CommandText = strSql.ToString();
  238. o_CommandInfo.Parameters = parametersDel;
  239. lstCommandInfo.Add(o_CommandInfo);
  240. //然後再插入新的值
  241. foreach (OT.Model.OTB_SYS_Authorize ChildModel in model.AuthorizeList)
  242. {
  243. StringBuilder strSql2 = new StringBuilder();
  244. strSql2.Append(" INSERT INTO [OTB_SYS_Authorize]( ");
  245. strSql2.Append(" [RuleID],[ProgramID],[AllowRight],[Memo],[CreateUser],[CreateDate],[ModifyUser],[ModifyDate] ");
  246. strSql2.Append(" )VALUES( ");
  247. strSql2.Append(" @RuleID,@ProgramID,@AllowRight,@Memo,@CreateUser,GETDATE(),@CreateUser,GETDATE() ) ");
  248. SqlParameter[] parametersAdd = {
  249. new SqlParameter("@RuleID", SqlDbType.VarChar,20),
  250. new SqlParameter("@ProgramID", SqlDbType.VarChar,200),
  251. new SqlParameter("@AllowRight", SqlDbType.VarChar,200),
  252. new SqlParameter("@Memo", SqlDbType.Text),
  253. new SqlParameter("@CreateUser", SqlDbType.VarChar,50),
  254. new SqlParameter("@CreateDate", SqlDbType.DateTime),
  255. new SqlParameter("@ModifyUser", SqlDbType.VarChar,50),
  256. new SqlParameter("@ModifyDate", SqlDbType.DateTime)};
  257. parametersAdd[0].Value = ChildModel.RuleID;
  258. parametersAdd[1].Value = ChildModel.ProgramID;
  259. parametersAdd[2].Value = ChildModel.AllowRight;
  260. parametersAdd[3].Value = ChildModel.Memo;
  261. parametersAdd[4].Value = ChildModel.CreateUser;
  262. parametersAdd[5].Value = ChildModel.CreateDate;
  263. parametersAdd[6].Value = ChildModel.ModifyUser;
  264. parametersAdd[7].Value = ChildModel.ModifyDate;
  265. o_CommandInfo = new CommandInfo();
  266. //o_CommandInfo.CommandText = "OSP_OTB_SYS_Authorize_Add";
  267. o_CommandInfo.CommandText = strSql2.ToString();
  268. o_CommandInfo.Parameters = parametersAdd;
  269. lstCommandInfo.Add(o_CommandInfo);
  270. }
  271. //if (DbHelperSQL.ExecuteSqlTran(lstCommandInfo) > 0)
  272. if (DbHelperSQL.ExecuteSqlTran(lstCommandInfo) > 0)
  273. {
  274. return true;
  275. }
  276. else
  277. {
  278. return false;
  279. }
  280. }
  281. public bool GetDirectRoleByRoleSource(string strRoleSource, string strRoleDirect, string CreateUser)
  282. {
  283. int effectrow = 0;
  284. StringBuilder strSql = new StringBuilder();
  285. strSql.Append(" DELETE [OTB_SYS_Authorize] WHERE [RuleID]=@DirectRoleID ");
  286. strSql.Append(" INSERT INTO [OTB_SYS_Authorize] ");
  287. strSql.Append(" ([RuleID],[ProgramID],[AllowRight],[Memo],[CreateUser],[CreateDate],[ModifyUser],[ModifyDate]) ");
  288. strSql.Append(" SELECT @DirectRoleID,[ProgramID],[AllowRight],[Memo],@CreateUser,GETDATE(),[ModifyUser],[ModifyDate] ");
  289. strSql.Append(" FROM [OTB_SYS_Authorize] ");
  290. strSql.Append(" WHERE [RuleID]=@RoleSourceID ");
  291. SqlParameter[] parameter = {
  292. new SqlParameter("@RoleSourceID",SqlDbType.VarChar,20),
  293. new SqlParameter("@DirectRoleID",SqlDbType.VarChar,20),
  294. new SqlParameter("@CreateUser",SqlDbType.VarChar,20)
  295. };
  296. parameter[0].Value = strRoleSource;
  297. parameter[1].Value = strRoleDirect;
  298. parameter[2].Value = CreateUser;
  299. //DbHelperSQL.RunProcedure("OSP_GetDirectRoleSourceID", parameter, out effectrow);
  300. int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameter);
  301. if (rows > 0)
  302. {
  303. return true;
  304. }
  305. else
  306. {
  307. return false;
  308. }
  309. }
  310. /// <summary>
  311. /// 根據登入者判斷權限大小
  312. /// </summary>
  313. public DataSet GetListByRuleID(string strMemberID)
  314. {
  315. StringBuilder strSql = new StringBuilder();
  316. strSql.Append(" SELECT RuleID,ProgramID,AllowRight ");
  317. strSql.Append(" FROM [OTB_SYS_Authorize] ");
  318. strSql.Append(" WHERE RuleID IN (SELECT RuleID FROM OTB_SYS_MembersToRule WHERE MemberID = @RuleID) ");
  319. SqlParameter[] parameters = {
  320. new SqlParameter("@RuleID",SqlDbType.NVarChar,50)};
  321. parameters[0].Value = strMemberID;
  322. return DbHelperSQL.Query(strSql.ToString(), parameters);
  323. //return DbHelperSQL.RunProcedure("OSP_OTB_SYS_Authorize_GetListByRuleID", parameter, "ds");
  324. }
  325. #endregion Method
  326. #region MethodEx
  327. #endregion MethodEx
  328. }
  329. }