using BeautySalonDBModels.Models; using Npgsql; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BeautySalonDBModels.Implements { public class SpecialisationDatabase : AbstractWorkWithStorage { public override void Add(Specialisation specialisation) { using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("INSERT INTO specialisations (specialisation_id, specialisation_name) VALUES (nextval('seq_specialisation'), @Name)", conn); cmd.Parameters.AddWithValue("@Name", specialisation.Name); cmd.ExecuteNonQuery(); } public override Specialisation? GetObject(int id) { using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("SELECT * FROM specialisations WHERE specialisation_id = @id", conn); cmd.Parameters.AddWithValue("@id", id); using var reader = cmd.ExecuteReader(); if (reader.Read()) { return new Specialisation { SpecialisationId = reader.GetInt32(0), Name = reader.GetString(1) }; } return null; } public override List GetObjects() { var specialisations = new List(); using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("SELECT * FROM specialisations order by specialisation_id", conn); using var reader = cmd.ExecuteReader(); while (reader.Read()) { specialisations.Add(new Specialisation { SpecialisationId = reader.GetInt32(0), Name = reader.GetString(1) }); } return specialisations; } public override Specialisation? Remove(int id) { var specialisation = GetObject(id); if (specialisation != null) { using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("delete from specialisations where specialisation_id = @SpecialisationId", conn); cmd.Parameters.AddWithValue("@SpecialisationId", id); cmd.ExecuteNonQuery(); } return specialisation; } public override void Update(Specialisation specialisation) { using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("UPDATE specialisations SET specialisation_name = @Name WHERE specialisation_id = @SpecialisationId", conn); cmd.Parameters.AddWithValue("@Name", specialisation.Name); cmd.Parameters.AddWithValue("@SpecialisationId", specialisation.SpecialisationId); cmd.ExecuteNonQuery(); } } }