73 lines
2.5 KiB
C#
73 lines
2.5 KiB
C#
using MedicalDatabaseContracts.Models;
|
|
using Npgsql;
|
|
|
|
namespace MedicalPostgresqlDatabase.Storages
|
|
{
|
|
public class DiagnosesStorage : AbstractPostgresqlStorage<Diagnose>
|
|
{
|
|
public override void Delete(int id)
|
|
{
|
|
using var connection = GetConnection();
|
|
connection.Open();
|
|
using var cmd = new NpgsqlCommand("DELETE FROM diagnoses WHERE diagnose_id = @id", connection);
|
|
cmd.Parameters.AddWithValue("@id", id);
|
|
cmd.ExecuteNonQuery();
|
|
}
|
|
|
|
public override Diagnose? Get(int id)
|
|
{
|
|
using var connection = GetConnection();
|
|
connection.Open();
|
|
using var cmd = new NpgsqlCommand("SELECT * FROM diagnoses WHERE diagnose_id = @id", connection);
|
|
cmd.Parameters.AddWithValue("@id", id);
|
|
using var reader = cmd.ExecuteReader();
|
|
if (reader.Read())
|
|
{
|
|
return new Diagnose
|
|
{
|
|
Id = reader.GetInt32(0),
|
|
Name = reader.GetString(1),
|
|
};
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public override List<Diagnose> GetAll()
|
|
{
|
|
var items = new List<Diagnose>();
|
|
using var connection = GetConnection();
|
|
connection.Open();
|
|
using var cmd = new NpgsqlCommand("SELECT * FROM diagnoses ORDER BY diagnose_id", connection);
|
|
using var reader = cmd.ExecuteReader();
|
|
while (reader.Read())
|
|
{
|
|
items.Add(new Diagnose
|
|
{
|
|
Id = reader.GetInt32(0),
|
|
Name = reader.GetString(1),
|
|
});
|
|
}
|
|
return items;
|
|
}
|
|
|
|
public override void Insert(Diagnose item)
|
|
{
|
|
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);
|
|
cmd.ExecuteNonQuery();
|
|
}
|
|
|
|
public override void Update(Diagnose item)
|
|
{
|
|
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);
|
|
cmd.ExecuteNonQuery();
|
|
}
|
|
}
|
|
}
|