using Npgsql; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DepartmentStaffDatabase { public class Implements: Abstracts { private NpgsqlConnection GetConnect() { return new NpgsqlConnection("Host=192.168.56.103;Username=postgres;Password=postgres;Database=TestLab3"); } public override void CreateDepartment(Department department) { using var conn = GetConnect(); conn.Open(); using var cmd = new NpgsqlCommand ("INSERT INTO department VALUES (nextval('Department_seq'), @Name, @Head)", conn); cmd.Parameters.AddWithValue("@name", department.DepartmentName); cmd.Parameters.AddWithValue("@head", department.Head); cmd.ExecuteNonQuery(); } public override void UpdateDepartment(Department department) { using var conn = GetConnect(); conn.Open(); using var cmd = new NpgsqlCommand($"UPDATE department SET name = @name, head = @head WHERE id = @Id", conn); cmd.Parameters.AddWithValue("@name", department.DepartmentName); cmd.Parameters.AddWithValue("@head", department.Head); cmd.ExecuteNonQuery(); } public override void DeleteDepartment(int id) { using var conn = GetConnect(); conn.Open(); using var cmd = new NpgsqlCommand($"DELETE FROM department WHERE id = @Id", conn); cmd.Parameters.AddWithValue("@Id", id); cmd.ExecuteNonQuery(); } public override Department GetDepartment(int id) { using var conn = GetConnect(); conn.Open(); using var cmd = new NpgsqlCommand($"SELECT * FROM department WHERE id = {id}", conn); using var reader = cmd.ExecuteReader(); if (reader.Read()) { return new Department { Id = reader.GetInt32(0), DepartmentName = reader.GetString(1), Head = reader.GetString(2), }; } return null; } public override Department GetDepartment(string departmentName) { using var conn = GetConnect(); conn.Open(); using var cmd = new NpgsqlCommand($"SELECT * FROM department WHERE name = {departmentName}", conn); using var reader = cmd.ExecuteReader(); if (reader.Read()) { return new Department { Id = reader.GetInt32(0), DepartmentName = reader.GetString(1), Head = reader.GetString(2), }; } return null; } public override List GetDepartments() { List departments = new List(); using var conn = GetConnect(); conn.Open(); using var cmd = new NpgsqlCommand("SELECT * FROM department", conn); using var reader = cmd.ExecuteReader(); while (reader.Read()) { departments.Add(new Department { Id = reader.GetInt32(0), DepartmentName = reader.GetString(1), Head = reader.GetString(2), }); } return departments; } public override void DeleteDepartments() { using var conn = GetConnect(); conn.Open(); using var cmd = new NpgsqlCommand($"DELETE FROM department", conn); cmd.ExecuteNonQuery(); } //======================================================================= public override void CreatePosition(Position position) { using var conn = GetConnect(); conn.Open(); using var cmd = new NpgsqlCommand ("INSERT INTO position VALUES (nextval('Position_seq'), @Name, @Salary, @DepartmentId)", conn); cmd.Parameters.AddWithValue("@name", position.PositionName); cmd.Parameters.AddWithValue("@salary", position.Salary); cmd.Parameters.AddWithValue("@departmentId", position.DepartmentId); cmd.ExecuteNonQuery(); } public override void UpdatePosition(Position position) { using var conn = GetConnect(); conn.Open(); using var cmd = new NpgsqlCommand($"UPDATE position SET name = @name, salary = @salary, departmentId = @departmentId WHERE id = @Id", conn); cmd.Parameters.AddWithValue("@name", position.PositionName); cmd.Parameters.AddWithValue("@salary", position.Salary); cmd.Parameters.AddWithValue("@departmentId", position.DepartmentId); cmd.ExecuteNonQuery(); } public override void DeletePosition(int id) { using var conn = GetConnect(); conn.Open(); using var cmd = new NpgsqlCommand($"DELETE FROM position WHERE id = @Id", conn); cmd.Parameters.AddWithValue("@Id", id); cmd.ExecuteNonQuery(); } public override Position GetPosition(int id) { using var conn = GetConnect(); conn.Open(); using var cmd = new NpgsqlCommand($"SELECT * FROM position WHERE id = {id}", conn); using var reader = cmd.ExecuteReader(); if (reader.Read()) { return new Position { Id = reader.GetInt32(0), PositionName = reader.GetString(1), Salary = reader.GetDouble(2), DepartmentId = reader.GetInt32(3), }; } return null; } public override Position GetPosition(string positionName) { using var conn = GetConnect(); conn.Open(); using var cmd = new NpgsqlCommand($"SELECT * FROM position WHERE id = {positionName}", conn); using var reader = cmd.ExecuteReader(); if (reader.Read()) { return new Position { Id = reader.GetInt32(0), PositionName = reader.GetString(1), Salary = reader.GetDouble(2), DepartmentId = reader.GetInt32(3), }; } return null; } public override List GetPositions() { List positions = new List(); using var conn = GetConnect(); conn.Open(); using var cmd = new NpgsqlCommand("SELECT * FROM position", conn); using var reader = cmd.ExecuteReader(); while (reader.Read()) { positions.Add(new Position { Id = reader.GetInt32(0), PositionName = reader.GetString(1), Salary = reader.GetDouble(2), DepartmentId = reader.GetInt32(3), }); } return positions; } public override void Deletepositions() { using var conn = GetConnect(); conn.Open(); using var cmd = new NpgsqlCommand($"DELETE FROM position", conn); cmd.ExecuteNonQuery(); } //======================================================================= //public override void CreateEmployee(Employee employee) //{ // using var conn = GetConnect(); // conn.Open(); // using var cmd = new NpgsqlCommand // ("INSERT INTO employee VALUES (nextval('Employee_seq'), @Name, @Birthdate, @Address, @PhoneNumber, @Email, @PositionId)", conn); // cmd.Parameters.AddWithValue("@name", employee.EmployeeName); // cmd.Parameters.AddWithValue("@Birthdate", employee.Birthdate); // cmd.Parameters.AddWithValue("@Address", employee.Address); // cmd.Parameters.AddWithValue("@PhoneNumber", employee.PhoneNumber); // cmd.Parameters.AddWithValue("@Email", employee.Email); // cmd.Parameters.AddWithValue("@PositionId", employee.PositionId); // cmd.ExecuteNonQuery(); //} //public override void UpdateEmployee(Employee employee) //{ // using var conn = GetConnect(); // conn.Open(); // using var cmd = new NpgsqlCommand($"UPDATE employee SET name = @name, salary = @salary, departmentId = @departmentId WHERE id = @Id", conn); // cmd.Parameters.AddWithValue("@name", position.PositionName); // cmd.Parameters.AddWithValue("@salary", position.Salary); // cmd.Parameters.AddWithValue("@departmentId", position.DepartmentId); // cmd.ExecuteNonQuery(); //} //public override void DeleteEmployee(int id); //public override Employee GetEmployee(int id); //public override Employee GetEmployee(string employeeName); //public override List GetEmployees(); //public override void DeleteEmployees(); } }