Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.85 KB | None | 0 0
  1. public interface IDbParser
  2. {
  3. IDbConnection GetDbConnection(string ServerName, string DbPortNumber, string Username, string Password, string DatabaseName);
  4. IDbCommand GetDbCommand(string query, IDbConnection sqlConnection);
  5. IDataParameter CreateParameter(string key, object value);
  6. string GetDbQuery(DbQueries query);
  7. }
  8.  
  9. public class OracleParser : IDbParser
  10. {
  11. #region >>> Queries
  12. private string SELECTGROUPSESSIONS = "....";
  13. ........
  14. #endregion
  15.  
  16. public IDbCommand GetDbCommand(string query, IDbConnection sqlConnection)
  17. {
  18. var command = new OracleCommand();
  19. command.CommandText = query;
  20. command.Connection = (OracleConnection)sqlConnection;
  21. command.CommandType = CommandType.Text;
  22. command.CommandTimeout = 300;
  23. return command;
  24. }
  25.  
  26. public IDataParameter CreateParameter(string key, object value)
  27. {
  28. return new OracleParameter(key, value);
  29. }
  30.  
  31. public IDbConnection GetDbConnection(string ServerName, string DbPortNumber, string Username, string Password, string DatabaseName)
  32. {
  33. connString = String.Format("Data Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP)(HOST={0})(PORT={1})))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME={2}))); Connection Timeout=60; User Id={3};Password={4};",
  34. ServerName, DbPortNumber, DatabaseName, Username, Password);
  35. return new OracleConnection(connString);
  36. }
  37.  
  38. public string GetDbQuery(DbQueries query)
  39. {
  40. switch (query)
  41. {
  42. case DbQueries.SELECTGROUPSESSIONS:
  43. return SELECTGROUPSESSIONS;
  44. ................
  45. ..............
  46. default:
  47. return String.Empty;
  48. }
  49. }
  50. }
  51.  
  52. public class PostgresParser : IDbParser
  53. {
  54. #region >>> Queries
  55. private string SELECTGROUPSESSIONS = "....";
  56. ........
  57. #endregion
  58.  
  59. public IDbCommand GetDbCommand(string query, IDbConnection sqlConnection)
  60. {
  61. var command = new NpgsqlCommand();
  62. command.CommandText = query;
  63. command.Connection = (NpgsqlConnection)sqlConnection;
  64. command.CommandType = CommandType.Text;
  65. return command;
  66. }
  67.  
  68. public IDataParameter CreateParameter(string key, object value)
  69. {
  70. return new NpgsqlParameter(key, value);
  71. }
  72.  
  73. public IDbConnection GetDbConnection(string ServerName, string DbPortNumber, string Username, string Password, string DatabaseName)
  74. {
  75. string connString = String.Format("Server={0};Port={1};Timeout=60;CommandTimeout=300;" +
  76. "User Id={2};Password={3};Database={4};",
  77. ServerName, DbPortNumber, Username, Password, DatabaseName);
  78. return new NpgsqlConnection(connString);
  79. }
  80.  
  81.  
  82. public string GetDbQuery(DbQueries query)
  83. {
  84. switch (query)
  85. {
  86. case DbQueries.SELECTGROUPSESSIONS:
  87. return SELECTGROUPSESSIONS;
  88. ................
  89. ..............
  90. default:
  91. return String.Empty;
  92. }
  93. }
  94. }
  95.  
  96. public class DatabaseParserFactory
  97. {
  98. public static IDbParser GetDbParser(string dbType)
  99. {
  100. CUCMDbType dbTypeName;
  101. Enum.TryParse(dbType.ToLower(), out dbTypeName);
  102. switch (dbTypeName)
  103. {
  104. case CUCMDbType.oracle:
  105. return new OracleParser();
  106. case CUCMDbType.postgres:
  107. return new PostgresParser();
  108. default:
  109. return new PostgresParser();
  110. }
  111. }
  112. }
  113.  
  114. public void Query(string queryStatement, DbParameterColl parameters, Action<IDataReader> processReader)
  115. {
  116. using (SqlConnection)
  117. {
  118. IDbCommand selectCommand = null;
  119. selectCommand = _factory.GetDbCommand(queryStatement, SqlConnection);
  120. selectCommand.Parameters.Clear();
  121.  
  122. using (selectCommand)
  123. {
  124. if (parameters != null)
  125. {
  126. foreach (var param in parameters)
  127. {
  128. selectCommand.Parameters.Add(_factory.CreateParameter(param.Key, param.Value));
  129. }
  130. }
  131.  
  132. try
  133. {
  134. using (var reader = selectCommand.ExecuteReader())
  135. {
  136. processReader(reader);
  137. }
  138.  
  139. }
  140. catch (Exception ex)
  141. {
  142. Logger.DebugFormat("Unable to execute the query. Query : {0} . Exception: {1}", queryStatement, ex);
  143. Debug.WriteLine("nn>> Error on executing reader. Exception :n " + ex);
  144. }
  145. }
  146. }
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement