diff --git a/BeautySalon/BeautySalonDBModels/Implements/MasterDB.cs b/BeautySalon/BeautySalonDBModels/Implements/MasterDB.cs new file mode 100644 index 0000000..a169a09 --- /dev/null +++ b/BeautySalon/BeautySalonDBModels/Implements/MasterDB.cs @@ -0,0 +1,79 @@ +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 MasterDB : AbstractWorkWithStorage + { + public override void Add(Master master) + { + using var conn = GetConnection(); + conn.Open(); + using var cmd = new NpgsqlCommand("INSERT INTO masters (specialisation_id, fio) VALUES (@SpecialisationId, @FIO)", conn); + cmd.Parameters.AddWithValue("@SpecialisationId", master.SpecialisationId); + cmd.Parameters.AddWithValue("@FIO", master.FIO); + cmd.ExecuteNonQuery(); + } + + public override Master? GetObject(int id) + { + using var conn = GetConnection(); + conn.Open(); + using var cmd = new NpgsqlCommand("SELECT * FROM masters WHERE master_id = {id}", conn); + using var reader = cmd.ExecuteReader(); + if (reader.Read()) + { + return new Master + { + MasterId = reader.GetInt32(0), + SpecialisationId = reader.GetInt32(1), + FIO = reader.GetString(2) + }; + } + return null; + } + + public override List GetObjects() + { + var masters = new List(); + using var conn = GetConnection(); + conn.Open(); + using var cmd = new NpgsqlCommand("SELECT * FROM masters order by master_id", conn); + using var reader = cmd.ExecuteReader(); + while (reader.Read()) + { + masters.Add(new Master + { + MasterId = reader.GetInt32(0), + SpecialisationId = reader.GetInt32(1), + FIO = reader.GetString(2) + }); + } + return masters; + } + + public override Master? Remove(int id) + { + var master = GetObject(id); + using var conn = GetConnection(); + conn.Open(); + using var cmd = new NpgsqlCommand("delete from masters where master_id = {id}", conn); + cmd.ExecuteNonQuery(); + return master; + } + + public override void Update(Master master) + { + using var conn = GetConnection(); + conn.Open(); + using var cmd = new NpgsqlCommand("update master set specialisation_id = {master.SpecialisationId}, " + + "fio = {master.FIO} where master_id = {master.MasterId}", conn); + cmd.ExecuteNonQuery(); + } + } +}