using BeautySalonDBModels.Models; using Npgsql; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BeautySalonDBModels.Implements { public class ChequeDatabase : AbstractWorkWithStorage { public override void Add(Cheque cheque) { using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("INSERT INTO cheques (cheque_id, client_id, reception_id) VALUES ((nextval('seq_cheque')), @ClientId, @ReceptionId)", conn); cmd.Parameters.AddWithValue("@ClientId", cheque.ClientId); cmd.Parameters.AddWithValue("@ReceptionId", cheque.ReceptionId); cmd.ExecuteNonQuery(); } public override Cheque? GetObject(int id) { using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("SELECT * FROM cheques WHERE cheque_id = @id", conn); cmd.Parameters.AddWithValue("@id", id); using var reader = cmd.ExecuteReader(); if (reader.Read()) { return new Cheque { ChequeId = reader.GetInt32(0), ClientId = reader.GetInt32(1), ReceptionId = reader.GetInt32(2) }; } return null; } public override List GetObjects() { var cheques = new List(); using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("SELECT * FROM cheques order by cheque_id", conn); using var reader = cmd.ExecuteReader(); while (reader.Read()) { cheques.Add(new Cheque { ChequeId = reader.GetInt32(0), ClientId = reader.GetInt32(1), ReceptionId = reader.GetInt32(2) }); } return cheques; } public override Cheque? Remove(int id) { var cheque = GetObject(id); using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("delete from cheques where cheque_id = @id", conn); cmd.Parameters.AddWithValue("@id", id); cmd.ExecuteNonQuery(); return cheque; } public override void Update(Cheque cheque) { using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("update cheque set client_id = @ClientId, " + "reception_id = @ReceptionId where cheque_id = @ChequeId", conn); cmd.Parameters.AddWithValue("@ClientId", cheque.ClientId); cmd.Parameters.AddWithValue("@ReceptionId", cheque.ReceptionId); cmd.Parameters.AddWithValue("@ChequeId", cheque.ChequeId); cmd.ExecuteNonQuery(); } } }