2024-05-02 12:54:17 +04:00
|
|
|
|
using BeautySalonDBModels.Models;
|
|
|
|
|
using Npgsql;
|
|
|
|
|
|
|
|
|
|
namespace BeautySalonDBModels.Implements
|
|
|
|
|
{
|
2024-05-06 23:40:35 +04:00
|
|
|
|
public class ClientDatabase : AbstractWorkWithStorage<Client>
|
2024-05-02 12:54:17 +04:00
|
|
|
|
{
|
|
|
|
|
public override void Add(Client client)
|
|
|
|
|
{
|
|
|
|
|
using var conn = GetConnection();
|
|
|
|
|
conn.Open();
|
2024-05-07 21:59:08 +04:00
|
|
|
|
using var cmd = new NpgsqlCommand("INSERT INTO clients (client_id, fio, age) VALUES ((nextval('seq_client')), @FIO, @Age)", conn);
|
2024-05-02 12:54:17 +04:00
|
|
|
|
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();
|
2024-05-07 21:59:08 +04:00
|
|
|
|
using var cmd = new NpgsqlCommand("SELECT * FROM clients WHERE client_id = @id", conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@id", id);
|
2024-05-02 12:54:17 +04:00
|
|
|
|
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();
|
2024-05-02 19:58:22 +04:00
|
|
|
|
using var cmd = new NpgsqlCommand("SELECT * FROM clients order by client_id", conn);
|
2024-05-02 12:54:17 +04:00
|
|
|
|
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();
|
2024-05-07 21:59:08 +04:00
|
|
|
|
using var cmd = new NpgsqlCommand("delete from clients where client_id = @id", conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@id", id);
|
2024-05-02 19:58:22 +04:00
|
|
|
|
cmd.ExecuteNonQuery();
|
2024-05-02 12:54:17 +04:00
|
|
|
|
return client;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void Update(Client client)
|
|
|
|
|
{
|
2024-05-02 19:58:22 +04:00
|
|
|
|
using var conn = GetConnection();
|
|
|
|
|
conn.Open();
|
2024-05-07 21:59:08 +04:00
|
|
|
|
using var cmd = new NpgsqlCommand("update clients set fio = @FIO, " +
|
|
|
|
|
"age = @Age where client_id = @ClientId", conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@FIO", client.FIO);
|
|
|
|
|
cmd.Parameters.AddWithValue("@Age", client.Age);
|
|
|
|
|
cmd.Parameters.AddWithValue("@ClientId", client.ClientId);
|
2024-05-02 19:58:22 +04:00
|
|
|
|
cmd.ExecuteNonQuery();
|
2024-05-02 12:54:17 +04:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|