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 SpecialisationDB : AbstractWorkWithStorage { public override void Add(Specialisation specialisation) { using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("INSERT INTO specialisations (specialisation_name) " + "VALUES (@Name)", conn); cmd.Parameters.AddWithValue("@Name", specialisation.Name); cmd.ExecuteNonQuery(); } public override Specialisation? GetObject(int id) { using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("SELECT * FROM specialisations WHERE specialisation_id = {id}", conn); using var reader = cmd.ExecuteReader(); if (reader.Read()) { return new Specialisation { SpecialisationId = reader.GetInt32(0), Name = reader.GetString(1) }; } return null; } public override List GetObjects() { var specialisations = new List(); using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("SELECT * FROM specialisations order by specialisation_id", conn); using var reader = cmd.ExecuteReader(); while (reader.Read()) { specialisations.Add(new Specialisation { SpecialisationId = reader.GetInt32(0), Name = reader.GetString(1) }); } return specialisations; } public override Specialisation? Remove(int id) { var specialisation = GetObject(id); using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("delete from specialisations where specialisation_id = {id}", conn); cmd.ExecuteNonQuery(); return specialisation; } public override void Update(Specialisation specialisation) { using var conn = GetConnection(); conn.Open(); using var cmd = new NpgsqlCommand("update specialisation set specialisation_name = {specialisation.Name}, " + "where specialisation_id = {specialisation.SpecialisationId}", conn); cmd.ExecuteNonQuery(); } } }