2024-05-02 20:13:53 +04:00
|
|
|
|
using BeautySalonDBModels.Models;
|
|
|
|
|
using Npgsql;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
2024-05-07 21:59:08 +04:00
|
|
|
|
using System.Diagnostics.Metrics;
|
2024-05-02 20:13:53 +04:00
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
namespace BeautySalonDBModels.Implements
|
|
|
|
|
{
|
2024-05-07 22:33:37 +04:00
|
|
|
|
public class MasterDatabase : AbstractWorkWithStorage<Master>
|
2024-05-02 20:13:53 +04:00
|
|
|
|
{
|
|
|
|
|
public override void Add(Master master)
|
|
|
|
|
{
|
|
|
|
|
using var conn = GetConnection();
|
|
|
|
|
conn.Open();
|
2024-05-07 22:33:37 +04:00
|
|
|
|
using var cmd = new NpgsqlCommand("INSERT INTO masters (master_id, specialisation_id, fio) VALUES ((nextval('seq_master'), @SpecialisationId, @FIO)", conn);
|
2024-05-02 20:13:53 +04:00
|
|
|
|
cmd.Parameters.AddWithValue("@SpecialisationId", master.SpecialisationId);
|
|
|
|
|
cmd.Parameters.AddWithValue("@FIO", master.FIO);
|
|
|
|
|
cmd.ExecuteNonQuery();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override Master? GetObject(int id)
|
|
|
|
|
{
|
|
|
|
|
using var conn = GetConnection();
|
|
|
|
|
conn.Open();
|
2024-05-07 21:59:08 +04:00
|
|
|
|
using var cmd = new NpgsqlCommand("SELECT * FROM masters WHERE master_id = @id", conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@id", id);
|
2024-05-02 20:13:53 +04:00
|
|
|
|
using var reader = cmd.ExecuteReader();
|
|
|
|
|
if (reader.Read())
|
|
|
|
|
{
|
|
|
|
|
return new Master
|
|
|
|
|
{
|
|
|
|
|
MasterId = reader.GetInt32(0),
|
|
|
|
|
SpecialisationId = reader.GetInt32(1),
|
|
|
|
|
FIO = reader.GetString(2)
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override List<Master> GetObjects()
|
|
|
|
|
{
|
|
|
|
|
var masters = new List<Master>();
|
|
|
|
|
using var conn = GetConnection();
|
|
|
|
|
conn.Open();
|
|
|
|
|
using var cmd = new NpgsqlCommand("SELECT * FROM masters order by master_id", conn);
|
|
|
|
|
using var reader = cmd.ExecuteReader();
|
|
|
|
|
while (reader.Read())
|
|
|
|
|
{
|
|
|
|
|
masters.Add(new Master
|
|
|
|
|
{
|
|
|
|
|
MasterId = reader.GetInt32(0),
|
|
|
|
|
SpecialisationId = reader.GetInt32(1),
|
|
|
|
|
FIO = reader.GetString(2)
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
return masters;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override Master? Remove(int id)
|
|
|
|
|
{
|
|
|
|
|
var master = GetObject(id);
|
|
|
|
|
using var conn = GetConnection();
|
|
|
|
|
conn.Open();
|
2024-05-07 21:59:08 +04:00
|
|
|
|
using var cmd = new NpgsqlCommand("delete from masters where master_id = @id", conn);
|
|
|
|
|
|
|
|
|
|
cmd.Parameters.AddWithValue("@id", id);
|
2024-05-02 20:13:53 +04:00
|
|
|
|
cmd.ExecuteNonQuery();
|
|
|
|
|
return master;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void Update(Master master)
|
|
|
|
|
{
|
|
|
|
|
using var conn = GetConnection();
|
|
|
|
|
conn.Open();
|
2024-05-07 21:59:08 +04:00
|
|
|
|
using var cmd = new NpgsqlCommand("update master set specialisation_id = @specId, " +
|
|
|
|
|
"fio = @fio where master_id = @id", conn);
|
|
|
|
|
cmd.Parameters.AddWithValue("@specId", master.SpecialisationId);
|
|
|
|
|
cmd.Parameters.AddWithValue("@fio", master.FIO);
|
|
|
|
|
cmd.Parameters.AddWithValue("@id", master.MasterId);
|
2024-05-02 20:13:53 +04:00
|
|
|
|
cmd.ExecuteNonQuery();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|