53 lines
1.9 KiB
C#
Raw Normal View History

using MedicalDatabaseContracts.Models;
using Microsoft.Extensions.Logging;
using Npgsql;
using System.Diagnostics;
namespace MedicalPostgresqlDatabase.Storages
{
public class DiagnosesStorage : AbstractPostgresqlStorage<Diagnose>
{
private ILogger _logger;
public DiagnosesStorage(ILogger<DiagnosesStorage> logger) : base("diagnoses", "diagnose_id")
{
_logger = logger;
}
protected override Diagnose CreateEntityFromReader(NpgsqlDataReader reader)
{
return new Diagnose
{
Id = reader.GetInt32(0),
Name = reader.GetString(1),
};
}
public override void Insert(Diagnose item, out long elapsedMilliseconds)
{
using var connection = GetConnection();
connection.Open();
using var cmd = new NpgsqlCommand("INSERT INTO diagnoses (diagnose_id, name) VALUES ((nextval('diagnoses_id_seq')), @name)", connection);
cmd.Parameters.AddWithValue("@name", item.Name);
Stopwatch stopwatch = new();
stopwatch.Start();
cmd.ExecuteNonQuery();
stopwatch.Stop();
elapsedMilliseconds = stopwatch.ElapsedMilliseconds;
}
public override void Update(Diagnose item, out long elapsedMilliseconds)
{
using var connection = GetConnection();
connection.Open();
using var cmd = new NpgsqlCommand("UPDATE diagnoses SET name = @name WHERE diagnose_id = @id", connection);
cmd.Parameters.AddWithValue("@id", item.Id);
cmd.Parameters.AddWithValue("@name", item.Name);
Stopwatch stopwatch = new();
stopwatch.Start();
cmd.ExecuteNonQuery();
stopwatch.Stop();
elapsedMilliseconds = stopwatch.ElapsedMilliseconds;
}
}
}