diff --git a/BeautySalon/BeautySalonDBModels/Implements/SpecialisationDB.cs b/BeautySalon/BeautySalonDBModels/Implements/SpecialisationDB.cs new file mode 100644 index 0000000..6b7a82f --- /dev/null +++ b/BeautySalon/BeautySalonDBModels/Implements/SpecialisationDB.cs @@ -0,0 +1,77 @@ +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 SpecialisationDB : AbstractWorkWithStorage + { + public override void Add(Specialisation specialisation) + { + using var conn = GetConnection(); + conn.Open(); + using var cmd = new NpgsqlCommand("INSERT INTO specialisations (specialisation_name) " + + "VALUES (@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); + 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); + using var conn = GetConnection(); + conn.Open(); + using var cmd = new NpgsqlCommand("delete from specialisations where specialisation_id = {id}", conn); + cmd.ExecuteNonQuery(); + return specialisation; + } + + public override void Update(Specialisation specialisation) + { + using var conn = GetConnection(); + conn.Open(); + using var cmd = new NpgsqlCommand("update specialisation set specialisation_name = {specialisation.Name}, " + + "where specialisation_id = {specialisation.SpecialisationId}", conn); + cmd.ExecuteNonQuery(); + } + } +}