UserAccess.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. using SunRoxm.BizPeri.Common.Data;
  2. using System;
  3. using System.Collections;
  4. using System.Data;
  5. using System.Text;
  6. namespace SunRoxm.BizPeri.User.Access
  7. {
  8. public class UserAccess
  9. {
  10. public DataTable GetUserInfo(SqlTask task, string LoginName)
  11. {
  12. string strCmdText = $"SELECT * FROM AppUser where (LoginName_User = N'{LoginName}')";
  13. return task.FillData("AppUser", strCmdText, CommandType.Text);
  14. }
  15. public void FillLoginInfo(SqlTask task, LoginInfo loginInfo)
  16. {
  17. string strCmdText = string.Format("insert into {0} ({1},{2},{3},{4},{5},{6},{7}) values(convert(uniqueidentifier,'{8}'),convert(datetime,'{9}'),convert(uniqueidentifier,'{10}'),convert(nvarchar(64),'{11}'),convert(datetime,'{12}'),convert(uniqueidentifier,'{13}'),convert(nvarchar(64),'{14}'))", "LoginInfoTable", LoginInfoTable.FD_COMPANYID_LOGININFO, LoginInfoTable.FD_LASTACCESSTIME_LOGININFO, LoginInfoTable.FD_LOGINID_LOGININFO, LoginInfoTable.FD_LOGINNAME_LOGININFO, LoginInfoTable.FD_LOGINTIME_LOGININFO, LoginInfoTable.FD_USERID_LOGININFO, LoginInfoTable.FD_COMPANYDATABASE_LOGININFO, loginInfo.CompanyID, loginInfo.LastAccessTime, loginInfo.LoginID, loginInfo.LoginName, loginInfo.LoginTime.ToString("s"), loginInfo.UserID, loginInfo.CompanyDataBase);
  18. task.OperationData(strCmdText, CommandType.Text);
  19. }
  20. public void FillLoginInfo(SqlTask task, LoginInfo loginInfo, string serverName)
  21. {
  22. string strCmdText = string.Format("insert into {0} ({1},{2},{3},{4},{5},{6}) values(convert(nvarchar(64),'{7}'),convert(datetime,'{8}'),convert(uniqueidentifier,'{9}'),convert(nvarchar(64),'{10}'),convert(datetime,'{11}'),convert(uniqueidentifier,'{12}'))", "LoginInfoTable", "ServerName_LoginInfo", LoginInfoTable.FD_LASTACCESSTIME_LOGININFO, LoginInfoTable.FD_LOGINID_LOGININFO, LoginInfoTable.FD_LOGINNAME_LOGININFO, LoginInfoTable.FD_LOGINTIME_LOGININFO, LoginInfoTable.FD_USERID_LOGININFO, serverName, loginInfo.LastAccessTime, loginInfo.LoginID, loginInfo.LoginName, loginInfo.LoginTime.ToString("s"), loginInfo.UserID);
  23. task.OperationData(strCmdText, CommandType.Text);
  24. }
  25. public void DeleLoginInfo(SqlTask task, LoginInfo loginInfo)
  26. {
  27. string strCmdText = string.Format("delete from {0} where {1} = convert(uniqueidentifier,'{2}')", "LoginInfoTable", LoginInfoTable.FD_LOGINID_LOGININFO, loginInfo.LoginID);
  28. task.OperationData(strCmdText, CommandType.Text);
  29. }
  30. public void DeleLoginInfo(SqlTask task)
  31. {
  32. string strCmdText = string.Format("delete from {0}", "LoginInfoTable");
  33. task.OperationData(strCmdText, CommandType.Text);
  34. }
  35. public void DeleLoginInfo(SqlTask task, string CurrentDb, string ManageDb)
  36. {
  37. string strCmdText = string.Format("use [{1}] delete from {0} use [{2}]", "LoginInfoTable", CurrentDb, ManageDb);
  38. task.OperationData(strCmdText, CommandType.Text);
  39. }
  40. public void DeleLoginInfo(SqlTask task, Guid UserID, string Password)
  41. {
  42. string strCmdText = string.Format("delete from {0} where {1} = convert(uniqueidentifier,'{2}')", "LoginInfoTable", LoginInfoTable.FD_USERID_LOGININFO, UserID);
  43. task.OperationData(strCmdText, CommandType.Text);
  44. }
  45. public void DeleLoginInfo(SqlTask task, Guid UserID, string CurrentDb, string ManageDb)
  46. {
  47. string strCmdText = string.Format("use [{3}] delete from {0} where {1} = convert(uniqueidentifier,'{2}') use [{4}]", "LoginInfoTable", LoginInfoTable.FD_USERID_LOGININFO, UserID, CurrentDb, ManageDb);
  48. task.OperationData(strCmdText, CommandType.Text);
  49. }
  50. public DataTable GetLoginInfo(SqlTask task)
  51. {
  52. string strCmdText = string.Format("select * from {0}", "LoginInfoTable");
  53. return task.FillData("LoginInfoTable", strCmdText, CommandType.Text);
  54. }
  55. public void FillLockInfo(SqlTask task, LoginInfo loginInfo, Guid RecordID, string FunCode)
  56. {
  57. string strCmdText = string.Format("insert into {0} ({1},{2},{3},{7}) values(convert(nvarchar(64),'{4}'),convert(uniqueidentifier,'{5}'),convert(uniqueidentifier,'{6}'),convert(uniqueidentifier,'{8}'))", "LockInfoTable", LockInfoTable.FD_FUNCODE_LOCKINFOTABLE, LockInfoTable.FD_LOGINID_LOCKINFOTABLE, LockInfoTable.FD_RECORDID_LOCKINFOTABLE, FunCode, loginInfo.LoginID, RecordID, LockInfoTable.FD_USERID_LOCKINFOTABLE, loginInfo.UserID);
  58. task.OperationData(strCmdText, CommandType.Text);
  59. }
  60. public void DeleLockInfo(SqlTask task, Guid RecordID, string FunCode)
  61. {
  62. string strCmdText = string.Format("delete from {0} where {1} = convert(uniqueidentifier,'{2}') and {3} = convert(nvarchar(64),'{4}')", "LockInfoTable", LockInfoTable.FD_RECORDID_LOCKINFOTABLE, RecordID, LockInfoTable.FD_FUNCODE_LOCKINFOTABLE, FunCode);
  63. task.OperationData(strCmdText, CommandType.Text);
  64. }
  65. public void DeleLockInfo(SqlTask task)
  66. {
  67. string strCmdText = string.Format("delete from {0}", "LockInfoTable");
  68. task.OperationData(strCmdText, CommandType.Text);
  69. }
  70. public void DeleLockInfo(SqlTask task, string CurrentDb, string ManageDb)
  71. {
  72. string strCmdText = string.Format("use [{1}] delete from {0} use [{2}]", "LockInfoTable", CurrentDb, ManageDb);
  73. task.OperationData(strCmdText, CommandType.Text);
  74. }
  75. public void DeleLockInfo(SqlTask task, Guid LoginID, Guid UserID)
  76. {
  77. string strCmdText = string.Format("delete from {0} where {1} = convert(uniqueidentifier,'{2}') and {3} = convert(uniqueidentifier,'{4}')", "LockInfoTable", LockInfoTable.FD_LOGINID_LOCKINFOTABLE, LoginID, LockInfoTable.FD_USERID_LOCKINFOTABLE, UserID);
  78. task.OperationData(strCmdText, CommandType.Text);
  79. }
  80. public void DeleLockInfo(SqlTask task, string LoginName)
  81. {
  82. string strCmdText = string.Format("delete from {0} where {1} in (select {2} from {3} where {4} = convert(nvarchar(64),'{5}')) ", "LockInfoTable", LockInfoTable.FD_LOGINID_LOCKINFOTABLE, LoginInfoTable.FD_LOGINID_LOGININFO, "LoginInfoTable", LoginInfoTable.FD_LOGINNAME_LOGININFO, LoginName);
  83. task.OperationData(strCmdText, CommandType.Text);
  84. }
  85. public void DeleLockInfo(SqlTask task, string LoginName, string CurrentDb, string ManageDb)
  86. {
  87. string strCmdText = string.Format("use [{6}] delete from {0} where {1} in (select {2} from {3} where {4} = convert(nvarchar(64),'{5}')) use [{7}]", "LockInfoTable", LockInfoTable.FD_LOGINID_LOCKINFOTABLE, LoginInfoTable.FD_LOGINID_LOGININFO, "LoginInfoTable", LoginInfoTable.FD_LOGINNAME_LOGININFO, LoginName, CurrentDb, ManageDb);
  88. task.OperationData(strCmdText, CommandType.Text);
  89. }
  90. public void DeleLockInfo(SqlTask task, Guid LoginID)
  91. {
  92. string strCmdText = string.Format("delete from {0} where {1} = convert(uniqueidentifier,'{2}') ", "LockInfoTable", LockInfoTable.FD_LOGINID_LOCKINFOTABLE, LoginID);
  93. task.OperationData(strCmdText, CommandType.Text);
  94. }
  95. public void DeleLockInfo(SqlTask task, Guid LoginID, Guid UserID, Guid RecordID, string FunCode)
  96. {
  97. string strCmdText = string.Format("delete from {0} where {1} = convert(uniqueidentifier,'{2}') and {3} = convert(uniqueidentifier,'{4}') and {5} = convert(uniqueidentifier,'{6}') and {7} = convert(nvarchar(64),'{8}')", "LockInfoTable", LockInfoTable.FD_LOGINID_LOCKINFOTABLE, LoginID, LockInfoTable.FD_USERID_LOCKINFOTABLE, UserID, LockInfoTable.FD_RECORDID_LOCKINFOTABLE, RecordID, LockInfoTable.FD_FUNCODE_LOCKINFOTABLE, FunCode);
  98. task.OperationData(strCmdText, CommandType.Text);
  99. }
  100. public DataTable GetLoginInfoByLockInfo(SqlTask task, Guid RecordID, string FunCode)
  101. {
  102. string strCmdText = string.Format("select * from {0} A inner join {1} B on A.LoginID_LoginInfo = B.LoginID_LockInfoTable where B.RecordID_LockInfoTable = convert(uniqueidentifier,'{2}') and B.Funcode_LockInfoTable = convert(nvarchar(64),'{3}')", "LoginInfoTable", "LockInfoTable", RecordID, FunCode);
  103. return task.FillData("LoginInfoTable", strCmdText, CommandType.Text);
  104. }
  105. public DataTable GetAllDepot(SqlTask task)
  106. {
  107. string strCmdText = $"select ID_Location,No_location,Name_Location from location where subjectionid_location is null order by no_location";
  108. return task.FillData("Location", strCmdText, CommandType.Text);
  109. }
  110. public DataTable GetUserList(SqlTask task)
  111. {
  112. string strCmdText = $"select No_User,LoginName_User from AppUser where IsSuspend_User = 0 order by No_User";
  113. return task.FillData("AppUser", strCmdText, CommandType.Text);
  114. }
  115. public Hashtable DataBaseInfo(SqlTask task, string CompanyName, bool bCompanyName)
  116. {
  117. Hashtable hashtable = new Hashtable();
  118. StringBuilder stringBuilder = new StringBuilder();
  119. stringBuilder.Append("declare @DBName nvarchar(64)");
  120. if (bCompanyName)
  121. {
  122. stringBuilder.AppendFormat(" select @DBName = DataBase_Company from SunRoxmManager.dbo.Company where Name_Company = '{0}' ", CompanyName);
  123. }
  124. else
  125. {
  126. stringBuilder.AppendFormat(" set @DBName = '{0}'", CompanyName);
  127. }
  128. stringBuilder.Append(" SELECT filename ,name FROM master.dbo.sysdatabases where name = @DBName ");
  129. stringBuilder.Append(" SELECT @@VERSION AS 'SQL Server Version' ");
  130. stringBuilder.Append(" EXEC master..xp_servicecontrol QueryState, SQLServerAgent ");
  131. stringBuilder.Append(" SELECT crdate FROM master.dbo.sysdatabases where name = @DBName");
  132. stringBuilder.Append(" select top 1 backup_finish_date from msdb.dbo.backupset where database_name = @DBName order by backup_finish_date desc");
  133. DataSet dataSet = task.FillDataSet("AppUser", stringBuilder.ToString(), CommandType.Text);
  134. if (dataSet.Tables.Count > 0)
  135. {
  136. string text = "";
  137. string text2 = "";
  138. string value = "";
  139. if (dataSet.Tables[0].Rows.Count > 0)
  140. {
  141. text = dataSet.Tables[0].Rows[0][0].ToString();
  142. value = dataSet.Tables[0].Rows[0][1].ToString();
  143. }
  144. if (dataSet.Tables[1].Rows.Count > 0)
  145. {
  146. text2 = dataSet.Tables[1].Rows[0][0].ToString();
  147. }
  148. hashtable.Add("DataBaseName", value);
  149. hashtable.Add("DataBaseFilePath", text.Substring(0, text.LastIndexOf("\\")));
  150. hashtable.Add("DataBaseVersion", text2.Substring(0, text2.LastIndexOf("(")));
  151. if (dataSet.Tables[2].Rows.Count > 0)
  152. {
  153. hashtable.Add("SQL Server Agent", dataSet.Tables[2].Rows[0][0]);
  154. }
  155. else
  156. {
  157. hashtable.Add("SQL Server Agent", "");
  158. }
  159. if (dataSet.Tables[3].Rows.Count > 0)
  160. {
  161. hashtable.Add("DBCreateDate", dataSet.Tables[3].Rows[0][0].ToString());
  162. }
  163. else
  164. {
  165. hashtable.Add("DBCreateDate", "");
  166. }
  167. if (dataSet.Tables[4].Rows.Count > 0)
  168. {
  169. hashtable.Add("DBBackDate", dataSet.Tables[4].Rows[0][0].ToString());
  170. }
  171. else
  172. {
  173. hashtable.Add("DBBackDate", "");
  174. }
  175. }
  176. return hashtable;
  177. }
  178. public string DataBaseVersion(SqlTask task)
  179. {
  180. string strCmdText = $"SELECT @@VERSION AS 'SQL Server Version'";
  181. DataTable dataTable = task.FillData("AppUser", strCmdText, CommandType.Text);
  182. if (dataTable.Rows.Count > 0)
  183. {
  184. string text = dataTable.Rows[0][0].ToString();
  185. return text.Substring(0, text.IndexOf("("));
  186. }
  187. return string.Empty;
  188. }
  189. public string SQLServerAgent(SqlTask task)
  190. {
  191. string strCmdText = $"EXEC master..xp_servicecontrol QueryState, SQLServerAgent";
  192. DataTable dataTable = task.FillData("AppUser", strCmdText, CommandType.Text);
  193. if (dataTable.Rows.Count > 0)
  194. {
  195. return dataTable.Rows[0][0].ToString();
  196. }
  197. return string.Empty;
  198. }
  199. public DataTable GetCompanyName(SqlTask task, string CompanyNo)
  200. {
  201. string strCmdText = $"select Name_Company From SunRoxmManager.DBO.Company Where No_Company = '{CompanyNo}'";
  202. return task.FillData("Company", strCmdText, CommandType.Text);
  203. }
  204. }
  205. }