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 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); return client; } public override void Update(Client client) { } } }