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 ReceptionBD : AbstractWorkWithStorage { public override void Add(Reception reception) { using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("INSERT INTO receptions (master_id, service_id, date_reception) " + "VALUES (@MasterId, @ServiceId, @DateReception)", conn); cmd.Parameters.AddWithValue("@MasterId", reception.MasterId); cmd.Parameters.AddWithValue("@ServiceId", reception.ServiceId); cmd.Parameters.AddWithValue("@DateReception", reception.DateReception); cmd.ExecuteNonQuery(); } public override Reception? GetObject(int id) { using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("SELECT * FROM receptions WHERE reception_id = {id}", conn); using var reader = cmd.ExecuteReader(); if (reader.Read()) { return new Reception { ReceptionId = reader.GetInt32(0), MasterId = reader.GetInt32(1), ServiceId = reader.GetInt32(2), DateReception = reader.GetDateTime(3) }; } return null; } public override List GetObjects() { var receptions = new List(); using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("SELECT * FROM receptions order by reception_id", conn); using var reader = cmd.ExecuteReader(); while (reader.Read()) { receptions.Add(new Reception { ReceptionId = reader.GetInt32(0), MasterId = reader.GetInt32(1), ServiceId = reader.GetInt32(2), DateReception = reader.GetDateTime(3) }); } return receptions; } public override Reception? Remove(int id) { var reception = GetObject(id); using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("delete from receptions where reception_id = {id}", conn); cmd.ExecuteNonQuery(); return reception; } public override void Update(Reception reception) { using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("update reception set master_id = {reception.MasterId}, " + "service_id = {reception.ServiceId}, date_reception = {reception.DateReception} where reception_id = {reception.ReceptionId}", conn); cmd.ExecuteNonQuery(); } } }