diff --git a/root/ContrattoSEI/GestoreTrimestrale_branch_applyingMVVM/CONFIG b/root/ContrattoSEI/GestoreTrimestrale_branch_applyingMVVM/CONFIG index 2e3639d..81d1dd9 100644 --- a/root/ContrattoSEI/GestoreTrimestrale_branch_applyingMVVM/CONFIG +++ b/root/ContrattoSEI/GestoreTrimestrale_branch_applyingMVVM/CONFIG @@ -4,7 +4,7 @@ sqlcommandtimeout=200 ! ambiente {SVILUPPO, TEST, COLLAUDO, PRODUZIONE} - ambiente=PRODUZIONE + ambiente=SVILUPPO ! Licenza DynamicPDF licenza=MER50NESAOENJBo5BnJKfSZXJj/qdgajtuOAxakMA4HW7vmqjo4/RyQDP2DdxyHzZLmu8zCtUkxdEgp58zADbGe4FYS7SC83+vvg diff --git a/root/ContrattoSEI/GestoreTrimestrale_branch_applyingMVVM/NLog.config b/root/ContrattoSEI/GestoreTrimestrale_branch_applyingMVVM/NLog.config index 8c6a8fb..86068d5 100644 --- a/root/ContrattoSEI/GestoreTrimestrale_branch_applyingMVVM/NLog.config +++ b/root/ContrattoSEI/GestoreTrimestrale_branch_applyingMVVM/NLog.config @@ -27,6 +27,6 @@ - + \ No newline at end of file diff --git a/root/Shared/DataAccessLayer/DataAccess.cs b/root/Shared/DataAccessLayer/DataAccess.cs index 3eba634..905b926 100644 --- a/root/Shared/DataAccessLayer/DataAccess.cs +++ b/root/Shared/DataAccessLayer/DataAccess.cs @@ -19,6 +19,7 @@ namespace DataAccessLayer { public class DataAccess { + public static DataTable ExecuteDataTableStoredProcedure(DBProvider _dbprovider, string nomeStoredProcedure, List paramList) { Database db = GetDatabaseObject(_dbprovider); @@ -32,12 +33,15 @@ namespace DataAccessLayer } try { - return db.ExecuteDataSet(comm).Tables[0]; + SqlLogging.LogStoredProcedureStart(nomeStoredProcedure, paramList); + var result = db.ExecuteDataSet(comm).Tables[0]; + SqlLogging.LogStoredProcedureSuccess(nomeStoredProcedure, result.Rows.Count); + return result; } catch (Exception ex) { + SqlLogging.LogStoredProcedureError(nomeStoredProcedure, ex, paramList); DataBaseException ecc = new DataBaseException(ex, db.ConnectionStringWithoutCredentials, nomeStoredProcedure, paramList); - logger.Error(ex); throw ecc; } } @@ -70,7 +74,7 @@ namespace DataAccessLayer //logger.Error(db.ConnectionStringWithoutCredentials); //logger.Error(nomeStoredProcedure); DataBaseException ecc = new DataBaseException(ex, db.ConnectionStringWithoutCredentials, nomeStoredProcedure, paramList); - logger.Errors(ex); + SqlLogging.LogErrors(ex); throw ecc; } } @@ -98,7 +102,7 @@ namespace DataAccessLayer catch (Exception ex) { DataBaseException ecc = new DataBaseException(ex, db.ConnectionStringWithoutCredentials, nomeStoredProcedure, paramList); - logger.Errors(ex); + SqlLogging.LogErrors(ex); throw ecc; } } @@ -151,7 +155,7 @@ namespace DataAccessLayer { transaction.Rollback(); - logger.Errors(ex); + SqlLogging.LogErrors(ex); //throw new DataBaseException(ex, db.ConnectionStringWithoutCredentials, nomeStoredProcedure, paramList); return ritorno; } diff --git a/root/Shared/DataAccessLayer/DataAccessCE.cs b/root/Shared/DataAccessLayer/DataAccessCE.cs deleted file mode 100644 index 7f67a29..0000000 --- a/root/Shared/DataAccessLayer/DataAccessCE.cs +++ /dev/null @@ -1,271 +0,0 @@ -using System; -using System.Data; -using System.Data.OracleClient; -using System.Data.Common; -using System.Collections.Generic; -using Microsoft.Practices.EnterpriseLibrary.Data; -using Microsoft.Practices.EnterpriseLibrary.Data.Oracle; -using Microsoft.Practices.EnterpriseLibrary.Data.Sql; - -/* -namespace DataAccessLayer -{ - /// - /// DataAccess costruito solo per ConsulenzaEvoluta. A differenza degli altri DB quello di CE è stato impostato con IsolationLevel = Snapshot. - /// - public class DataAccessCE - { - /// - /// Ritorna un DataTable lanciando la stored con i parametri passati in input sul database di ConsulenzaEvoluta. - /// IsolationLevel impostato a Snapshot - /// - /// - /// - /// - /// - public static DataTable ExecuteDataTableStoredProcedure(DBProvider _dbprovider, string nomeStoredProcedure, List paramList) - { - // The DataTable to be ret urned - Database db = GetDatabaseObject(_dbprovider); - - using (DbConnection connection = db.CreateConnection()) - { - connection.Open(); - DbTransaction transaction = connection.BeginTransaction(IsolationLevel.Snapshot); - try - { - // Execute the command making sure the connection gets closed in the end - DbCommand comm = db.GetStoredProcCommand(nomeStoredProcedure); - comm.CommandType = CommandType.StoredProcedure; - - if (paramList != null) - { - foreach (Parametro param in paramList) - db.AddParameter(comm, param.ParameterName, param.DbType, param.Direction, param.SourceColumn, param.SourceVersion, param.Value); - } - - DataTable table = db.ExecuteDataSet(comm, transaction).Tables[0]; - table.TableName = "TABLENAME"; - return table; - - } - catch (Exception ex) - { - throw new DataBaseException(ex, db.ConnectionStringWithoutCredentials, nomeStoredProcedure, paramList); - } - finally - { - connection.Close(); - } - } - } - - /// - /// Ritorna un DataSet lanciando la stored con i parametri passati in input sul database di ConsulenzaEvoluta. - /// IsolationLevel impostato a Snapshot - /// - /// - /// - /// - /// - public static DataSet ExecuteDataSetStoredProcedure(DBProvider _dbprovider, string nomeStoredProcedure, List paramList) - { - Database db = GetDatabaseObject(_dbprovider); - - using (DbConnection connection = db.CreateConnection()) - { - connection.Open(); - DbTransaction transaction = connection.BeginTransaction(IsolationLevel.Snapshot); - try - { - // Execute the command making sure the connection gets closed in the end - DbCommand comm = db.GetStoredProcCommand(nomeStoredProcedure); - comm.CommandType = CommandType.StoredProcedure; - - if (paramList != null) - { - foreach (Parametro param in paramList) - db.AddParameter(comm, param.ParameterName, param.DbType, param.Direction, param.SourceColumn, param.SourceVersion, param.Value); - } - - // Execute the command making sure the connection gets closed in the end - return db.ExecuteDataSet(comm, transaction); - } - catch (Exception ex) - { - throw new DataBaseException(ex, db.ConnectionStringWithoutCredentials, nomeStoredProcedure, paramList); - } - finally - { - connection.Close(); - } - } - } - - /// - /// Recupera un valore intero eseguendo la stored con i parametri passati in input sul database di ConsulenzaEvoluta. - /// IsolationLevel impostato a Snapshot - /// - /// - /// - /// - /// - public static object ExecuteScalarStoredProcedure(DBProvider _dbprovider, string nomeStoredProcedure, List paramList) - { - Database db = GetDatabaseObject(_dbprovider); - - using (DbConnection connection = db.CreateConnection()) - { - connection.Open(); - DbTransaction transaction = connection.BeginTransaction(IsolationLevel.Snapshot); - try - { - DbCommand comm = db.GetStoredProcCommand(nomeStoredProcedure); - if (paramList != null) - { - foreach (Parametro param in paramList) - db.AddParameter(comm, param.ParameterName, param.DbType, param.Direction, param.SourceColumn, param.SourceVersion, param.Value); - } - - return db.ExecuteScalar(comm, transaction); - } - catch (Exception ex) - { - throw new DataBaseException(ex, db.ConnectionStringWithoutCredentials, nomeStoredProcedure, paramList); - } - finally - { - connection.Close(); - } - - } - } - - /// - /// Esegue gli statement sul database di ConsulenzaEvoluta aggiunti alla collezione listaSqlStatement in modalità transazionale. - /// IsolationLevel impostato a Snapshot - /// - /// - /// - /// - public static bool ExecuteNonQueryMultipleTransaction(DBProvider _dbprovider, List _transactionStatement) - { - bool result = true; - string _sqlstatement = ""; - List _paramlist = null; - DbCommand command = null; - // The DataTable to be ret urned - Database db = GetDatabaseObject(_dbprovider); - - using (DbConnection connection = db.CreateConnection()) - { - connection.Open(); - DbTransaction transaction = connection.BeginTransaction(IsolationLevel.Snapshot); - - try - { - foreach (TransactionStatement _trans in _transactionStatement) - { - _sqlstatement = _trans.SqlStatement; - _paramlist = _trans.ListaParametro; - // Esegue la transazione. - - if (_trans.StatementType == CommandType.Text) - command = db.GetSqlStringCommand(_trans.SqlStatement); - else if (_trans.StatementType == CommandType.StoredProcedure) - command = db.GetStoredProcCommand(_trans.SqlStatement); - - foreach (Parametro param in _trans.ListaParametro) - db.AddParameter(command, param.ParameterName, param.DbType, param.Direction, param.SourceColumn, param.SourceVersion, param.Value); - - db.ExecuteNonQuery(command, transaction); - } - // Commit the transaction. - transaction.Commit(); - } - catch (Exception ex) - { - // Roll back the transaction. - transaction.Rollback(); - throw new DataBaseException(ex, db.ConnectionStringWithoutCredentials, _sqlstatement, _paramlist); - } - finally - { - connection.Close(); - } - } - - return result; - - } - - /// - /// Esegue la stored con i parametri passati in input sul database di ConsulenzaEvoluta. - /// IsolationLevel impostato a Snapshot - /// - /// - /// - /// - /// - public static int ExecuteNonQueryStoredProcedure(DBProvider _dbprovider, string nomeStoredProcedure, List paramList) - { - Database db = GetDatabaseObject(_dbprovider); - - int ritorno = -1; - - using (DbConnection connection = db.CreateConnection()) - { - connection.Open(); - DbTransaction transaction = connection.BeginTransaction(IsolationLevel.Snapshot); - try - { - // Execute the command making sure the connection gets closed in the end - DbCommand comm = db.GetStoredProcCommand(nomeStoredProcedure); - if (paramList != null) - { - foreach (Parametro param in paramList) - db.AddParameter(comm, param.ParameterName, param.DbType, param.Direction, param.SourceColumn, param.SourceVersion, param.Value); - } - - Parametro returnParam = new Parametro(); - returnParam.ParameterName = "RETURN"; - returnParam.DbType = DbType.Int32; - returnParam.Direction = ParameterDirection.ReturnValue; - returnParam.Value = -1; - - db.AddParameter(comm, returnParam.ParameterName, returnParam.DbType, returnParam.Direction, returnParam.SourceColumn, returnParam.SourceVersion, returnParam.Value); - - ritorno = db.ExecuteNonQuery(comm, transaction); - ritorno = (Int32)comm.Parameters["@RETURN"].Value; - - //Commit the transaction - transaction.Commit(); - return ritorno; - } - catch (DataBaseException ex) - { - //Roll back the transaction. - transaction.Rollback(); - throw new DataBaseException(ex, db.ConnectionStringWithoutCredentials, nomeStoredProcedure, paramList); - } - finally - { - connection.Close(); - } - } - } - - /// - /// Recupera la stringa di connessione per il database di ConsulenzaEvoluta - /// - /// - /// - private static Database GetDatabaseObject(DBProvider _dbprovider) - { - string connstring = WebConfigParameter.getConnectionString("SqlServerConsulenzaEvolutaConnection"); - return new SqlDatabase(connstring); - } - } - -} -*/ \ No newline at end of file diff --git a/root/Shared/DataAccessLayer/DataAccessDE.cs b/root/Shared/DataAccessLayer/DataAccessDE.cs deleted file mode 100644 index 1159362..0000000 --- a/root/Shared/DataAccessLayer/DataAccessDE.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using System.Data.OracleClient; -using System.Data.Common; -using System.Collections.Generic; -using System.Linq; -using Microsoft.Practices.EnterpriseLibrary.Data; -using Microsoft.Practices.EnterpriseLibrary.Data.Oracle; -using Microsoft.Practices.EnterpriseLibrary.Data.Sql; -using System.Collections.Concurrent; -using System.Configuration; -using NLog; - -namespace DataAccessLayer -{ - -} - diff --git a/root/Shared/DataAccessLayer/DataAccessLayer.csproj b/root/Shared/DataAccessLayer/DataAccessLayer.csproj index ee40a8e..7be3832 100644 --- a/root/Shared/DataAccessLayer/DataAccessLayer.csproj +++ b/root/Shared/DataAccessLayer/DataAccessLayer.csproj @@ -105,6 +105,7 @@ + diff --git a/root/Shared/DataAccessLayer/NLog.config b/root/Shared/DataAccessLayer/NLog.config new file mode 100644 index 0000000..86068d5 --- /dev/null +++ b/root/Shared/DataAccessLayer/NLog.config @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/root/Shared/DataAccessLayer/SqlCommandExtensions.cs b/root/Shared/DataAccessLayer/SqlCommandExtensions.cs deleted file mode 100644 index 816bcf0..0000000 --- a/root/Shared/DataAccessLayer/SqlCommandExtensions.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Data.SqlClient; - -namespace DataAccessLayer -{ - public static class SqlCommandExtensions - { - public static int ExecuteNonQueryWithLogging(this SqlCommand command) - { - var startTime = DateTime.Now; - var result = command.ExecuteNonQuery(); - var executionTime = (long)(DateTime.Now - startTime).TotalMilliseconds; - SqlLogging.LogCommand(command, executionTime); - return result; - } - - public static SqlDataReader ExecuteReaderWithLogging(this SqlCommand command) - { - var startTime = DateTime.Now; - var result = command.ExecuteReader(); - var executionTime = (long)(DateTime.Now - startTime).TotalMilliseconds; - SqlLogging.LogCommand(command, executionTime); - return result; - } - - public static object ExecuteScalarWithLogging(this SqlCommand command) - { - var startTime = DateTime.Now; - var result = command.ExecuteScalar(); - var executionTime = (long)(DateTime.Now - startTime).TotalMilliseconds; - SqlLogging.LogCommand(command, executionTime); - return result; - } - } -} diff --git a/root/Shared/DataAccessLayer/SqlLogging.cs b/root/Shared/DataAccessLayer/SqlLogging.cs index 70049ae..e193716 100644 --- a/root/Shared/DataAccessLayer/SqlLogging.cs +++ b/root/Shared/DataAccessLayer/SqlLogging.cs @@ -1,128 +1,87 @@ using System; -using System.Data.SqlClient; -using System.Linq; -using System.Text; using System.Collections.Generic; -using System.Configuration; +using System.Data.Common; +using System.Linq; +using NLog; +using System.Text; namespace DataAccessLayer { public static class SqlLogging { - private static readonly string ConnectionString; - private static readonly object lockObj = new object(); + private static readonly ILogger Logger = LogManager.GetCurrentClassLogger(); - static SqlLogging() + public static void LogSqlStart(string sql, Dictionary parameters = null) { - ConnectionString = ConfigurationManager.ConnectionStrings["SqlServerStampeC6Connection"]?.ConnectionString; - if (string.IsNullOrEmpty(ConnectionString)) + var sb = new StringBuilder(); + sb.AppendLine($"Executing SQL: {sql}"); + + if (parameters != null && parameters.Any()) { - throw new ConfigurationErrorsException("SqlServerStampeC6Connection connection string not found in configuration."); + sb.AppendLine("Parameters:"); + foreach (var param in parameters) + { + sb.AppendLine($" @{param.Key} = {param.Value ?? "null"}"); + } + } + + Logger.Debug(sb.ToString()); + } + + public static void LogSqlError(string sql, Exception ex, Dictionary parameters = null) + { + var sb = new StringBuilder(); + sb.AppendLine($"SQL Error in query: {sql}"); + + if (parameters != null && parameters.Any()) + { + sb.AppendLine("Parameters:"); + foreach (var param in parameters) + { + sb.AppendLine($" @{param.Key} = {param.Value ?? "null"}"); + } + } + + Logger.Error(ex, sb.ToString()); + } + + public static void LogStoredProcedureStart(string procedureName, List parameters = null) + { + Logger.Debug($"Executing stored procedure: {procedureName}"); + if (parameters != null) + { + foreach (var param in parameters) + { + Logger.Debug($" Parameter: {param.ParameterName} = {param.Value ?? "null"}"); + } } } - private static void WriteToLogN(string level, string message, string logger, string callSite, string exception = null) + public static void LogStoredProcedureSuccess(string procedureName, int rowCount = 0) { - try - { - using (var conn = new SqlConnection(ConnectionString)) - using (var cmd = conn.CreateCommand()) - { - conn.Open(); - cmd.CommandText = @"INSERT INTO [dbo].LogN ([Logged], [Level], [Message], [Logger], [CallSite], [Exception], [Application]) - VALUES (GETDATE(), @level, @message, @logger, @callSite, @exception, @application)"; - - cmd.Parameters.AddWithValue("@level", level); - cmd.Parameters.AddWithValue("@message", message); - cmd.Parameters.AddWithValue("@logger", logger); - cmd.Parameters.AddWithValue("@callSite", callSite); - cmd.Parameters.AddWithValue("@exception", (object)exception ?? DBNull.Value); - cmd.Parameters.AddWithValue("@application", "SqlLogging"); + Logger.Debug($"Stored procedure {procedureName} executed successfully. Rows affected/returned: {rowCount}"); + } - cmd.ExecuteNonQuery(); - } - } - catch (Exception ex) + public static void LogStoredProcedureError(string procedureName, Exception ex, List parameters = null) + { + Logger.Error(ex, $"Error executing stored procedure {procedureName}"); + if (parameters != null) { - System.Diagnostics.Debug.WriteLine($"Error writing to LogN: {ex.Message}"); + foreach (var param in parameters) + { + Logger.Error($" Parameter: {param.ParameterName} = {param.Value ?? "null"}"); + } } } - public static void LogStoredProcedure(string spName, Dictionary parameters = null, long executionTimeMs = 0) + public static void LogError(Exception ex) { - try - { - var logBuilder = new StringBuilder(); - logBuilder.AppendLine($"STORED PROCEDURE"); - logBuilder.AppendLine($"Name: {spName}"); - - if (parameters != null && parameters.Count > 0) - { - logBuilder.AppendLine("Parameters:"); - foreach (var param in parameters) - { - var value = param.Value == DBNull.Value ? "NULL" : param.Value?.ToString() ?? "NULL"; - logBuilder.AppendLine($"\t@{param.Key}: {value}"); - } - } - - logBuilder.AppendLine($"Execution Time: {executionTimeMs}ms"); - - WriteToLogN( - "Info", - logBuilder.ToString(), - "SqlLogging", - $"LogStoredProcedure({spName})" - ); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Error logging stored procedure: {ex.Message}"); - WriteToLogN("Error", ex.Message, "SqlLogging", "LogStoredProcedure", ex.ToString()); - } + Logger.Error(ex); } - public static void LogCommand(SqlCommand command, long executionTimeMs = 0) + public static void LogErrors(Exception ex) { - try - { - var logBuilder = new StringBuilder(); - logBuilder.AppendLine($"Command Type: {command.CommandType}"); - - if (command.CommandType == System.Data.CommandType.StoredProcedure) - { - logBuilder.AppendLine($"Stored Procedure Name: {command.CommandText}"); - } - else - { - logBuilder.AppendLine($"Command Text: {command.CommandText}"); - } - - if (command.Parameters.Count > 0) - { - logBuilder.AppendLine("Parameters:"); - foreach (SqlParameter param in command.Parameters) - { - var value = param.Value == DBNull.Value ? "NULL" : param.Value?.ToString() ?? "NULL"; - logBuilder.AppendLine($"\t{param.ParameterName} ({param.SqlDbType}): {value}"); - } - } - - logBuilder.AppendLine($"Execution Time: {executionTimeMs}ms"); - - WriteToLogN( - "Info", - logBuilder.ToString(), - "SqlLogging", - $"LogCommand({command.CommandType})" - ); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Error logging SQL command: {ex.Message}"); - WriteToLogN("Error", ex.Message, "SqlLogging", "LogCommand", ex.ToString()); - } + Logger.Error(ex); } } - } diff --git a/root/Shared/DataAccessLayer/SqlServer.cs b/root/Shared/DataAccessLayer/SqlServer.cs index 636c82c..a056fc9 100644 --- a/root/Shared/DataAccessLayer/SqlServer.cs +++ b/root/Shared/DataAccessLayer/SqlServer.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Text; using System.Data.SqlClient; using System.IO; @@ -131,8 +131,7 @@ namespace DataAccessLayer public DataTable executeQuery(string Sql, List Params = null, string nomedt = "data", CommandType TipoEsecuzione = CommandType.Text) { - if (!string.IsNullOrEmpty(talking_code)) - logger.Debugs(talking_code + ":" + Sql); + SqlLogging.LogSqlStart(Sql, Params?.ToDictionary(p => p.ParameterName, p => p.Value)); DataTable result = null; @@ -170,6 +169,7 @@ namespace DataAccessLayer } catch (Exception ex) { + SqlLogging.LogSqlError(Sql, ex, Params?.ToDictionary(p => p.ParameterName, p => p.Value)); SqlException = ex; } finally @@ -188,6 +188,7 @@ namespace DataAccessLayer } catch (Exception ex) { + SqlLogging.LogSqlError(Sql, ex, Params?.ToDictionary(p => p.ParameterName, p => p.Value)); SqlException = ex; } } @@ -197,8 +198,7 @@ namespace DataAccessLayer public DataSet executeProcedure(string Sql, List Params, string nomeds = "data") { - if (!string.IsNullOrEmpty(talking_code)) - logger.Debugs(talking_code + ":" + Sql); + SqlLogging.LogSqlStart(Sql, Params?.ToDictionary(p => p.ParameterName, p => p.Value)); DataSet result = null; try @@ -233,6 +233,7 @@ namespace DataAccessLayer } catch (Exception ex) { + SqlLogging.LogSqlError(Sql, ex, Params?.ToDictionary(p => p.ParameterName, p => p.Value)); SqlException = ex; } finally @@ -251,6 +252,7 @@ namespace DataAccessLayer } catch (Exception ex) { + SqlLogging.LogSqlError(Sql, ex, Params?.ToDictionary(p => p.ParameterName, p => p.Value)); SqlException = ex; } return result; @@ -258,8 +260,7 @@ namespace DataAccessLayer public DataTable GetDataTableFromProcedure(string Sql, List Params = null, string nomedt = "data") { - if (!string.IsNullOrEmpty(talking_code)) - logger.Debugs(talking_code + ":" + Sql); + SqlLogging.LogSqlStart(Sql, Params?.ToDictionary(p => p.ParameterName, p => p.Value)); DataTable result = null; try @@ -294,6 +295,7 @@ namespace DataAccessLayer } catch (Exception et) { + SqlLogging.LogSqlError(Sql, et, Params?.ToDictionary(p => p.ParameterName, p => p.Value)); SqlException = et; } finally @@ -309,6 +311,7 @@ namespace DataAccessLayer } catch (Exception ex) { + SqlLogging.LogSqlError(Sql, ex, Params?.ToDictionary(p => p.ParameterName, p => p.Value)); SqlException = ex; } return result; @@ -326,8 +329,7 @@ namespace DataAccessLayer public object executeScalar(string Sql, List Params = null, CommandType cmdtype = CommandType.StoredProcedure) { - if (!string.IsNullOrEmpty(talking_code)) - logger.Debugs(talking_code + ":" + Sql); + SqlLogging.LogSqlStart(Sql, Params?.ToDictionary(p => p.ParameterName, p => p.Value)); object result = null; try @@ -355,6 +357,7 @@ namespace DataAccessLayer } catch (Exception ex) { + SqlLogging.LogSqlError(Sql, ex, Params?.ToDictionary(p => p.ParameterName, p => p.Value)); SqlException = ex; } finally @@ -369,6 +372,7 @@ namespace DataAccessLayer } catch (Exception ex) { + SqlLogging.LogSqlError(Sql, ex, Params?.ToDictionary(p => p.ParameterName, p => p.Value)); SqlException = ex; } @@ -377,8 +381,7 @@ namespace DataAccessLayer public object executeScalarWT(string Sql, List Params = null) { - if (!string.IsNullOrEmpty(talking_code)) - logger.Debugs(talking_code + ":" + Sql); + SqlLogging.LogSqlStart(Sql, Params?.ToDictionary(p => p.ParameterName, p => p.Value)); object result = null; try @@ -406,6 +409,7 @@ namespace DataAccessLayer } catch (Exception ex) { + SqlLogging.LogSqlError(Sql, ex, Params?.ToDictionary(p => p.ParameterName, p => p.Value)); SqlException = ex; } finally @@ -422,6 +426,7 @@ namespace DataAccessLayer } catch (Exception ex) { + SqlLogging.LogSqlError(Sql, ex, Params?.ToDictionary(p => p.ParameterName, p => p.Value)); SqlException = ex; } @@ -430,8 +435,7 @@ namespace DataAccessLayer public Int32 executeNonQueryWT(string Sql, List Params = null, CommandType TipoEsecuzione = CommandType.StoredProcedure) { - if (!string.IsNullOrEmpty(talking_code)) - logger.Debugs(talking_code + ":" + Sql); + SqlLogging.LogSqlStart(Sql, Params?.ToDictionary(p => p.ParameterName, p => p.Value)); Int32 result = 0;