using MedicalDatabaseContracts.Models; using Npgsql; namespace MedicalPostgresqlDatabase.Storages { public class DiagnosesStorage : AbstractPostgresqlStorage { 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 GetAll() { var items = new List(); 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(); } } }