CommonTool.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. using Npgsql;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data.SqlClient;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Text.RegularExpressions;
  9. using System.Threading.Tasks;
  10. using System.Configuration;
  11. namespace DataTransmission
  12. {
  13. public class CommonTool
  14. {
  15. public SqlConnection GetConSqlServer()
  16. {
  17. return new SqlConnection(ConfigurationManager.AppSettings["SQLServerDB"]);
  18. }
  19. public NpgsqlConnection GetConPgSql()
  20. {
  21. return new NpgsqlConnection(ConfigurationManager.AppSettings["PGSQLDB"]);
  22. }
  23. public DataTable GetDataTable(string sql, SqlConnection conn)
  24. {
  25. conn.Open();
  26. SqlCommand cmd = new SqlCommand(sql, conn);
  27. SqlDataAdapter sda = new SqlDataAdapter(cmd);
  28. DataSet dataSet = new DataSet();
  29. sda.Fill(dataSet, "table");
  30. conn.Close();
  31. return dataSet.Tables[0];
  32. }
  33. public DataTable GetDataTable(string sql, NpgsqlConnection conn)
  34. {
  35. conn.Open();
  36. NpgsqlCommand cmd = new NpgsqlCommand(sql, conn);
  37. NpgsqlDataAdapter sda = new NpgsqlDataAdapter(cmd);
  38. DataSet dataSet = new DataSet();
  39. sda.Fill(dataSet, "table");
  40. conn.Close();
  41. return dataSet.Tables[0];
  42. }
  43. public int Execute(string sql, NpgsqlConnection conn)
  44. {
  45. conn.Open();
  46. var i = 0;
  47. try
  48. {
  49. NpgsqlCommand cmd = new NpgsqlCommand(sql, conn);
  50. i = cmd.ExecuteNonQuery();
  51. }
  52. catch (Exception e)
  53. {
  54. Console.WriteLine(e);
  55. SaveLog(e.ToString() + "/n SQL:" + sql, 1);
  56. }
  57. conn.Close();
  58. return i;
  59. }
  60. public string MaskPhoneNumber(string phoneNumber)
  61. {
  62. if (String.IsNullOrEmpty(phoneNumber)) return "";
  63. Regex regex = new Regex(@"(\d{3})(\d{4})(\d{4})");
  64. Match match = regex.Match(phoneNumber);
  65. if (!match.Success || match.Groups.Count != 4) return phoneNumber;
  66. string frontCode = match.Groups[1].Value;
  67. string areaCode = match.Groups[2].Value;
  68. string prefixAndSuffix = match.Groups[3].Value;
  69. string maskedAreaCode = String.Join("", Enumerable.Repeat('*', areaCode.Length));
  70. string maskedPrefixAndSuffix = String.Join("", Enumerable.Repeat('*', prefixAndSuffix.Length - 4).Concat(prefixAndSuffix.Substring(prefixAndSuffix.Length - 4)));
  71. return $"{frontCode}{maskedAreaCode}{maskedPrefixAndSuffix}";
  72. }
  73. public void SaveLog(string LogMessage, int Level, string PreLogDir = "")
  74. {
  75. int LogLevel = 0;
  76. int.TryParse(ConfigurationManager.AppSettings["LogLevel"], out LogLevel);
  77. if (Level <= LogLevel)
  78. {
  79. try
  80. {
  81. string dirpath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\" + PreLogDir + "log";
  82. if (!Directory.Exists(dirpath))
  83. {
  84. Directory.CreateDirectory(dirpath);
  85. }
  86. if (File.Exists(dirpath + "\\log.txt") && new FileInfo(dirpath + "\\log.txt").Length > 512 * 1024)
  87. {
  88. File.Move(dirpath + "\\log.txt", dirpath + "\\log" + DateTime.Now.ToString("yyyy-MM-ddHHmmssfff") + ".txt");
  89. }
  90. foreach (string LogFile in Directory.GetFiles(dirpath, "*.txt"))
  91. {
  92. if (File.GetLastWriteTime(LogFile) < DateTime.Now.AddDays(-3))
  93. {
  94. File.Delete(LogFile);
  95. }
  96. }
  97. File.AppendAllText(dirpath + "\\log.txt", DateTime.Now.ToString("yyyy-MM-ddHHmmssfff") + "_" + LogMessage);
  98. File.AppendAllText(dirpath + "\\log.txt", "\r\n");
  99. }
  100. catch { }
  101. }
  102. }
  103. }
  104. }