diff --git a/Controllers/MigrationController.cs b/Controllers/MigrationController.cs index cc962b4..ec5ac64 100644 --- a/Controllers/MigrationController.cs +++ b/Controllers/MigrationController.cs @@ -33,7 +33,7 @@ namespace CarCareTracker.Controllers return new RedirectResult("/Error/Unauthorized"); } } - private void InitializeTables(NpgsqlConnection conn) + private void InitializeTables(NpgsqlDataSource conn) { var cmds = new List { @@ -56,7 +56,7 @@ namespace CarCareTracker.Controllers }; foreach(string cmd in cmds) { - using (var ctext = new NpgsqlCommand(cmd, conn)) + using (var ctext = conn.CreateCommand(cmd)) { ctext.ExecuteNonQuery(); } @@ -75,11 +75,7 @@ namespace CarCareTracker.Controllers var fullFileName = _fileHelper.GetFullFilePath(tempPath, false); try { - var pgDataSource = new NpgsqlConnection(_configHelper.GetServerPostgresConnection()); - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } + var pgDataSource = NpgsqlDataSource.Create(_configHelper.GetServerPostgresConnection()); InitializeTables(pgDataSource); //pull records var vehicles = new List(); @@ -103,7 +99,7 @@ namespace CarCareTracker.Controllers var useraccessrecords = new List(); #region "Part1" string cmd = $"SELECT data FROM app.vehicles"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -121,7 +117,7 @@ namespace CarCareTracker.Controllers }; } cmd = $"SELECT data FROM app.collisionrecords"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -138,7 +134,7 @@ namespace CarCareTracker.Controllers }; } cmd = $"SELECT data FROM app.upgraderecords"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -155,7 +151,7 @@ namespace CarCareTracker.Controllers }; } cmd = $"SELECT data FROM app.servicerecords"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -174,7 +170,7 @@ namespace CarCareTracker.Controllers #endregion #region "Part2" cmd = $"SELECT data FROM app.gasrecords"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -191,7 +187,7 @@ namespace CarCareTracker.Controllers }; } cmd = $"SELECT data FROM app.notes"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -208,7 +204,7 @@ namespace CarCareTracker.Controllers }; } cmd = $"SELECT data FROM app.odometerrecords"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -225,7 +221,7 @@ namespace CarCareTracker.Controllers }; } cmd = $"SELECT data FROM app.reminderrecords"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -244,7 +240,7 @@ namespace CarCareTracker.Controllers #endregion #region "Part3" cmd = $"SELECT data FROM app.planrecords"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -261,7 +257,7 @@ namespace CarCareTracker.Controllers }; } cmd = $"SELECT data FROM app.planrecordtemplates"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -278,7 +274,7 @@ namespace CarCareTracker.Controllers }; } cmd = $"SELECT data FROM app.supplyrecords"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -295,7 +291,7 @@ namespace CarCareTracker.Controllers }; } cmd = $"SELECT data FROM app.taxrecords"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -314,7 +310,7 @@ namespace CarCareTracker.Controllers #endregion #region "Part4" cmd = $"SELECT id, username, emailaddress, password, isadmin FROM app.userrecords"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -337,7 +333,7 @@ namespace CarCareTracker.Controllers }; } cmd = $"SELECT id, emailaddress, body FROM app.tokenrecords"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -358,7 +354,7 @@ namespace CarCareTracker.Controllers }; } cmd = $"SELECT data FROM app.userconfigrecords"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -375,7 +371,7 @@ namespace CarCareTracker.Controllers }; } cmd = $"SELECT userId, vehicleId FROM app.useraccessrecords"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -423,11 +419,7 @@ namespace CarCareTracker.Controllers } try { - var pgDataSource = new NpgsqlConnection(_configHelper.GetServerPostgresConnection()); - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } + var pgDataSource = NpgsqlDataSource.Create(_configHelper.GetServerPostgresConnection()); InitializeTables(pgDataSource); //pull records var vehicles = new List(); @@ -458,7 +450,7 @@ namespace CarCareTracker.Controllers foreach(var vehicle in vehicles) { string cmd = $"INSERT INTO app.vehicles (id, data) VALUES(@id, CAST(@data AS jsonb))"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", vehicle.Id); ctext.Parameters.AddWithValue("data", System.Text.Json.JsonSerializer.Serialize(vehicle)); @@ -473,7 +465,7 @@ namespace CarCareTracker.Controllers foreach (var record in repairrecords) { string cmd = $"INSERT INTO app.collisionrecords (id, vehicleId, data) VALUES(@id, @vehicleId, CAST(@data AS jsonb))"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", record.Id); ctext.Parameters.AddWithValue("vehicleId", record.VehicleId); @@ -489,7 +481,7 @@ namespace CarCareTracker.Controllers foreach (var record in servicerecords) { string cmd = $"INSERT INTO app.servicerecords (id, vehicleId, data) VALUES(@id, @vehicleId, CAST(@data AS jsonb))"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", record.Id); ctext.Parameters.AddWithValue("vehicleId", record.VehicleId); @@ -505,7 +497,7 @@ namespace CarCareTracker.Controllers foreach (var record in upgraderecords) { string cmd = $"INSERT INTO app.upgraderecords (id, vehicleId, data) VALUES(@id, @vehicleId, CAST(@data AS jsonb))"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", record.Id); ctext.Parameters.AddWithValue("vehicleId", record.VehicleId); @@ -523,7 +515,7 @@ namespace CarCareTracker.Controllers foreach (var record in gasrecords) { string cmd = $"INSERT INTO app.gasrecords (id, vehicleId, data) VALUES(@id, @vehicleId, CAST(@data AS jsonb))"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", record.Id); ctext.Parameters.AddWithValue("vehicleId", record.VehicleId); @@ -539,7 +531,7 @@ namespace CarCareTracker.Controllers foreach (var record in noterecords) { string cmd = $"INSERT INTO app.notes (id, vehicleId, data) VALUES(@id, @vehicleId, CAST(@data AS jsonb))"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", record.Id); ctext.Parameters.AddWithValue("vehicleId", record.VehicleId); @@ -555,7 +547,7 @@ namespace CarCareTracker.Controllers foreach (var record in odometerrecords) { string cmd = $"INSERT INTO app.odometerrecords (id, vehicleId, data) VALUES(@id, @vehicleId, CAST(@data AS jsonb))"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", record.Id); ctext.Parameters.AddWithValue("vehicleId", record.VehicleId); @@ -571,7 +563,7 @@ namespace CarCareTracker.Controllers foreach (var record in reminderrecords) { string cmd = $"INSERT INTO app.reminderrecords (id, vehicleId, data) VALUES(@id, @vehicleId, CAST(@data AS jsonb))"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", record.Id); ctext.Parameters.AddWithValue("vehicleId", record.VehicleId); @@ -589,7 +581,7 @@ namespace CarCareTracker.Controllers foreach (var record in planrecords) { string cmd = $"INSERT INTO app.planrecords (id, vehicleId, data) VALUES(@id, @vehicleId, CAST(@data AS jsonb))"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", record.Id); ctext.Parameters.AddWithValue("vehicleId", record.VehicleId); @@ -605,7 +597,7 @@ namespace CarCareTracker.Controllers foreach (var record in planrecordtemplates) { string cmd = $"INSERT INTO app.planrecordtemplates (id, vehicleId, data) VALUES(@id, @vehicleId, CAST(@data AS jsonb))"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", record.Id); ctext.Parameters.AddWithValue("vehicleId", record.VehicleId); @@ -621,7 +613,7 @@ namespace CarCareTracker.Controllers foreach (var record in supplyrecords) { string cmd = $"INSERT INTO app.supplyrecords (id, vehicleId, data) VALUES(@id, @vehicleId, CAST(@data AS jsonb))"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", record.Id); ctext.Parameters.AddWithValue("vehicleId", record.VehicleId); @@ -637,7 +629,7 @@ namespace CarCareTracker.Controllers foreach (var record in taxrecords) { string cmd = $"INSERT INTO app.taxrecords (id, vehicleId, data) VALUES(@id, @vehicleId, CAST(@data AS jsonb))"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", record.Id); ctext.Parameters.AddWithValue("vehicleId", record.VehicleId); @@ -655,7 +647,7 @@ namespace CarCareTracker.Controllers foreach (var record in userrecords) { string cmd = $"INSERT INTO app.userrecords (id, username, emailaddress, password, isadmin) VALUES(@id, @username, @emailaddress, @password, @isadmin)"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", record.Id); ctext.Parameters.AddWithValue("username", record.UserName); @@ -673,7 +665,7 @@ namespace CarCareTracker.Controllers foreach (var record in tokenrecords) { string cmd = $"INSERT INTO app.tokenrecords (id, emailaddress, body) VALUES(@id, @emailaddress, @body)"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", record.Id); ctext.Parameters.AddWithValue("emailaddress", record.EmailAddress); @@ -689,7 +681,7 @@ namespace CarCareTracker.Controllers foreach (var record in userconfigrecords) { string cmd = $"INSERT INTO app.userconfigrecords (id, data) VALUES(@id, CAST(@data AS jsonb))"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", record.Id); ctext.Parameters.AddWithValue("data", System.Text.Json.JsonSerializer.Serialize(record)); @@ -704,7 +696,7 @@ namespace CarCareTracker.Controllers foreach (var record in useraccessrecords) { string cmd = $"INSERT INTO app.useraccessrecords (userId, vehicleId) VALUES(@userId, @vehicleId)"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("userId", record.Id.UserId); ctext.Parameters.AddWithValue("vehicleId", record.Id.VehicleId); diff --git a/External/Implementations/Postgres/CollisionRecordDataAccess.cs b/External/Implementations/Postgres/CollisionRecordDataAccess.cs index 3beb6db..ff1df77 100644 --- a/External/Implementations/Postgres/CollisionRecordDataAccess.cs +++ b/External/Implementations/Postgres/CollisionRecordDataAccess.cs @@ -7,22 +7,19 @@ namespace CarCareTracker.External.Implementations { public class PGCollisionRecordDataAccess : ICollisionRecordDataAccess { - private NpgsqlConnection pgDataSource; + private NpgsqlDataSource pgDataSource; private readonly ILogger _logger; private static string tableName = "collisionrecords"; public PGCollisionRecordDataAccess(IConfiguration config, ILogger logger) { - pgDataSource = new NpgsqlConnection(config["POSTGRES_CONNECTION"]); + pgDataSource = NpgsqlDataSource.Create(config["POSTGRES_CONNECTION"]); + _logger = logger; try { - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } //create table if not exist. string initCMD = $"CREATE TABLE IF NOT EXISTS app.{tableName} (id INT GENERATED BY DEFAULT AS IDENTITY primary key, vehicleId INT not null, data jsonb not null)"; - using (var ctext = new NpgsqlCommand(initCMD, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(initCMD)) { ctext.ExecuteNonQuery(); } @@ -38,7 +35,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE vehicleId = @vehicleId"; var results = new List(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", vehicleId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -62,7 +59,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE id = @id"; var result = new CollisionRecord(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", collisionRecordId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -85,7 +82,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", collisionRecordId); return ctext.ExecuteNonQuery() > 0; @@ -104,7 +101,7 @@ namespace CarCareTracker.External.Implementations if (collisionRecord.Id == default) { string cmd = $"INSERT INTO app.{tableName} (vehicleId, data) VALUES(@vehicleId, CAST(@data AS jsonb)) RETURNING id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", collisionRecord.VehicleId); ctext.Parameters.AddWithValue("data", "{}"); @@ -113,7 +110,7 @@ namespace CarCareTracker.External.Implementations if (collisionRecord.Id != default) { string cmdU = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctextU = new NpgsqlCommand(cmdU, pgDataSource)) + using (var ctextU = pgDataSource.CreateCommand(cmdU)) { var serializedData = JsonSerializer.Serialize(collisionRecord); ctextU.Parameters.AddWithValue("id", collisionRecord.Id); @@ -127,7 +124,7 @@ namespace CarCareTracker.External.Implementations else { string cmd = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { var serializedData = JsonSerializer.Serialize(collisionRecord); ctext.Parameters.AddWithValue("id", collisionRecord.Id); @@ -147,7 +144,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE vehicleId = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", vehicleId); return ctext.ExecuteNonQuery() > 0; diff --git a/External/Implementations/Postgres/GasRecordDataAccess.cs b/External/Implementations/Postgres/GasRecordDataAccess.cs index 2dcb78c..5d75e97 100644 --- a/External/Implementations/Postgres/GasRecordDataAccess.cs +++ b/External/Implementations/Postgres/GasRecordDataAccess.cs @@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations { public class PGGasRecordDataAccess: IGasRecordDataAccess { - private NpgsqlConnection pgDataSource; + private NpgsqlDataSource pgDataSource; private readonly ILogger _logger; private static string tableName = "gasrecords"; public PGGasRecordDataAccess(IConfiguration config, ILogger logger) { - pgDataSource = new NpgsqlConnection(config["POSTGRES_CONNECTION"]); + pgDataSource = NpgsqlDataSource.Create(config["POSTGRES_CONNECTION"]); _logger = logger; try { - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } //create table if not exist. string initCMD = $"CREATE TABLE IF NOT EXISTS app.{tableName} (id INT GENERATED BY DEFAULT AS IDENTITY primary key, vehicleId INT not null, data jsonb not null)"; - using (var ctext = new NpgsqlCommand(initCMD, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(initCMD)) { ctext.ExecuteNonQuery(); } @@ -38,7 +34,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE vehicleId = @vehicleId"; var results = new List(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", vehicleId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -62,7 +58,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE id = @id"; var result = new GasRecord(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", gasRecordId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -85,7 +81,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", gasRecordId); return ctext.ExecuteNonQuery() > 0; @@ -104,7 +100,7 @@ namespace CarCareTracker.External.Implementations if (gasRecord.Id == default) { string cmd = $"INSERT INTO app.{tableName} (vehicleId, data) VALUES(@vehicleId, CAST(@data AS jsonb)) RETURNING id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", gasRecord.VehicleId); ctext.Parameters.AddWithValue("data", "{}"); @@ -113,7 +109,7 @@ namespace CarCareTracker.External.Implementations if (gasRecord.Id != default) { string cmdU = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctextU = new NpgsqlCommand(cmdU, pgDataSource)) + using (var ctextU = pgDataSource.CreateCommand(cmdU)) { var serializedData = JsonSerializer.Serialize(gasRecord); ctextU.Parameters.AddWithValue("id", gasRecord.Id); @@ -127,7 +123,7 @@ namespace CarCareTracker.External.Implementations else { string cmd = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { var serializedData = JsonSerializer.Serialize(gasRecord); ctext.Parameters.AddWithValue("id", gasRecord.Id); @@ -147,7 +143,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE vehicleId = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", vehicleId); return ctext.ExecuteNonQuery() > 0; diff --git a/External/Implementations/Postgres/NoteDataAccess.cs b/External/Implementations/Postgres/NoteDataAccess.cs index e690460..7a71686 100644 --- a/External/Implementations/Postgres/NoteDataAccess.cs +++ b/External/Implementations/Postgres/NoteDataAccess.cs @@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations { public class PGNoteDataAccess: INoteDataAccess { - private NpgsqlConnection pgDataSource; + private NpgsqlDataSource pgDataSource; private readonly ILogger _logger; private static string tableName = "notes"; public PGNoteDataAccess(IConfiguration config, ILogger logger) { - pgDataSource = new NpgsqlConnection(config["POSTGRES_CONNECTION"]); + pgDataSource = NpgsqlDataSource.Create(config["POSTGRES_CONNECTION"]); _logger = logger; try { - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } //create table if not exist. string initCMD = $"CREATE TABLE IF NOT EXISTS app.{tableName} (id INT GENERATED BY DEFAULT AS IDENTITY primary key, vehicleId INT not null, data jsonb not null)"; - using (var ctext = new NpgsqlCommand(initCMD, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(initCMD)) { ctext.ExecuteNonQuery(); } @@ -37,7 +33,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE vehicleId = @vehicleId"; var results = new List(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", vehicleId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -60,7 +56,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE id = @id"; var result = new Note(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", noteId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -84,7 +80,7 @@ namespace CarCareTracker.External.Implementations if (note.Id == default) { string cmd = $"INSERT INTO app.{tableName} (vehicleId, data) VALUES(@vehicleId, CAST(@data AS jsonb)) RETURNING id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", note.VehicleId); ctext.Parameters.AddWithValue("data", "{}"); @@ -93,7 +89,7 @@ namespace CarCareTracker.External.Implementations if (note.Id != default) { string cmdU = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctextU = new NpgsqlCommand(cmdU, pgDataSource)) + using (var ctextU = pgDataSource.CreateCommand(cmdU)) { var serializedData = JsonSerializer.Serialize(note); ctextU.Parameters.AddWithValue("id", note.Id); @@ -107,7 +103,7 @@ namespace CarCareTracker.External.Implementations else { string cmd = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { var serializedData = JsonSerializer.Serialize(note); ctext.Parameters.AddWithValue("id", note.Id); @@ -126,7 +122,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", noteId); return ctext.ExecuteNonQuery() > 0; @@ -142,7 +138,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE vehicleId = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", vehicleId); return ctext.ExecuteNonQuery() > 0; diff --git a/External/Implementations/Postgres/OdometerRecordDataAccess.cs b/External/Implementations/Postgres/OdometerRecordDataAccess.cs index 703a7cd..c12d418 100644 --- a/External/Implementations/Postgres/OdometerRecordDataAccess.cs +++ b/External/Implementations/Postgres/OdometerRecordDataAccess.cs @@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations { public class PGOdometerRecordDataAccess : IOdometerRecordDataAccess { - private NpgsqlConnection pgDataSource; + private NpgsqlDataSource pgDataSource; private readonly ILogger _logger; private static string tableName = "odometerrecords"; public PGOdometerRecordDataAccess(IConfiguration config, ILogger logger) { - pgDataSource = new NpgsqlConnection(config["POSTGRES_CONNECTION"]); + pgDataSource = NpgsqlDataSource.Create(config["POSTGRES_CONNECTION"]); _logger = logger; try { - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } //create table if not exist. string initCMD = $"CREATE TABLE IF NOT EXISTS app.{tableName} (id INT GENERATED BY DEFAULT AS IDENTITY primary key, vehicleId INT not null, data jsonb not null)"; - using (var ctext = new NpgsqlCommand(initCMD, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(initCMD)) { ctext.ExecuteNonQuery(); } @@ -38,7 +34,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE vehicleId = @vehicleId"; var results = new List(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", vehicleId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -62,7 +58,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE id = @id"; var result = new OdometerRecord(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", odometerRecordId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -85,7 +81,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", odometerRecordId); return ctext.ExecuteNonQuery() > 0; @@ -104,7 +100,7 @@ namespace CarCareTracker.External.Implementations if (odometerRecord.Id == default) { string cmd = $"INSERT INTO app.{tableName} (vehicleId, data) VALUES(@vehicleId, CAST(@data AS jsonb)) RETURNING id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", odometerRecord.VehicleId); ctext.Parameters.AddWithValue("data", "{}"); @@ -113,7 +109,7 @@ namespace CarCareTracker.External.Implementations if (odometerRecord.Id != default) { string cmdU = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctextU = new NpgsqlCommand(cmdU, pgDataSource)) + using (var ctextU = pgDataSource.CreateCommand(cmdU)) { var serializedData = JsonSerializer.Serialize(odometerRecord); ctextU.Parameters.AddWithValue("id", odometerRecord.Id); @@ -127,7 +123,7 @@ namespace CarCareTracker.External.Implementations else { string cmd = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { var serializedData = JsonSerializer.Serialize(odometerRecord); ctext.Parameters.AddWithValue("id", odometerRecord.Id); @@ -147,7 +143,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE vehicleId = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", vehicleId); return ctext.ExecuteNonQuery() > 0; diff --git a/External/Implementations/Postgres/PlanRecordDataAccess.cs b/External/Implementations/Postgres/PlanRecordDataAccess.cs index dc8f7fd..d0a8264 100644 --- a/External/Implementations/Postgres/PlanRecordDataAccess.cs +++ b/External/Implementations/Postgres/PlanRecordDataAccess.cs @@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations { public class PGPlanRecordDataAccess : IPlanRecordDataAccess { - private NpgsqlConnection pgDataSource; + private NpgsqlDataSource pgDataSource; private readonly ILogger _logger; private static string tableName = "planrecords"; public PGPlanRecordDataAccess(IConfiguration config, ILogger logger) { - pgDataSource = new NpgsqlConnection(config["POSTGRES_CONNECTION"]); + pgDataSource = NpgsqlDataSource.Create(config["POSTGRES_CONNECTION"]); _logger = logger; try { - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } //create table if not exist. string initCMD = $"CREATE TABLE IF NOT EXISTS app.{tableName} (id INT GENERATED BY DEFAULT AS IDENTITY primary key, vehicleId INT not null, data jsonb not null)"; - using (var ctext = new NpgsqlCommand(initCMD, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(initCMD)) { ctext.ExecuteNonQuery(); } @@ -38,7 +34,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE vehicleId = @vehicleId"; var results = new List(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", vehicleId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -62,7 +58,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE id = @id"; var result = new PlanRecord(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", planRecordId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -85,7 +81,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", planRecordId); return ctext.ExecuteNonQuery() > 0; @@ -104,7 +100,7 @@ namespace CarCareTracker.External.Implementations if (planRecord.Id == default) { string cmd = $"INSERT INTO app.{tableName} (vehicleId, data) VALUES(@vehicleId, CAST(@data AS jsonb)) RETURNING id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", planRecord.VehicleId); ctext.Parameters.AddWithValue("data", "{}"); @@ -113,7 +109,7 @@ namespace CarCareTracker.External.Implementations if (planRecord.Id != default) { string cmdU = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctextU = new NpgsqlCommand(cmdU, pgDataSource)) + using (var ctextU = pgDataSource.CreateCommand(cmdU)) { var serializedData = JsonSerializer.Serialize(planRecord); ctextU.Parameters.AddWithValue("id", planRecord.Id); @@ -127,7 +123,7 @@ namespace CarCareTracker.External.Implementations else { string cmd = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { var serializedData = JsonSerializer.Serialize(planRecord); ctext.Parameters.AddWithValue("id", planRecord.Id); @@ -147,7 +143,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE vehicleId = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", vehicleId); return ctext.ExecuteNonQuery() > 0; diff --git a/External/Implementations/Postgres/PlanRecordTemplateDataAccess.cs b/External/Implementations/Postgres/PlanRecordTemplateDataAccess.cs index 3ee2a87..41f60ae 100644 --- a/External/Implementations/Postgres/PlanRecordTemplateDataAccess.cs +++ b/External/Implementations/Postgres/PlanRecordTemplateDataAccess.cs @@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations { public class PGPlanRecordTemplateDataAccess : IPlanRecordTemplateDataAccess { - private NpgsqlConnection pgDataSource; + private NpgsqlDataSource pgDataSource; private readonly ILogger _logger; private static string tableName = "planrecordtemplates"; public PGPlanRecordTemplateDataAccess(IConfiguration config, ILogger logger) { - pgDataSource = new NpgsqlConnection(config["POSTGRES_CONNECTION"]); + pgDataSource = NpgsqlDataSource.Create(config["POSTGRES_CONNECTION"]); _logger = logger; try { - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } //create table if not exist. string initCMD = $"CREATE TABLE IF NOT EXISTS app.{tableName} (id INT GENERATED BY DEFAULT AS IDENTITY primary key, vehicleId INT not null, data jsonb not null)"; - using (var ctext = new NpgsqlCommand(initCMD, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(initCMD)) { ctext.ExecuteNonQuery(); } @@ -38,7 +34,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE vehicleId = @vehicleId"; var results = new List(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", vehicleId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -62,7 +58,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE id = @id"; var result = new PlanRecordInput(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", planRecordId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -85,7 +81,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", planRecordId); return ctext.ExecuteNonQuery() > 0; @@ -104,7 +100,7 @@ namespace CarCareTracker.External.Implementations if (planRecord.Id == default) { string cmd = $"INSERT INTO app.{tableName} (vehicleId, data) VALUES(@vehicleId, CAST(@data AS jsonb)) RETURNING id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", planRecord.VehicleId); ctext.Parameters.AddWithValue("data", "{}"); @@ -113,7 +109,7 @@ namespace CarCareTracker.External.Implementations if (planRecord.Id != default) { string cmdU = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctextU = new NpgsqlCommand(cmdU, pgDataSource)) + using (var ctextU = pgDataSource.CreateCommand(cmdU)) { var serializedData = JsonSerializer.Serialize(planRecord); ctextU.Parameters.AddWithValue("id", planRecord.Id); @@ -127,7 +123,7 @@ namespace CarCareTracker.External.Implementations else { string cmd = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { var serializedData = JsonSerializer.Serialize(planRecord); ctext.Parameters.AddWithValue("id", planRecord.Id); @@ -147,7 +143,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE vehicleId = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", vehicleId); return ctext.ExecuteNonQuery() > 0; diff --git a/External/Implementations/Postgres/ReminderRecordDataAccess.cs b/External/Implementations/Postgres/ReminderRecordDataAccess.cs index c76a961..7f615c4 100644 --- a/External/Implementations/Postgres/ReminderRecordDataAccess.cs +++ b/External/Implementations/Postgres/ReminderRecordDataAccess.cs @@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations { public class PGReminderRecordDataAccess : IReminderRecordDataAccess { - private NpgsqlConnection pgDataSource; + private NpgsqlDataSource pgDataSource; private readonly ILogger _logger; private static string tableName = "reminderrecords"; public PGReminderRecordDataAccess(IConfiguration config, ILogger logger) { - pgDataSource = new NpgsqlConnection(config["POSTGRES_CONNECTION"]); + pgDataSource = NpgsqlDataSource.Create(config["POSTGRES_CONNECTION"]); _logger = logger; try { - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } //create table if not exist. string initCMD = $"CREATE TABLE IF NOT EXISTS app.{tableName} (id INT GENERATED BY DEFAULT AS IDENTITY primary key, vehicleId INT not null, data jsonb not null)"; - using (var ctext = new NpgsqlCommand(initCMD, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(initCMD)) { ctext.ExecuteNonQuery(); } @@ -38,7 +34,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE vehicleId = @vehicleId"; var results = new List(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", vehicleId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -62,7 +58,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE id = @id"; var result = new ReminderRecord(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", reminderRecordId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -85,7 +81,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", reminderRecordId); return ctext.ExecuteNonQuery() > 0; @@ -104,7 +100,7 @@ namespace CarCareTracker.External.Implementations if (reminderRecord.Id == default) { string cmd = $"INSERT INTO app.{tableName} (vehicleId, data) VALUES(@vehicleId, CAST(@data AS jsonb)) RETURNING id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", reminderRecord.VehicleId); ctext.Parameters.AddWithValue("data", "{}"); @@ -113,7 +109,7 @@ namespace CarCareTracker.External.Implementations if (reminderRecord.Id != default) { string cmdU = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctextU = new NpgsqlCommand(cmdU, pgDataSource)) + using (var ctextU = pgDataSource.CreateCommand(cmdU)) { var serializedData = JsonSerializer.Serialize(reminderRecord); ctextU.Parameters.AddWithValue("id", reminderRecord.Id); @@ -127,7 +123,7 @@ namespace CarCareTracker.External.Implementations else { string cmd = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { var serializedData = JsonSerializer.Serialize(reminderRecord); ctext.Parameters.AddWithValue("id", reminderRecord.Id); @@ -147,7 +143,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE vehicleId = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", vehicleId); return ctext.ExecuteNonQuery() > 0; diff --git a/External/Implementations/Postgres/ServiceRecordDataAccess.cs b/External/Implementations/Postgres/ServiceRecordDataAccess.cs index 7bf10f0..14d3662 100644 --- a/External/Implementations/Postgres/ServiceRecordDataAccess.cs +++ b/External/Implementations/Postgres/ServiceRecordDataAccess.cs @@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations { public class PGServiceRecordDataAccess: IServiceRecordDataAccess { - private NpgsqlConnection pgDataSource; + private NpgsqlDataSource pgDataSource; private readonly ILogger _logger; private static string tableName = "servicerecords"; public PGServiceRecordDataAccess(IConfiguration config, ILogger logger) { - pgDataSource = new NpgsqlConnection(config["POSTGRES_CONNECTION"]); + pgDataSource = NpgsqlDataSource.Create(config["POSTGRES_CONNECTION"]); _logger = logger; try { - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } //create table if not exist. string initCMD = $"CREATE TABLE IF NOT EXISTS app.{tableName} (id INT GENERATED BY DEFAULT AS IDENTITY primary key, vehicleId INT not null, data jsonb not null)"; - using (var ctext = new NpgsqlCommand(initCMD, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(initCMD)) { ctext.ExecuteNonQuery(); } @@ -38,7 +34,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE vehicleId = @vehicleId"; var results = new List(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", vehicleId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -62,7 +58,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE id = @id"; var result = new ServiceRecord(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", serviceRecordId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -85,7 +81,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", serviceRecordId); return ctext.ExecuteNonQuery() > 0; @@ -104,7 +100,7 @@ namespace CarCareTracker.External.Implementations if (serviceRecord.Id == default) { string cmd = $"INSERT INTO app.{tableName} (vehicleId, data) VALUES(@vehicleId, CAST(@data AS jsonb)) RETURNING id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", serviceRecord.VehicleId); ctext.Parameters.AddWithValue("data", "{}"); @@ -113,7 +109,7 @@ namespace CarCareTracker.External.Implementations if (serviceRecord.Id != default) { string cmdU = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctextU = new NpgsqlCommand(cmdU, pgDataSource)) + using (var ctextU = pgDataSource.CreateCommand(cmdU)) { var serializedData = JsonSerializer.Serialize(serviceRecord); ctextU.Parameters.AddWithValue("id", serviceRecord.Id); @@ -127,7 +123,7 @@ namespace CarCareTracker.External.Implementations else { string cmd = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { var serializedData = JsonSerializer.Serialize(serviceRecord); ctext.Parameters.AddWithValue("id", serviceRecord.Id); @@ -147,7 +143,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE vehicleId = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", vehicleId); return ctext.ExecuteNonQuery() > 0; diff --git a/External/Implementations/Postgres/SupplyRecordDataAccess.cs b/External/Implementations/Postgres/SupplyRecordDataAccess.cs index a178765..ddc50e5 100644 --- a/External/Implementations/Postgres/SupplyRecordDataAccess.cs +++ b/External/Implementations/Postgres/SupplyRecordDataAccess.cs @@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations { public class PGSupplyRecordDataAccess : ISupplyRecordDataAccess { - private NpgsqlConnection pgDataSource; + private NpgsqlDataSource pgDataSource; private readonly ILogger _logger; private static string tableName = "supplyrecords"; public PGSupplyRecordDataAccess(IConfiguration config, ILogger logger) { - pgDataSource = new NpgsqlConnection(config["POSTGRES_CONNECTION"]); + pgDataSource = NpgsqlDataSource.Create(config["POSTGRES_CONNECTION"]); _logger = logger; try { - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } //create table if not exist. string initCMD = $"CREATE TABLE IF NOT EXISTS app.{tableName} (id INT GENERATED BY DEFAULT AS IDENTITY primary key, vehicleId INT not null, data jsonb not null)"; - using (var ctext = new NpgsqlCommand(initCMD, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(initCMD)) { ctext.ExecuteNonQuery(); } @@ -38,7 +34,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE vehicleId = @vehicleId"; var results = new List(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", vehicleId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -62,7 +58,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE id = @id"; var result = new SupplyRecord(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", supplyRecordId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -85,7 +81,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", supplyRecordId); return ctext.ExecuteNonQuery() > 0; @@ -104,7 +100,7 @@ namespace CarCareTracker.External.Implementations if (supplyRecord.Id == default) { string cmd = $"INSERT INTO app.{tableName} (vehicleId, data) VALUES(@vehicleId, CAST(@data AS jsonb)) RETURNING id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", supplyRecord.VehicleId); ctext.Parameters.AddWithValue("data", "{}"); @@ -113,7 +109,7 @@ namespace CarCareTracker.External.Implementations if (supplyRecord.Id != default) { string cmdU = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctextU = new NpgsqlCommand(cmdU, pgDataSource)) + using (var ctextU = pgDataSource.CreateCommand(cmdU)) { var serializedData = JsonSerializer.Serialize(supplyRecord); ctextU.Parameters.AddWithValue("id", supplyRecord.Id); @@ -127,7 +123,7 @@ namespace CarCareTracker.External.Implementations else { string cmd = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { var serializedData = JsonSerializer.Serialize(supplyRecord); ctext.Parameters.AddWithValue("id", supplyRecord.Id); @@ -147,7 +143,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE vehicleId = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", vehicleId); return ctext.ExecuteNonQuery() > 0; diff --git a/External/Implementations/Postgres/TaxRecordDataAccess.cs b/External/Implementations/Postgres/TaxRecordDataAccess.cs index 9de901e..46eb209 100644 --- a/External/Implementations/Postgres/TaxRecordDataAccess.cs +++ b/External/Implementations/Postgres/TaxRecordDataAccess.cs @@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations { public class PGTaxRecordDataAccess : ITaxRecordDataAccess { - private NpgsqlConnection pgDataSource; + private NpgsqlDataSource pgDataSource; private readonly ILogger _logger; private static string tableName = "taxrecords"; public PGTaxRecordDataAccess(IConfiguration config, ILogger logger) { - pgDataSource = new NpgsqlConnection(config["POSTGRES_CONNECTION"]); + pgDataSource = NpgsqlDataSource.Create(config["POSTGRES_CONNECTION"]); _logger = logger; try { - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } //create table if not exist. string initCMD = $"CREATE TABLE IF NOT EXISTS app.{tableName} (id INT GENERATED BY DEFAULT AS IDENTITY primary key, vehicleId INT not null, data jsonb not null)"; - using (var ctext = new NpgsqlCommand(initCMD, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(initCMD)) { ctext.ExecuteNonQuery(); } @@ -38,7 +34,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE vehicleId = @vehicleId"; var results = new List(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", vehicleId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -62,7 +58,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE id = @id"; var result = new TaxRecord(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", taxRecordId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -85,7 +81,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", taxRecordId); return ctext.ExecuteNonQuery() > 0; @@ -104,7 +100,7 @@ namespace CarCareTracker.External.Implementations if (taxRecord.Id == default) { string cmd = $"INSERT INTO app.{tableName} (vehicleId, data) VALUES(@vehicleId, CAST(@data AS jsonb)) RETURNING id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", taxRecord.VehicleId); ctext.Parameters.AddWithValue("data", "{}"); @@ -113,7 +109,7 @@ namespace CarCareTracker.External.Implementations if (taxRecord.Id != default) { string cmdU = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctextU = new NpgsqlCommand(cmdU, pgDataSource)) + using (var ctextU = pgDataSource.CreateCommand(cmdU)) { var serializedData = JsonSerializer.Serialize(taxRecord); ctextU.Parameters.AddWithValue("id", taxRecord.Id); @@ -127,7 +123,7 @@ namespace CarCareTracker.External.Implementations else { string cmd = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { var serializedData = JsonSerializer.Serialize(taxRecord); ctext.Parameters.AddWithValue("id", taxRecord.Id); @@ -147,7 +143,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE vehicleId = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", vehicleId); return ctext.ExecuteNonQuery() > 0; diff --git a/External/Implementations/Postgres/TokenRecordDataAccess.cs b/External/Implementations/Postgres/TokenRecordDataAccess.cs index 44375f7..ccd9fc8 100644 --- a/External/Implementations/Postgres/TokenRecordDataAccess.cs +++ b/External/Implementations/Postgres/TokenRecordDataAccess.cs @@ -6,22 +6,18 @@ namespace CarCareTracker.External.Implementations { public class PGTokenRecordDataAccess : ITokenRecordDataAccess { - private NpgsqlConnection pgDataSource; + private NpgsqlDataSource pgDataSource; private readonly ILogger _logger; private static string tableName = "tokenrecords"; public PGTokenRecordDataAccess(IConfiguration config, ILogger logger) { - pgDataSource = new NpgsqlConnection(config["POSTGRES_CONNECTION"]); + pgDataSource = NpgsqlDataSource.Create(config["POSTGRES_CONNECTION"]); _logger = logger; try { - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } //create table if not exist. string initCMD = $"CREATE TABLE IF NOT EXISTS app.{tableName} (id INT GENERATED BY DEFAULT AS IDENTITY primary key, body TEXT not null, emailaddress TEXT not null)"; - using (var ctext = new NpgsqlCommand(initCMD, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(initCMD)) { ctext.ExecuteNonQuery(); } @@ -37,7 +33,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT id, emailaddress, body FROM app.{tableName}"; var results = new List(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -63,7 +59,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT id, emailaddress, body FROM app.{tableName} WHERE body = @body"; var result = new Token(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("body", tokenBody); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -88,7 +84,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT id, emailaddress, body FROM app.{tableName} WHERE emailaddress = @emailaddress"; var result = new Token(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("emailaddress", emailAddress); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -112,7 +108,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"INSERT INTO app.{tableName} (emailaddress, body) VALUES(@emailaddress, @body) RETURNING id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("emailaddress", token.EmailAddress); ctext.Parameters.AddWithValue("body", token.Body); @@ -131,7 +127,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", tokenId); return ctext.ExecuteNonQuery() > 0; diff --git a/External/Implementations/Postgres/UpgradeRecordDataAccess.cs b/External/Implementations/Postgres/UpgradeRecordDataAccess.cs index a79df25..520a735 100644 --- a/External/Implementations/Postgres/UpgradeRecordDataAccess.cs +++ b/External/Implementations/Postgres/UpgradeRecordDataAccess.cs @@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations { public class PGUpgradeRecordDataAccess : IUpgradeRecordDataAccess { - private NpgsqlConnection pgDataSource; + private NpgsqlDataSource pgDataSource; private readonly ILogger _logger; private static string tableName = "upgraderecords"; public PGUpgradeRecordDataAccess(IConfiguration config, ILogger logger) { - pgDataSource = new NpgsqlConnection(config["POSTGRES_CONNECTION"]); + pgDataSource = NpgsqlDataSource.Create(config["POSTGRES_CONNECTION"]); _logger = logger; try { - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } //create table if not exist. string initCMD = $"CREATE TABLE IF NOT EXISTS app.{tableName} (id INT GENERATED BY DEFAULT AS IDENTITY primary key, vehicleId INT not null, data jsonb not null)"; - using (var ctext = new NpgsqlCommand(initCMD, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(initCMD)) { ctext.ExecuteNonQuery(); } @@ -38,7 +34,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE vehicleId = @vehicleId"; var results = new List(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", vehicleId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -62,7 +58,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE id = @id"; var result = new UpgradeRecord(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", upgradeRecordId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -85,7 +81,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", upgradeRecordId); return ctext.ExecuteNonQuery() > 0; @@ -104,7 +100,7 @@ namespace CarCareTracker.External.Implementations if (upgradeRecord.Id == default) { string cmd = $"INSERT INTO app.{tableName} (vehicleId, data) VALUES(@vehicleId, CAST(@data AS jsonb)) RETURNING id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", upgradeRecord.VehicleId); ctext.Parameters.AddWithValue("data", "{}"); @@ -113,7 +109,7 @@ namespace CarCareTracker.External.Implementations if (upgradeRecord.Id != default) { string cmdU = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctextU = new NpgsqlCommand(cmdU, pgDataSource)) + using (var ctextU = pgDataSource.CreateCommand(cmdU)) { var serializedData = JsonSerializer.Serialize(upgradeRecord); ctextU.Parameters.AddWithValue("id", upgradeRecord.Id); @@ -127,7 +123,7 @@ namespace CarCareTracker.External.Implementations else { string cmd = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { var serializedData = JsonSerializer.Serialize(upgradeRecord); ctext.Parameters.AddWithValue("id", upgradeRecord.Id); @@ -147,7 +143,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE vehicleId = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", vehicleId); return ctext.ExecuteNonQuery() > 0; diff --git a/External/Implementations/Postgres/UserAccessDataAcces.cs b/External/Implementations/Postgres/UserAccessDataAcces.cs index eeb5820..51cf076 100644 --- a/External/Implementations/Postgres/UserAccessDataAcces.cs +++ b/External/Implementations/Postgres/UserAccessDataAcces.cs @@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations { public class PGUserAccessDataAccess : IUserAccessDataAccess { - private NpgsqlConnection pgDataSource; + private NpgsqlDataSource pgDataSource; private readonly ILogger _logger; private static string tableName = "useraccessrecords"; public PGUserAccessDataAccess(IConfiguration config, ILogger logger) { - pgDataSource = new NpgsqlConnection(config["POSTGRES_CONNECTION"]); + pgDataSource = NpgsqlDataSource.Create(config["POSTGRES_CONNECTION"]); _logger = logger; try { - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } //create table if not exist. string initCMD = $"CREATE TABLE IF NOT EXISTS app.{tableName} (userId INT, vehicleId INT, PRIMARY KEY(userId, vehicleId))"; - using (var ctext = new NpgsqlCommand(initCMD, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(initCMD)) { ctext.ExecuteNonQuery(); } @@ -43,7 +39,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT userId, vehicleId FROM app.{tableName} WHERE userId = @userId"; var results = new List(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("userId", userId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -74,7 +70,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT userId, vehicleId FROM app.{tableName} WHERE userId = @userId AND vehicleId = @vehicleId"; UserAccess result = null; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("userId", userId); ctext.Parameters.AddWithValue("vehicleId", vehicleId); @@ -106,7 +102,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT userId, vehicleId FROM app.{tableName} WHERE vehicleId = @vehicleId"; var results = new List(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", vehicleId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -136,7 +132,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"INSERT INTO app.{tableName} (userId, vehicleId) VALUES(@userId, @vehicleId)"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("userId", userAccess.Id.UserId); ctext.Parameters.AddWithValue("vehicleId", userAccess.Id.VehicleId); @@ -154,7 +150,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE userId = @userId AND vehicleId = @vehicleId"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("userId", userId); ctext.Parameters.AddWithValue("vehicleId", vehicleId); @@ -177,7 +173,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE vehicleId = @vehicleId"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("vehicleId", vehicleId); return ctext.ExecuteNonQuery() > 0; @@ -199,7 +195,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE userId = @userId"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("userId", userId); return ctext.ExecuteNonQuery() > 0; diff --git a/External/Implementations/Postgres/UserConfigDataAccess.cs b/External/Implementations/Postgres/UserConfigDataAccess.cs index fff6570..673cee5 100644 --- a/External/Implementations/Postgres/UserConfigDataAccess.cs +++ b/External/Implementations/Postgres/UserConfigDataAccess.cs @@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations { public class PGUserConfigDataAccess: IUserConfigDataAccess { - private NpgsqlConnection pgDataSource; + private NpgsqlDataSource pgDataSource; private readonly ILogger _logger; private static string tableName = "userconfigrecords"; public PGUserConfigDataAccess(IConfiguration config, ILogger logger) { - pgDataSource = new NpgsqlConnection(config["POSTGRES_CONNECTION"]); + pgDataSource = NpgsqlDataSource.Create(config["POSTGRES_CONNECTION"]); _logger = logger; try { - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } //create table if not exist. string initCMD = $"CREATE TABLE IF NOT EXISTS app.{tableName} (id INT primary key, data jsonb not null)"; - using (var ctext = new NpgsqlCommand(initCMD, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(initCMD)) { ctext.ExecuteNonQuery(); } @@ -38,7 +34,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT data FROM app.{tableName} WHERE id = @id"; UserConfigData result = null; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", userId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -64,7 +60,7 @@ namespace CarCareTracker.External.Implementations if (existingRecord == null) { string cmd = $"INSERT INTO app.{tableName} (id, data) VALUES(@id, CAST(@data AS jsonb))"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { var serializedData = JsonSerializer.Serialize(userConfigData); ctext.Parameters.AddWithValue("id", userConfigData.Id); @@ -75,7 +71,7 @@ namespace CarCareTracker.External.Implementations else { string cmd = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { var serializedData = JsonSerializer.Serialize(userConfigData); ctext.Parameters.AddWithValue("id", userConfigData.Id); @@ -95,7 +91,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", userId); return ctext.ExecuteNonQuery() > 0; diff --git a/External/Implementations/Postgres/UserRecordDataAccess.cs b/External/Implementations/Postgres/UserRecordDataAccess.cs index 7507bfb..a77957d 100644 --- a/External/Implementations/Postgres/UserRecordDataAccess.cs +++ b/External/Implementations/Postgres/UserRecordDataAccess.cs @@ -6,22 +6,18 @@ namespace CarCareTracker.External.Implementations { public class PGUserRecordDataAccess : IUserRecordDataAccess { - private NpgsqlConnection pgDataSource; + private NpgsqlDataSource pgDataSource; private readonly ILogger _logger; private static string tableName = "userrecords"; public PGUserRecordDataAccess(IConfiguration config, ILogger logger) { - pgDataSource = new NpgsqlConnection(config["POSTGRES_CONNECTION"]); + pgDataSource = NpgsqlDataSource.Create(config["POSTGRES_CONNECTION"]); _logger = logger; try { - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } //create table if not exist. string initCMD = $"CREATE TABLE IF NOT EXISTS app.{tableName} (id INT GENERATED BY DEFAULT AS IDENTITY primary key, username TEXT not null, emailaddress TEXT not null, password TEXT not null, isadmin BOOLEAN)"; - using (var ctext = new NpgsqlCommand(initCMD, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(initCMD)) { ctext.ExecuteNonQuery(); } @@ -37,7 +33,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT id, username, emailaddress, password, isadmin FROM app.{tableName}"; var results = new List(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -65,7 +61,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT id, username, emailaddress, password, isadmin FROM app.{tableName} WHERE username = @username"; var result = new UserData(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("username", userName); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -92,7 +88,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT id, username, emailaddress, password, isadmin FROM app.{tableName} WHERE emailaddress = @emailaddress"; var result = new UserData(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("emailaddress", emailAddress); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -119,7 +115,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT id, username, emailaddress, password, isadmin FROM app.{tableName} WHERE id = @id"; var result = new UserData(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", userId); using (NpgsqlDataReader reader = ctext.ExecuteReader()) @@ -147,7 +143,7 @@ namespace CarCareTracker.External.Implementations if (userRecord.Id == default) { string cmd = $"INSERT INTO app.{tableName} (username, emailaddress, password, isadmin) VALUES(@username, @emailaddress, @password, @isadmin) RETURNING id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("username", userRecord.UserName); ctext.Parameters.AddWithValue("emailaddress", userRecord.EmailAddress); @@ -160,7 +156,7 @@ namespace CarCareTracker.External.Implementations else { string cmd = $"UPDATE app.{tableName} SET username = @username, emailaddress = @emailaddress, password = @password, isadmin = @isadmin WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", userRecord.Id); ctext.Parameters.AddWithValue("username", userRecord.UserName); @@ -182,7 +178,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", userId); return ctext.ExecuteNonQuery() > 0; diff --git a/External/Implementations/Postgres/VehicleDataAccess.cs b/External/Implementations/Postgres/VehicleDataAccess.cs index 230af71..1fad40a 100644 --- a/External/Implementations/Postgres/VehicleDataAccess.cs +++ b/External/Implementations/Postgres/VehicleDataAccess.cs @@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations { public class PGVehicleDataAccess: IVehicleDataAccess { - private NpgsqlConnection pgDataSource; + private NpgsqlDataSource pgDataSource; private readonly ILogger _logger; private static string tableName = "vehicles"; public PGVehicleDataAccess(IConfiguration config, ILogger logger) { - pgDataSource = new NpgsqlConnection(config["POSTGRES_CONNECTION"]); + pgDataSource = NpgsqlDataSource.Create(config["POSTGRES_CONNECTION"]); _logger = logger; try { - if (pgDataSource.State == System.Data.ConnectionState.Closed) - { - pgDataSource.Open(); - } //create table if not exist. string initCMD = $"CREATE TABLE IF NOT EXISTS app.{tableName} (id INT GENERATED BY DEFAULT AS IDENTITY primary key, data jsonb not null)"; - using (var ctext = new NpgsqlCommand(initCMD, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(initCMD)) { ctext.ExecuteNonQuery(); } @@ -42,7 +38,7 @@ namespace CarCareTracker.External.Implementations if (vehicle.Id == default) { string cmd = $"INSERT INTO app.{tableName} (data) VALUES(CAST(@data AS jsonb)) RETURNING id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("data", "{}"); vehicle.Id = Convert.ToInt32(ctext.ExecuteScalar()); @@ -50,7 +46,7 @@ namespace CarCareTracker.External.Implementations if (vehicle.Id != default) { string cmdU = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctextU = new NpgsqlCommand(cmdU, pgDataSource)) + using (var ctextU = pgDataSource.CreateCommand(cmdU)) { var serializedData = JsonSerializer.Serialize(vehicle); ctextU.Parameters.AddWithValue("id", vehicle.Id); @@ -64,7 +60,7 @@ namespace CarCareTracker.External.Implementations else { string cmd = $"UPDATE app.{tableName} SET data = CAST(@data AS jsonb) WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { var serializedData = JsonSerializer.Serialize(vehicle); ctext.Parameters.AddWithValue("id", vehicle.Id); @@ -83,7 +79,7 @@ namespace CarCareTracker.External.Implementations try { string cmd = $"DELETE FROM app.{tableName} WHERE id = @id"; - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", vehicleId); return ctext.ExecuteNonQuery() > 0; @@ -100,7 +96,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT id, data FROM app.{tableName} ORDER BY id ASC"; var results = new List(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { using (NpgsqlDataReader reader = ctext.ExecuteReader()) while (reader.Read()) @@ -122,7 +118,7 @@ namespace CarCareTracker.External.Implementations { string cmd = $"SELECT id, data FROM app.{tableName} WHERE id = @id"; Vehicle vehicle = new Vehicle(); - using (var ctext = new NpgsqlCommand(cmd, pgDataSource)) + using (var ctext = pgDataSource.CreateCommand(cmd)) { ctext.Parameters.AddWithValue("id", vehicleId); using (NpgsqlDataReader reader = ctext.ExecuteReader())