diff --git a/BeautySalon/BeautySalonDBModels/Implements/ServiceDB.cs b/BeautySalon/BeautySalonDBModels/Implements/ServiceDB.cs new file mode 100644 index 0000000..8872967 --- /dev/null +++ b/BeautySalon/BeautySalonDBModels/Implements/ServiceDB.cs @@ -0,0 +1,83 @@ +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 ServiceDB : AbstractWorkWithStorage + { + public override void Add(Service service) + { + using var conn = GetConnection(); + conn.Open(); + using var cmd = new NpgsqlCommand("INSERT INTO services (service_name, price, specialisation_id) " + + "VALUES (@ServiceName, @Price, @SpecialisationId)", conn); + cmd.Parameters.AddWithValue("@ServiceName", service.ServiceName); + cmd.Parameters.AddWithValue("@Price", service.Price); + cmd.Parameters.AddWithValue("@SpecialisationId", service.SpecialisationId); + cmd.ExecuteNonQuery(); + } + + public override Service? GetObject(int id) + { + using var conn = GetConnection(); + conn.Open(); + using var cmd = new NpgsqlCommand("SELECT * FROM services WHERE service_id = {id}", conn); + using var reader = cmd.ExecuteReader(); + if (reader.Read()) + { + return new Service + { + ServiceId = reader.GetInt32(0), + ServiceName = reader.GetString(1), + Price = reader.GetDouble(2), + SpecialisationId = reader.GetInt32(3) + }; + } + return null; + } + + public override List GetObjects() + { + var services = new List(); + using var conn = GetConnection(); + conn.Open(); + using var cmd = new NpgsqlCommand("SELECT * FROM services order by service_id", conn); + using var reader = cmd.ExecuteReader(); + while (reader.Read()) + { + services.Add(new Service + { + ServiceId = reader.GetInt32(0), + ServiceName = reader.GetString(1), + Price = reader.GetDouble(2), + SpecialisationId = reader.GetInt32(3) + }); + } + return services; + } + + public override Service? Remove(int id) + { + var service = GetObject(id); + using var conn = GetConnection(); + conn.Open(); + using var cmd = new NpgsqlCommand("delete from services where service_id = {id}", conn); + cmd.ExecuteNonQuery(); + return service; + } + + public override void Update(Service service) + { + using var conn = GetConnection(); + conn.Open(); + using var cmd = new NpgsqlCommand("update service set service_name = {service.ServiceName}, " + + "price = {service.Price}, specialisation_id = {service.SpecialisationId} where service_id = {service.ServiceId}", conn); + cmd.ExecuteNonQuery(); + } + } +}