70 lines
2.1 KiB
C#

using BeautySalonDBModels.Models;
using Npgsql;
namespace BeautySalonDBModels.Implements
{
public class ClientDB : AbstractWorkWithStorage<Client>
{
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<Client> GetObjects()
{
var clients = new List<Client>();
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)
{
}
}
}