UesrServer.cs 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Data.SqlClient;
  7. using System.Data;
  8. using System.Configuration;
  9. using Newtonsoft.Json;
  10. namespace ConsoleDataSync
  11. {
  12. public class UesrServer
  13. {
  14. public static void Main(string[] args)
  15. {
  16. string sendTableName = "SMSHasSend_" + DateTime.Now.ToString("yyyyMM");
  17. string recvTableName = "SMSHasReceived_" + DateTime.Now.ToString("yyyyMM");
  18. DataProvider.E(cmd =>
  19. {
  20. cmd.CommandText = "IF OBJECT_ID(N'" + sendTableName + "',N'U') IS NULL SELECT * INTO " + sendTableName + " FROM SMSHasSend " + "ELSE DELETE FROM " + sendTableName;
  21. cmd.ExecuteNonQuery();
  22. });
  23. DataProvider.E(cmd =>
  24. {
  25. cmd.CommandText = "IF OBJECT_ID(N'" + recvTableName + "',N'U') IS NULL SELECT * INTO " + recvTableName + " FROM SMSHasReceived " + "ELSE DELETE FROM " + recvTableName;
  26. cmd.ExecuteNonQuery();
  27. });
  28. DataProvider.E(cmd =>
  29. {
  30. cmd.CommandText = "DELETE FROM USERS";
  31. cmd.ExecuteNonQuery();
  32. });
  33. string[] sources = JsonConvert.DeserializeObject<string[]>(ConfigurationManager.AppSettings["user-sources"]);
  34. foreach(string s in sources)
  35. {
  36. using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings[s].ConnectionString))
  37. {
  38. try
  39. {
  40. connection.Open();
  41. DataSet ds = new DataSet();
  42. SqlDataAdapter command = new SqlDataAdapter("SELECT * FROM USERS", connection);
  43. command.Fill(ds, "Users");
  44. DataProvider.Insert("Users", ds.Tables[0], ds.Tables[0].Rows.Count);
  45. }
  46. catch (SqlException ex)
  47. {
  48. throw new Exception(ex.Message);
  49. }
  50. }
  51. }
  52. sources = JsonConvert.DeserializeObject<string[]>(ConfigurationManager.AppSettings["sms-sources"]);
  53. foreach (string s in sources)
  54. {
  55. using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings[s].ConnectionString))
  56. {
  57. try
  58. {
  59. connection.Open();
  60. SqlDataAdapter command;
  61. DataSet sendMsgs = new DataSet();
  62. command = new SqlDataAdapter("IF OBJECT_ID(N'" + sendTableName + "', N'U') IS NOT NULL SELECT * FROM " + sendTableName, connection);
  63. command.Fill(sendMsgs, sendTableName);
  64. if (sendMsgs.Tables.Count > 0)
  65. DataProvider.Insert(sendTableName, sendMsgs.Tables[0], sendMsgs.Tables[0].Rows.Count);
  66. DataSet recvMsgs = new DataSet();
  67. command = new SqlDataAdapter("IF OBJECT_ID(N'" + recvTableName + "', N'U') IS NOT NULL SELECT * FROM " + recvTableName, connection);
  68. command.Fill(recvMsgs, recvTableName);
  69. if (recvMsgs.Tables.Count > 0)
  70. DataProvider.Insert(recvTableName, recvMsgs.Tables[0], recvMsgs.Tables[0].Rows.Count);
  71. }
  72. catch (SqlException ex)
  73. {
  74. throw new Exception(ex.Message);
  75. }
  76. }
  77. }
  78. }
  79. }
  80. }