示例#1
0
 private void UseConnections(Action <NpgsqlConnection, PostgreSqlConnection> action)
 {
     using (var sqlConnection = ConnectionUtils.CreateConnection())
         using (var connection = new PostgreSqlConnection(sqlConnection, _providers, _options))
         {
             action(sqlConnection, connection);
         }
 }
示例#2
0
 private void UseConnection(Action <PostgreSqlConnection> action)
 {
     using (var connection = new PostgreSqlConnection(
                ConnectionUtils.CreateConnection(),
                _providers))
     {
         action(connection);
     }
 }
		public void Dispose_DoesNotDisposeTheConnection_IfNotOwned()
		{
			using (var sqlConnection = ConnectionUtils.CreateConnection())
			{
				var connection = new PostgreSqlConnection(sqlConnection, _providers, ownsConnection: false, options: _options);

				connection.Dispose();

				Assert.Equal(ConnectionState.Open, sqlConnection.State);
			}
		}
		public void Dispose_DisposesTheConnection_IfOwned()
		{
			using (var sqlConnection = ConnectionUtils.CreateConnection())
			{
				var connection = new PostgreSqlConnection(sqlConnection, _providers, _options);

				connection.Dispose();

				Assert.Equal(ConnectionState.Closed, sqlConnection.State);
			}
		}
示例#5
0
        public void Dispose_DoesNotDisposeTheConnection_IfNotOwned()
        {
            using (var sqlConnection = ConnectionUtils.CreateConnection())
            {
                var connection = new PostgreSqlConnection(sqlConnection, _providers, ownsConnection: false, options: _options);

                connection.Dispose();

                Assert.Equal(ConnectionState.Open, sqlConnection.State);
            }
        }
示例#6
0
        public void Dispose_DisposesTheConnection_IfOwned()
        {
            using (var sqlConnection = ConnectionUtils.CreateConnection())
            {
                var connection = new PostgreSqlConnection(sqlConnection, _providers, _options);

                connection.Dispose();

                Assert.Equal(ConnectionState.Closed, sqlConnection.State);
            }
        }
示例#7
0
        /// <summary>
        /// this function will log a given action
        /// </summary>
        /// <param name="Action">the given action</param>
        /// <param name="connection">the open connection received from the caller</param>
        public static void LogAction(String Action, PostgreSqlConnection connection)
        {
            String          QueryCommand   = "INSERT INTO log.log_actiuni(actiune) VALUES(:p_action)";
            NpgsqlParameter QueryParameter = new NpgsqlParameter("p_action", Action);

            if (!(connection.connection.State == System.Data.ConnectionState.Open) && !connection.OpenConnection())
            {
                return;
            }
            connection.ExecuteNonQuery(QueryCommand, QueryParameter);
        }
示例#8
0
        /// <summary>
        /// this fucntion will log a given action to a specific user
        /// </summary>
        /// <param name="Action">the given action</param>
        /// <param name="User">the specific user</param>
        /// <param name="connection">the open connection received from the caller</param>
        public static void LogAction(String Action, User User, PostgreSqlConnection connection)
        {
            String QueryCommand = "INSERT INTO log.log_actiuni(actiune,utilizator_id) VALUES(:p_action,:p_user_id)";

            NpgsqlParameter[] QueryParameters =
            {
                new NpgsqlParameter("p_action",  Action),
                new NpgsqlParameter("p_user_id", User.ID)
            };
            if (!(connection.connection.State == System.Data.ConnectionState.Open) && !connection.OpenConnection())
            {
                return;
            }
            connection.ExecuteNonQuery(QueryCommand, QueryParameters);
        }
