Updated command.

This commit is contained in:
DESKTOP-GENO133\IvanPlex 2024-02-10 11:46:34 -07:00
parent d3f94337ae
commit c10aa73e5e
17 changed files with 191 additions and 262 deletions

View File

@ -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<string>
{
@ -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<Vehicle>();
@ -103,7 +99,7 @@ namespace CarCareTracker.Controllers
var useraccessrecords = new List<UserAccess>();
#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<Vehicle>();
@ -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);

View File

@ -7,22 +7,19 @@ namespace CarCareTracker.External.Implementations
{
public class PGCollisionRecordDataAccess : ICollisionRecordDataAccess
{
private NpgsqlConnection pgDataSource;
private NpgsqlDataSource pgDataSource;
private readonly ILogger<PGCollisionRecordDataAccess> _logger;
private static string tableName = "collisionrecords";
public PGCollisionRecordDataAccess(IConfiguration config, ILogger<PGCollisionRecordDataAccess> 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<CollisionRecord>();
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;

View File

@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations
{
public class PGGasRecordDataAccess: IGasRecordDataAccess
{
private NpgsqlConnection pgDataSource;
private NpgsqlDataSource pgDataSource;
private readonly ILogger<PGGasRecordDataAccess> _logger;
private static string tableName = "gasrecords";
public PGGasRecordDataAccess(IConfiguration config, ILogger<PGGasRecordDataAccess> 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<GasRecord>();
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;

View File

@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations
{
public class PGNoteDataAccess: INoteDataAccess
{
private NpgsqlConnection pgDataSource;
private NpgsqlDataSource pgDataSource;
private readonly ILogger<PGNoteDataAccess> _logger;
private static string tableName = "notes";
public PGNoteDataAccess(IConfiguration config, ILogger<PGNoteDataAccess> 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<Note>();
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;

View File

@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations
{
public class PGOdometerRecordDataAccess : IOdometerRecordDataAccess
{
private NpgsqlConnection pgDataSource;
private NpgsqlDataSource pgDataSource;
private readonly ILogger<PGOdometerRecordDataAccess> _logger;
private static string tableName = "odometerrecords";
public PGOdometerRecordDataAccess(IConfiguration config, ILogger<PGOdometerRecordDataAccess> 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<OdometerRecord>();
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;

View File

@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations
{
public class PGPlanRecordDataAccess : IPlanRecordDataAccess
{
private NpgsqlConnection pgDataSource;
private NpgsqlDataSource pgDataSource;
private readonly ILogger<PGPlanRecordDataAccess> _logger;
private static string tableName = "planrecords";
public PGPlanRecordDataAccess(IConfiguration config, ILogger<PGPlanRecordDataAccess> 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<PlanRecord>();
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;

View File

@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations
{
public class PGPlanRecordTemplateDataAccess : IPlanRecordTemplateDataAccess
{
private NpgsqlConnection pgDataSource;
private NpgsqlDataSource pgDataSource;
private readonly ILogger<PGPlanRecordTemplateDataAccess> _logger;
private static string tableName = "planrecordtemplates";
public PGPlanRecordTemplateDataAccess(IConfiguration config, ILogger<PGPlanRecordTemplateDataAccess> 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<PlanRecordInput>();
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;

View File

@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations
{
public class PGReminderRecordDataAccess : IReminderRecordDataAccess
{
private NpgsqlConnection pgDataSource;
private NpgsqlDataSource pgDataSource;
private readonly ILogger<PGReminderRecordDataAccess> _logger;
private static string tableName = "reminderrecords";
public PGReminderRecordDataAccess(IConfiguration config, ILogger<PGReminderRecordDataAccess> 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<ReminderRecord>();
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;

View File

@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations
{
public class PGServiceRecordDataAccess: IServiceRecordDataAccess
{
private NpgsqlConnection pgDataSource;
private NpgsqlDataSource pgDataSource;
private readonly ILogger<PGServiceRecordDataAccess> _logger;
private static string tableName = "servicerecords";
public PGServiceRecordDataAccess(IConfiguration config, ILogger<PGServiceRecordDataAccess> 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<ServiceRecord>();
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;

View File

@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations
{
public class PGSupplyRecordDataAccess : ISupplyRecordDataAccess
{
private NpgsqlConnection pgDataSource;
private NpgsqlDataSource pgDataSource;
private readonly ILogger<PGSupplyRecordDataAccess> _logger;
private static string tableName = "supplyrecords";
public PGSupplyRecordDataAccess(IConfiguration config, ILogger<PGSupplyRecordDataAccess> 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<SupplyRecord>();
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;

View File

@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations
{
public class PGTaxRecordDataAccess : ITaxRecordDataAccess
{
private NpgsqlConnection pgDataSource;
private NpgsqlDataSource pgDataSource;
private readonly ILogger<PGTaxRecordDataAccess> _logger;
private static string tableName = "taxrecords";
public PGTaxRecordDataAccess(IConfiguration config, ILogger<PGTaxRecordDataAccess> 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<TaxRecord>();
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;

View File

@ -6,22 +6,18 @@ namespace CarCareTracker.External.Implementations
{
public class PGTokenRecordDataAccess : ITokenRecordDataAccess
{
private NpgsqlConnection pgDataSource;
private NpgsqlDataSource pgDataSource;
private readonly ILogger<PGTokenRecordDataAccess> _logger;
private static string tableName = "tokenrecords";
public PGTokenRecordDataAccess(IConfiguration config, ILogger<PGTokenRecordDataAccess> 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<Token>();
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;

View File

@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations
{
public class PGUpgradeRecordDataAccess : IUpgradeRecordDataAccess
{
private NpgsqlConnection pgDataSource;
private NpgsqlDataSource pgDataSource;
private readonly ILogger<PGUpgradeRecordDataAccess> _logger;
private static string tableName = "upgraderecords";
public PGUpgradeRecordDataAccess(IConfiguration config, ILogger<PGUpgradeRecordDataAccess> 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<UpgradeRecord>();
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;

View File

@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations
{
public class PGUserAccessDataAccess : IUserAccessDataAccess
{
private NpgsqlConnection pgDataSource;
private NpgsqlDataSource pgDataSource;
private readonly ILogger<PGUserAccessDataAccess> _logger;
private static string tableName = "useraccessrecords";
public PGUserAccessDataAccess(IConfiguration config, ILogger<PGUserAccessDataAccess> 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<UserAccess>();
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<UserAccess>();
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;

View File

@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations
{
public class PGUserConfigDataAccess: IUserConfigDataAccess
{
private NpgsqlConnection pgDataSource;
private NpgsqlDataSource pgDataSource;
private readonly ILogger<PGUserConfigDataAccess> _logger;
private static string tableName = "userconfigrecords";
public PGUserConfigDataAccess(IConfiguration config, ILogger<PGUserConfigDataAccess> 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;

View File

@ -6,22 +6,18 @@ namespace CarCareTracker.External.Implementations
{
public class PGUserRecordDataAccess : IUserRecordDataAccess
{
private NpgsqlConnection pgDataSource;
private NpgsqlDataSource pgDataSource;
private readonly ILogger<PGUserRecordDataAccess> _logger;
private static string tableName = "userrecords";
public PGUserRecordDataAccess(IConfiguration config, ILogger<PGUserRecordDataAccess> 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<UserData>();
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;

View File

@ -7,22 +7,18 @@ namespace CarCareTracker.External.Implementations
{
public class PGVehicleDataAccess: IVehicleDataAccess
{
private NpgsqlConnection pgDataSource;
private NpgsqlDataSource pgDataSource;
private readonly ILogger<PGVehicleDataAccess> _logger;
private static string tableName = "vehicles";
public PGVehicleDataAccess(IConfiguration config, ILogger<PGVehicleDataAccess> 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<Vehicle>();
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())