using BeautySalonDBModels.Models; using Npgsql; namespace BeautySalonDBModels.Implements { public class ClientDB : AbstractWorkWithStorage { public override void Add(Client client) { using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("INSERT INTO clients (fio, age) VALUES (@FIO, @Age)", conn); cmd.Parameters.AddWithValue("@FIO", client.FIO); cmd.Parameters.AddWithValue("@Age", client.Age); cmd.ExecuteNonQuery(); } public override Client? GetObject(int id) { using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("SELECT * FROM clients WHERE client_id = {id}", conn); using var reader = cmd.ExecuteReader(); if (reader.Read()) { return new Client { ClientId = reader.GetInt32(0), FIO = reader.GetString(1), Age = reader.GetInt32(2) }; } return null; } public override List GetObjects() { var clients = new List(); using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("SELECT * FROM clients order by client_id", conn); using var reader = cmd.ExecuteReader(); while (reader.Read()) { clients.Add(new Client { ClientId = reader.GetInt32(0), FIO = reader.GetString(1), Age = reader.GetInt32(2) }); } return clients; } public override Client? Remove(int id) { var client = GetObject(id); using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("delete from clients where client_id = {id}", conn); cmd.ExecuteNonQuery(); return client; } public override void Update(Client client) { using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("update clients set fio = {client.FIO}, " + "age = {client.Age} where client_id = {client.ClientId}", conn); cmd.ExecuteNonQuery(); } } }