示例#9
0
        /// <summary>
        /// this function will log a given action to a specific IP Adress with the database command
        /// </summary>
        /// <param name="Action">the given action</param>
        /// <param name="IP">the ip adress</param>
        /// <param name="Command">the database command</param>
        /// <param name="connection">the open connection received from the caller</param>
        public static void LogAction(String Action, String IP, String Command, PostgreSqlConnection connection)
        {
            String QueryCommand = "INSERT INTO log.log_actiuni(actiune,ip_actiune,comanda) VALUES(:p_action,:p_ip,:p_command)";

            NpgsqlParameter[] QueryParameters =
            {
                new NpgsqlParameter("p_action",  Action),
                new NpgsqlParameter("p_ip",      IP),
                new NpgsqlParameter("p_command", Command)
            };
            if (!(connection.connection.State == System.Data.ConnectionState.Open) && !connection.OpenConnection())
            {
                return;
            }
            connection.ExecuteNonQuery(QueryCommand, QueryParameters);
        }
		private void UseConnection(Action<PostgreSqlConnection> action)
		{
			using (var connection = new PostgreSqlConnection(
				ConnectionUtils.CreateConnection(),
				_providers,
				_options))
			{
				action(connection);
			}
		}
		private void UseConnections(Action<NpgsqlConnection, PostgreSqlConnection> action)
		{
			using (var sqlConnection = ConnectionUtils.CreateConnection())
			using (var connection = new PostgreSqlConnection(sqlConnection, _providers, _options))
			{
				action(sqlConnection, connection);
			}
		}
示例#12
0
 /// <summary>
 /// this function will add a new bank account to a given seller by piggy-backing on an already active connection
 /// </summary>
 /// <param name="seller">the given seller</param>
 /// <param name="bankAccount">the bank account controller</param>
 /// <param name="posgreSqlConnection">the active connection</param>
 public static void AddNewBankAccountForSeller(ObjectStructures.Invoice.Seller seller, BankAccount bankAccount, PostgreSqlConnection posgreSqlConnection)
 {
     #region ActionLog
     //we generate the log Action
     String LogAction = $"Adaugat un nou cont bancar la banca {bankAccount.Bank} pentru societatea {seller.Name}";
     //we also generate the command
     String LogCommand = "INSERT INTO seller.conturi_bancare_furnizori(furnizor_id,cont,banca) " +
                         $"VALUES({seller.ID}, {bankAccount.Account}, {bankAccount.Bank}) " +
                         "ON CONFLICT(cont) " +
                         $"DO UPDATE SET banca= {bankAccount.Bank} RETURNING id";
     //and get the instance IP
     String IP = MentorBilling.Miscellaneous.IPFunctions.GetWANIp();
     #endregion
     //we generate the query command string
     String QueryCommand = "INSERT INTO seller.conturi_bancare_furnizori(furnizor_id,cont,banca) " +
                           "VALUES(:p_seller_id, :p_account, :p_bank) " +
                           "ON CONFLICT(cont) " +
                           "DO UPDATE SET banca= :p_bank, activ = true " +
                           "RETURNING id";
     //and then set the parameters for the query
     List <NpgsqlParameter> QueryParameters = new List <NpgsqlParameter>()
     {
         new NpgsqlParameter(":p_seller_id", seller.ID),
         new NpgsqlParameter(":p_account", bankAccount.Account),
         new NpgsqlParameter(":p_bank", bankAccount.Bank)
     };
     //we execute the command returning the ID over an already active connection
     bankAccount.ID = (Int32)posgreSqlConnection.ExecuteScalar(QueryCommand, QueryParameters);
     //and log the command
     ActionLog.LogAction(LogAction, LogCommand, IP, PgSqlConnection);
 }
示例#13
0
 /// <summary>
 /// the main function dor closing a connection on error
 /// </summary>
 /// <returns>false</returns>
 public static Boolean ErrorConnectionClose(PostgreSqlConnection DatabaseConnection)
 {
     DatabaseConnection.CloseConnection();
     return(false);
 }
示例#14
0
 /// <summary>
 /// the main function for closing a connection on success
 /// </summary>
 /// <returns>true</returns>
 public static Boolean NormalConnectionClose(PostgreSqlConnection DatabaseConnection)
 {
     DatabaseConnection.CloseConnection();
     return(true);
 }