From 3d7f0ac06148ebd9ed35ef2179433cf3bee7034f Mon Sep 17 00:00:00 2001 From: mar-va Date: Tue, 17 Dec 2024 22:50:36 +0400 Subject: [PATCH] Lab2 --- .../ProjectItCompany/Forms/FormExecutor.cs | 2 +- .../ProjectItCompany/Forms/FormProject.cs | 6 ++- .../Forms/FormWage.Designer.cs | 5 ++- .../ProjectItCompany/ProjectItCompany.csproj | 12 ++--- .../Implementations/ConnectionString.cs | 2 +- .../Implementations/ContractRepository.cs | 8 ++-- .../Implementations/CustomerRepository.cs | 10 ++--- .../Implementations/ExecutorRepository.cs | 10 ++--- .../Implementations/ProjectRepository.cs | 10 ++--- .../Implementations/WageRepository.cs | 4 +- SQL.pgsql | 44 +++++++++++++++++++ 11 files changed, 82 insertions(+), 31 deletions(-) create mode 100644 SQL.pgsql diff --git a/ProjectItCompany/ProjectItCompany/Forms/FormExecutor.cs b/ProjectItCompany/ProjectItCompany/Forms/FormExecutor.cs index 4a51e39..e31980a 100644 --- a/ProjectItCompany/ProjectItCompany/Forms/FormExecutor.cs +++ b/ProjectItCompany/ProjectItCompany/Forms/FormExecutor.cs @@ -80,6 +80,6 @@ namespace ProjectItCompany.Forms private void ButtonCancel_Click(object sender, EventArgs e) => Close(); - private Executor CreateExecutor(int id) => Executor.CreateEntity(id, textBoxFullName.Text, dateTimePickerDateOfBirth.Value, numericUpDownHourlyRate.Value, Entities.Enums.JobTitles.Analyst); + private Executor CreateExecutor(int id) => Executor.CreateEntity(id, textBoxFullName.Text, dateTimePickerDateOfBirth.Value, numericUpDownHourlyRate.Value, (JobTitles)comboBoxJobTitle.SelectedItem!); } } diff --git a/ProjectItCompany/ProjectItCompany/Forms/FormProject.cs b/ProjectItCompany/ProjectItCompany/Forms/FormProject.cs index 784319c..0696260 100644 --- a/ProjectItCompany/ProjectItCompany/Forms/FormProject.cs +++ b/ProjectItCompany/ProjectItCompany/Forms/FormProject.cs @@ -49,10 +49,14 @@ namespace ProjectItCompany.Forms } } } - public FormProject(IProjectRepository projectRepository) + public FormProject(IProjectRepository projectRepository, ICustomerRepository customerRepository) { InitializeComponent(); _projectRepository = projectRepository ?? throw new ArgumentNullException(nameof(projectRepository)); + + comboBoxCustomer.DataSource = customerRepository.ReadCustomers(); + comboBoxCustomer.DisplayMember = "NameCustomer"; + comboBoxCustomer.ValueMember = "Id"; } private void ButtonSave_Click(object sender, EventArgs e) diff --git a/ProjectItCompany/ProjectItCompany/Forms/FormWage.Designer.cs b/ProjectItCompany/ProjectItCompany/Forms/FormWage.Designer.cs index 9438f85..4b5b982 100644 --- a/ProjectItCompany/ProjectItCompany/Forms/FormWage.Designer.cs +++ b/ProjectItCompany/ProjectItCompany/Forms/FormWage.Designer.cs @@ -81,9 +81,12 @@ // numericUpDownYear // numericUpDownYear.Location = new Point(130, 32); + numericUpDownYear.Maximum = new decimal(new int[] { 2200, 0, 0, 0 }); + numericUpDownYear.Minimum = new decimal(new int[] { 1950, 0, 0, 0 }); numericUpDownYear.Name = "numericUpDownYear"; numericUpDownYear.Size = new Size(120, 23); numericUpDownYear.TabIndex = 5; + numericUpDownYear.Value = new decimal(new int[] { 1950, 0, 0, 0 }); // // numericUpDownNumberOfHours // @@ -145,7 +148,7 @@ Controls.Add(labelMonth); Name = "FormWage"; StartPosition = FormStartPosition.CenterParent; - Text = "FormWage"; + Text = "Зарплата"; ((System.ComponentModel.ISupportInitialize)numericUpDownYear).EndInit(); ((System.ComponentModel.ISupportInitialize)numericUpDownNumberOfHours).EndInit(); ResumeLayout(false); diff --git a/ProjectItCompany/ProjectItCompany/ProjectItCompany.csproj b/ProjectItCompany/ProjectItCompany/ProjectItCompany.csproj index 167c0ad..6422ccc 100644 --- a/ProjectItCompany/ProjectItCompany/ProjectItCompany.csproj +++ b/ProjectItCompany/ProjectItCompany/ProjectItCompany.csproj @@ -11,14 +11,14 @@ - - + + - - + + - - + + diff --git a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ConnectionString.cs b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ConnectionString.cs index 350ce98..1d3de6b 100644 --- a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ConnectionString.cs +++ b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ConnectionString.cs @@ -7,5 +7,5 @@ using System.Threading.Tasks; namespace ProjectItCompany.Repositories.Implementations; public class ConnectionString : IConnectionString { - string IConnectionString.ConnectionString => "Server=localhost, 5432;Database=itcompanyotp;Uid=postgres;Pwd=postgres;"; + string IConnectionString.ConnectionString => "Server=localhost, 5432; Database=itcompanyotp;Uid=postgres;Pwd=marva;"; } diff --git a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ContractRepository.cs b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ContractRepository.cs index 9fbed75..56dd7d1 100644 --- a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ContractRepository.cs +++ b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ContractRepository.cs @@ -33,11 +33,11 @@ public class ContractRepository : IContractRepository using var connection = new NpgsqlConnection(_connectionString.ConnectionString); connection.Open(); using var transaction = connection.BeginTransaction(); - var queryInsert = @"INSERT INTO Contracts (Date, ProjectId) + var queryInsert = @"INSERT INTO contract (Date, ProjectId) VALUES (@Date, @ProjectId); SELECT MAX(Id) FROM Contracts"; var feedReplenishmentId = connection.QueryFirst(queryInsert, contract, transaction); - var querySubInsert = @"INSERT INTO CustomerOnProject (ContractId, CostomerId, Description) + var querySubInsert = @"INSERT INTO customerOnProject (ContractId, CostomerId, Description) VALUES (@ContractId,@CostomerId, @Description)"; foreach (var elem in contract.CustomerId) { @@ -64,7 +64,7 @@ public class ContractRepository : IContractRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var queryDelete = @"DELETE FROM Contracts + var queryDelete = @"DELETE FROM contract WHERE ID=@id"; connection.Execute(queryDelete, new { id }); } @@ -81,7 +81,7 @@ public class ContractRepository : IContractRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var querySelect = @"SELECT * FROM Contracts"; + var querySelect = @"SELECT * FROM contract"; var contracts = connection.Query(querySelect); _logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(contracts)); return contracts; diff --git a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/CustomerRepository.cs b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/CustomerRepository.cs index 51cb915..e19dd63 100644 --- a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/CustomerRepository.cs +++ b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/CustomerRepository.cs @@ -28,7 +28,7 @@ public class CustomerRepository : ICustomerRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var queryInsert = @"INSERT INTO Customers (NameCustomer, Description) + var queryInsert = @"INSERT INTO customer (NameCustomer, Description) VALUES (@NameCustomer, @Description)"; connection.Execute(queryInsert, customer); } @@ -47,7 +47,7 @@ public class CustomerRepository : ICustomerRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var queryUpdate = @"UPDATE Customers SET + var queryUpdate = @"UPDATE customer SET NameCustomer=@NameCustomer, Description=@Description WHERE ID=@id"; @@ -67,7 +67,7 @@ public class CustomerRepository : ICustomerRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var queryDelete = @"DELETE FROM Customers WHERE ID=@id"; + var queryDelete = @"DELETE FROM customer WHERE ID=@id"; connection.Execute(queryDelete, new { id }); } catch (Exception ex) @@ -84,7 +84,7 @@ public class CustomerRepository : ICustomerRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var querySelect = @"SELECT * FROM Customers WHERE ID=@id"; + var querySelect = @"SELECT * FROM customer WHERE ID=@id"; var customer = connection.QueryFirst(querySelect, new { id @@ -106,7 +106,7 @@ public class CustomerRepository : ICustomerRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var querySelect = "SELECT * FROM Customers"; + var querySelect = "SELECT * FROM customer"; var customers = connection.Query(querySelect); _logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(customers)); diff --git a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ExecutorRepository.cs b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ExecutorRepository.cs index e2ec0c1..1b19556 100644 --- a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ExecutorRepository.cs +++ b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ExecutorRepository.cs @@ -28,7 +28,7 @@ public class ExecutorRepository : IExecutorRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var queryInsert = @"INSERT INTO Executors (FullName, DateOfBirth, HourlyRate, JobTitles) + var queryInsert = @"INSERT INTO executor (FullName, DateOfBirth, HourlyRate, JobTitles) VALUES (@FullName, @DateOfBirth, @HourlyRate, @JobTitles)"; connection.Execute(queryInsert, executor); } @@ -47,7 +47,7 @@ public class ExecutorRepository : IExecutorRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var queryUpdate = @"UPDATE Executors SET + var queryUpdate = @"UPDATE executor SET FullName=@FullName, DateOfBirth=@DateOfBirth, HourlyRate=@HourlyRate, @@ -69,7 +69,7 @@ public class ExecutorRepository : IExecutorRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var queryDelete = @"DELETE FROM Executors WHERE ID=@id"; + var queryDelete = @"DELETE FROM executor WHERE ID=@id"; connection.Execute(queryDelete, new { id }); } catch (Exception ex) @@ -86,7 +86,7 @@ public class ExecutorRepository : IExecutorRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var querySelect = @"SELECT * FROM Executors WHERE ID=@id"; + var querySelect = @"SELECT * FROM executor WHERE ID=@id"; var executor = connection.QueryFirst(querySelect, new { id @@ -108,7 +108,7 @@ public class ExecutorRepository : IExecutorRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var querySelect = "SELECT * FROM Executors"; + var querySelect = "SELECT * FROM executor"; var executors = connection.Query(querySelect); _logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(executors)); diff --git a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ProjectRepository.cs b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ProjectRepository.cs index 225e3df..52775a9 100644 --- a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ProjectRepository.cs +++ b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ProjectRepository.cs @@ -28,7 +28,7 @@ public class ProjectRepository : IProjectRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var queryInsert = @"INSERT INTO Projects (NameProject, CustomerId, CompletedStages) + var queryInsert = @"INSERT INTO project (NameProject, CustomerId, CompletedStages) VALUES (@NameProject, @CustomerId, @CompletedStages)"; connection.Execute(queryInsert, project); } @@ -47,7 +47,7 @@ public class ProjectRepository : IProjectRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var queryUpdate = @"UPDATE Projects SET + var queryUpdate = @"UPDATE project SET NameProject=@NameProject, CustomerId=@CustomerId, CompletedStages=@CompletedStages @@ -68,7 +68,7 @@ public class ProjectRepository : IProjectRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var queryDelete = @"DELETE FROM Projects WHERE ID=@id"; + var queryDelete = @"DELETE FROM project WHERE ID=@id"; connection.Execute(queryDelete, new { id }); } catch (Exception ex) @@ -85,7 +85,7 @@ public class ProjectRepository : IProjectRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var querySelect = @"SELECT * FROM Projects WHERE ID=@id"; + var querySelect = @"SELECT * FROM project WHERE ID=@id"; var project = connection.QueryFirst(querySelect, new { id @@ -107,7 +107,7 @@ public class ProjectRepository : IProjectRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var querySelect = "SELECT * FROM Projects"; + var querySelect = "SELECT * FROM project"; var projects = connection.Query(querySelect); _logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(projects)); diff --git a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/WageRepository.cs b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/WageRepository.cs index f547322..b0e217e 100644 --- a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/WageRepository.cs +++ b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/WageRepository.cs @@ -29,7 +29,7 @@ public class WageRepository : IWageRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var queryInsert = @"INSERT INTO Wages (Month, Year, NumberOfHours, ExecutorID) + var queryInsert = @"INSERT INTO wage (Month, Year, NumberOfHours, ExecutorID) VALUES (@Month, @Year, @NumberOfHours, @ExecutorID)"; connection.Execute(queryInsert, wage); } @@ -47,7 +47,7 @@ public class WageRepository : IWageRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var querySelect = "SELECT * FROM Wages"; + var querySelect = "SELECT * FROM wage"; var wages = connection.Query(querySelect); _logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(wages)); diff --git a/SQL.pgsql b/SQL.pgsql new file mode 100644 index 0000000..b95130d --- /dev/null +++ b/SQL.pgsql @@ -0,0 +1,44 @@ +CREATE TABLE contract ( + ID SERIAL PRIMARY KEY, + Date timestamp NOT NULL, + ProjectId INT REFERENCES project(ID), + CustomerId INT REFERENCES customer(ID) +); + +CREATE TABLE customer ( + ID SERIAL PRIMARY KEY, + NameCustomer VARCHAR(30) NOT NULL, + Description VARCHAR NOT NULL +); + +CREATE TABLE customeronproject ( + ID SERIAL PRIMARY KEY, + Descriptio VARCHAR NOT NULL, + ContractId INT REFERENCES contract(ID), + CustomerId INT REFERENCES customer(ID) +); + +CREATE TABLE executor ( + ID SERIAL PRIMARY KEY, + FullName VARCHAR NOT NULL, + DateOfBirth timestamp NOT NULL, + HourlyRate DECIMAL NOT NULL, + JobTitles INT NOT NULL +); + +CREATE TABLE project ( + ID SERIAL PRIMARY KEY, + NameProject VARCHAR NOT NULL, + CustomerId INT REFERENCES customer(ID), + CompletedStages INT NOT NULL +); + +CREATE TABLE wage ( + ID SERIAL PRIMARY KEY, + Month INT NOT NULL, + Year INT NOT NULL, + NumberOfHours INT, + ExecutorId INT REFERENCES executor(ID) +); + +SELECT * FROM wage; \ No newline at end of file