From 383f82d65ec32e8e6086f64dc4901e02b6910992 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=AF=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=B2?= Date: Sun, 6 Oct 2024 17:23:42 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9E=D1=81=D1=82=D0=B0=D0=BB=D0=B8=D1=81?= =?UTF-8?q?=D1=8C=20=D1=84=D0=BE=D1=80=D0=BC=D0=BE=D1=87=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B8=20storage=20=D1=82=D0=B8=D0=BF=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessLogics/BusinessLogics.csproj | 13 ++ .../BusinessLogics/OrganisationTypeLogic.cs | 93 +++++++++++++ .../BusinessLogics/ProviderLogic.cs | 102 ++++++++++++++ ComponentProgramming/ComponentProgramming.sln | 28 +++- .../Components/testComp.Designer.cs | 36 ----- .../Components/testComp.cs | 67 --------- .../Control/ControlImage.Designer.cs | 72 ---------- .../Control/ControlImage.cs | 67 --------- .../ComponentProgramming/Control/Person.cs | 24 ---- .../OrganisationTypeBindingModel.cs | 17 +++ .../BindingModels/ProviderBindingModel.cs | 22 +++ .../IOrganisationTypeLogic.cs | 22 +++ .../BusinessLogicsContracts/IProviderLogic.cs | 22 +++ .../Contracts/Contracts.csproj | 13 ++ .../OrganisationTypeSearchModel.cs | 13 ++ .../SearchModels/ProviderSearchModel.cs | 17 +++ .../IOrganisationTypeStorage.cs | 22 +++ .../StorageContracts/IProviderStorage.cs | 22 +++ .../ViewModels/OrganisationTypeViewModel.cs | 19 +++ .../Contracts/ViewModels/ProviderViewModel.cs | 28 ++++ .../DatabaseImplement/Database.cs | 20 +++ .../DatabaseImplement.csproj | 24 ++++ .../Implements/ProviderStorage.cs | 75 ++++++++++ .../Models/OrganisationType.cs | 44 ++++++ .../DatabaseImplement/Models/Provider.cs | 61 +++++++++ ComponentProgramming/Forms/Form.Designer.cs | 119 ---------------- ComponentProgramming/Forms/Form.cs | 93 ------------- ComponentProgramming/Forms/Form.resx | 129 ------------------ ComponentProgramming/Forms/Forms.csproj | 2 + .../Forms/MainForm.Designer.cs | 45 ++++++ ComponentProgramming/Forms/MainForm.cs | 20 +++ .../ControlImage.resx => Forms/MainForm.resx} | 0 ComponentProgramming/Forms/Person.cs | 24 ---- ComponentProgramming/Forms/Program.cs | 17 --- ComponentProgramming/Forms/Worker.cs | 32 ----- ComponentProgramming/Forms/diagram.pdf | Bin 52779 -> 0 bytes ComponentProgramming/Forms/table.pdf | Bin 46872 -> 0 bytes ComponentProgramming/Forms/text.pdf | Bin 56146 -> 0 bytes ComponentProgramming/Models/IId.cs | 13 ++ ComponentProgramming/Models/Models.csproj | 9 ++ .../Models/Models/IOrganisationTypeModel.cs | 13 ++ .../Models/Models/IProviderModel.cs | 20 +++ 42 files changed, 797 insertions(+), 682 deletions(-) create mode 100644 ComponentProgramming/BusinessLogics/BusinessLogics.csproj create mode 100644 ComponentProgramming/BusinessLogics/BusinessLogics/OrganisationTypeLogic.cs create mode 100644 ComponentProgramming/BusinessLogics/BusinessLogics/ProviderLogic.cs delete mode 100644 ComponentProgramming/ComponentProgramming/Components/testComp.Designer.cs delete mode 100644 ComponentProgramming/ComponentProgramming/Components/testComp.cs delete mode 100644 ComponentProgramming/ComponentProgramming/Control/ControlImage.Designer.cs delete mode 100644 ComponentProgramming/ComponentProgramming/Control/ControlImage.cs delete mode 100644 ComponentProgramming/ComponentProgramming/Control/Person.cs create mode 100644 ComponentProgramming/Contracts/BindingModels/OrganisationTypeBindingModel.cs create mode 100644 ComponentProgramming/Contracts/BindingModels/ProviderBindingModel.cs create mode 100644 ComponentProgramming/Contracts/BusinessLogicsContracts/IOrganisationTypeLogic.cs create mode 100644 ComponentProgramming/Contracts/BusinessLogicsContracts/IProviderLogic.cs create mode 100644 ComponentProgramming/Contracts/Contracts.csproj create mode 100644 ComponentProgramming/Contracts/SearchModels/OrganisationTypeSearchModel.cs create mode 100644 ComponentProgramming/Contracts/SearchModels/ProviderSearchModel.cs create mode 100644 ComponentProgramming/Contracts/StorageContracts/IOrganisationTypeStorage.cs create mode 100644 ComponentProgramming/Contracts/StorageContracts/IProviderStorage.cs create mode 100644 ComponentProgramming/Contracts/ViewModels/OrganisationTypeViewModel.cs create mode 100644 ComponentProgramming/Contracts/ViewModels/ProviderViewModel.cs create mode 100644 ComponentProgramming/DatabaseImplement/Database.cs create mode 100644 ComponentProgramming/DatabaseImplement/DatabaseImplement.csproj create mode 100644 ComponentProgramming/DatabaseImplement/Implements/ProviderStorage.cs create mode 100644 ComponentProgramming/DatabaseImplement/Models/OrganisationType.cs create mode 100644 ComponentProgramming/DatabaseImplement/Models/Provider.cs delete mode 100644 ComponentProgramming/Forms/Form.Designer.cs delete mode 100644 ComponentProgramming/Forms/Form.cs delete mode 100644 ComponentProgramming/Forms/Form.resx create mode 100644 ComponentProgramming/Forms/MainForm.Designer.cs create mode 100644 ComponentProgramming/Forms/MainForm.cs rename ComponentProgramming/{ComponentProgramming/Control/ControlImage.resx => Forms/MainForm.resx} (100%) delete mode 100644 ComponentProgramming/Forms/Person.cs delete mode 100644 ComponentProgramming/Forms/Program.cs delete mode 100644 ComponentProgramming/Forms/Worker.cs delete mode 100644 ComponentProgramming/Forms/diagram.pdf delete mode 100644 ComponentProgramming/Forms/table.pdf delete mode 100644 ComponentProgramming/Forms/text.pdf create mode 100644 ComponentProgramming/Models/IId.cs create mode 100644 ComponentProgramming/Models/Models.csproj create mode 100644 ComponentProgramming/Models/Models/IOrganisationTypeModel.cs create mode 100644 ComponentProgramming/Models/Models/IProviderModel.cs diff --git a/ComponentProgramming/BusinessLogics/BusinessLogics.csproj b/ComponentProgramming/BusinessLogics/BusinessLogics.csproj new file mode 100644 index 0000000..1d1cdeb --- /dev/null +++ b/ComponentProgramming/BusinessLogics/BusinessLogics.csproj @@ -0,0 +1,13 @@ + + + + net8.0 + enable + enable + + + + + + + diff --git a/ComponentProgramming/BusinessLogics/BusinessLogics/OrganisationTypeLogic.cs b/ComponentProgramming/BusinessLogics/BusinessLogics/OrganisationTypeLogic.cs new file mode 100644 index 0000000..315a8d0 --- /dev/null +++ b/ComponentProgramming/BusinessLogics/BusinessLogics/OrganisationTypeLogic.cs @@ -0,0 +1,93 @@ +using Contracts.BindingModels; +using Contracts.BusinessLogicsContracts; +using Contracts.SearchModels; +using Contracts.StorageContracts; +using Contracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BusinessLogics.BusinessLogics +{ + public class OrganisationTypeLogic : IOrganisationTypeLogic + { + private readonly IOrganisationTypeStorage _orgTypeStorage; + + public OrganisationTypeLogic(IOrganisationTypeStorage orgTypeStorage) + { + _orgTypeStorage = orgTypeStorage; + } + + public List? ReadList(OrganisationTypeSearchModel? model) + { + var list = model == null ? _orgTypeStorage.GetFullList() : _orgTypeStorage.GetFilteredList(model); + + if (list == null) + { + return null; + } + return list; + } + + public OrganisationTypeViewModel? ReadElement(OrganisationTypeSearchModel? model) + { + if (model == null) + { + throw new ArgumentNullException(nameof(model)); + } + + var element = _orgTypeStorage.GetElement(model); + if (element == null) + { + return null; + } + return element; + } + + public bool Create(OrganisationTypeBindingModel model) + { + CheckModel(model); + if (_orgTypeStorage.Insert(model) == null) + { + return false; + } + return true; + } + public bool Update(OrganisationTypeBindingModel model) + { + CheckModel(model); + if (_orgTypeStorage.Update(model) == null) + { + return false; + } + return true; + } + public bool Delete(OrganisationTypeBindingModel model) + { + CheckModel(model, false); + if (_orgTypeStorage.Delete(model) == null) + { + return false; + } + return true; + } + + private void CheckModel(OrganisationTypeBindingModel model, bool withParams = true) + { + if (model == null) + { + throw new ArgumentNullException(nameof(model)); + } + if (!withParams) + { + return; + } + if (string.IsNullOrEmpty(model.Name)) + { + throw new ArgumentException("Введите название типа", nameof(model.Name)); + } + } + } +} diff --git a/ComponentProgramming/BusinessLogics/BusinessLogics/ProviderLogic.cs b/ComponentProgramming/BusinessLogics/BusinessLogics/ProviderLogic.cs new file mode 100644 index 0000000..8f5249c --- /dev/null +++ b/ComponentProgramming/BusinessLogics/BusinessLogics/ProviderLogic.cs @@ -0,0 +1,102 @@ +using Contracts.BindingModels; +using Contracts.BusinessLogicsContracts; +using Contracts.SearchModels; +using Contracts.StorageContracts; +using Contracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BusinessLogics.BusinessLogics +{ + public class ProviderLogic : IProviderLogic + { + + private readonly IProviderStorage _providerStorage; + + public ProviderLogic(IProviderStorage providerStorage) + { + _providerStorage = providerStorage; + } + + public List? ReadList(ProviderSearchModel? model) + { + var list = model == null ? _providerStorage.GetFullList() : _providerStorage.GetFilteredList(model); + + if(list == null) + { + return null; + } + return list; + } + + public ProviderViewModel? ReadElement(ProviderSearchModel? model) + { + if(model == null) + { + throw new ArgumentNullException(nameof(model)); + } + + var element = _providerStorage.GetElement(model); + if(element == null) + { + return null; + } + return element; + } + + public bool Create(ProviderBindingModel model) + { + CheckModel(model); + if(_providerStorage.Insert(model) == null) + { + return false; + } + return true; + } + public bool Update(ProviderBindingModel model) + { + CheckModel(model); + if(_providerStorage.Update(model) == null) + { + return false; + } + return true; + } + public bool Delete(ProviderBindingModel model) + { + CheckModel(model, false); + if(_providerStorage.Delete(model) == null) + { + return false; + } + return true; + } + + private void CheckModel(ProviderBindingModel model, bool withParams = true) + { + if(model == null) + { + throw new ArgumentNullException(nameof(model)); + } + if (!withParams) + { + return; + } + if (string.IsNullOrEmpty(model.Name)) + { + throw new ArgumentException("Введите название поставщика", nameof(model.Name)); + } + if (string.IsNullOrEmpty(model.FurnitureType)) + { + throw new ArgumentException("Введите тип мебели", nameof(model.FurnitureType)); + } + if (string.IsNullOrEmpty(model.OrganisationType)) + { + throw new ArgumentException("Выберите тип организации", nameof(model.OrganisationType)); + } + } + } +} diff --git a/ComponentProgramming/ComponentProgramming.sln b/ComponentProgramming/ComponentProgramming.sln index b2c5b1b..f087c26 100644 --- a/ComponentProgramming/ComponentProgramming.sln +++ b/ComponentProgramming/ComponentProgramming.sln @@ -3,9 +3,17 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.9.34714.143 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ComponentProgramming", "ComponentProgramming\ComponentProgramming.csproj", "{97AC6509-906E-4688-9C6F-67406629A6CA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ComponentProgramming", "ComponentProgramming\ComponentProgramming.csproj", "{97AC6509-906E-4688-9C6F-67406629A6CA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Forms", "Forms\Forms.csproj", "{A490A64E-3A3B-4782-B0DB-142543BDC6A5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Forms", "Forms\Forms.csproj", "{A490A64E-3A3B-4782-B0DB-142543BDC6A5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contracts", "Contracts\Contracts.csproj", "{6D33E2A8-3992-4213-B563-E4E7FDC0F5AB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Models", "Models\Models.csproj", "{0770DB50-E976-4257-9DB5-8032D28881FC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BusinessLogics", "BusinessLogics\BusinessLogics.csproj", "{70711FA1-A2EC-4BF8-8798-8DCBBC8A7FB2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DatabaseImplement", "DatabaseImplement\DatabaseImplement.csproj", "{3F0166B4-E2B0-4499-96EE-0FFFE57855BD}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -21,6 +29,22 @@ Global {A490A64E-3A3B-4782-B0DB-142543BDC6A5}.Debug|Any CPU.Build.0 = Debug|Any CPU {A490A64E-3A3B-4782-B0DB-142543BDC6A5}.Release|Any CPU.ActiveCfg = Release|Any CPU {A490A64E-3A3B-4782-B0DB-142543BDC6A5}.Release|Any CPU.Build.0 = Release|Any CPU + {6D33E2A8-3992-4213-B563-E4E7FDC0F5AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D33E2A8-3992-4213-B563-E4E7FDC0F5AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D33E2A8-3992-4213-B563-E4E7FDC0F5AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D33E2A8-3992-4213-B563-E4E7FDC0F5AB}.Release|Any CPU.Build.0 = Release|Any CPU + {0770DB50-E976-4257-9DB5-8032D28881FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0770DB50-E976-4257-9DB5-8032D28881FC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0770DB50-E976-4257-9DB5-8032D28881FC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0770DB50-E976-4257-9DB5-8032D28881FC}.Release|Any CPU.Build.0 = Release|Any CPU + {70711FA1-A2EC-4BF8-8798-8DCBBC8A7FB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70711FA1-A2EC-4BF8-8798-8DCBBC8A7FB2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70711FA1-A2EC-4BF8-8798-8DCBBC8A7FB2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70711FA1-A2EC-4BF8-8798-8DCBBC8A7FB2}.Release|Any CPU.Build.0 = Release|Any CPU + {3F0166B4-E2B0-4499-96EE-0FFFE57855BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F0166B4-E2B0-4499-96EE-0FFFE57855BD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F0166B4-E2B0-4499-96EE-0FFFE57855BD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F0166B4-E2B0-4499-96EE-0FFFE57855BD}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/ComponentProgramming/ComponentProgramming/Components/testComp.Designer.cs b/ComponentProgramming/ComponentProgramming/Components/testComp.Designer.cs deleted file mode 100644 index 1e9a77b..0000000 --- a/ComponentProgramming/ComponentProgramming/Components/testComp.Designer.cs +++ /dev/null @@ -1,36 +0,0 @@ -namespace ComponentProgramming -{ - partial class testComp - { - /// - /// Обязательная переменная конструктора. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Освободить все используемые ресурсы. - /// - /// истинно, если управляемый ресурс должен быть удален; иначе ложно. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Код, автоматически созданный конструктором компонентов - - /// - /// Требуемый метод для поддержки конструктора — не изменяйте - /// содержимое этого метода с помощью редактора кода. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} diff --git a/ComponentProgramming/ComponentProgramming/Components/testComp.cs b/ComponentProgramming/ComponentProgramming/Components/testComp.cs deleted file mode 100644 index e30d048..0000000 --- a/ComponentProgramming/ComponentProgramming/Components/testComp.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ComponentProgramming -{ - public partial class testComp : Component - { - - private string _fileName; - - public string FileName - { - set - { - if (string.IsNullOrEmpty(value)) return; - if (!value.EndsWith(".txt")) - { - throw new ArgumentException("No txt file"); - } - _fileName = value; - } - } - - public testComp() - { - InitializeComponent(); - _fileName = string.Empty; - } - - public testComp(IContainer container) - { - container.Add(this); - - InitializeComponent(); - _fileName = string.Empty; - } - - public bool saveToFile(string[] texts) - { - CheckFileExist(); - using var writer = new StreamWriter(_fileName, true); - foreach (var text in texts) - { - writer.WriteLine(text); - } - writer.Flush(); - return true; - } - - private void CheckFileExist() - { - if (string.IsNullOrEmpty(_fileName)) - { - throw new ArgumentNullException(_fileName); - } - if(!File.Exists("../"+_fileName)) - { - throw new FileNotFoundException(_fileName); - } - } - } -} diff --git a/ComponentProgramming/ComponentProgramming/Control/ControlImage.Designer.cs b/ComponentProgramming/ComponentProgramming/Control/ControlImage.Designer.cs deleted file mode 100644 index 9df1a7c..0000000 --- a/ComponentProgramming/ComponentProgramming/Control/ControlImage.Designer.cs +++ /dev/null @@ -1,72 +0,0 @@ -namespace ComponentProgramming -{ - partial class ControlImage - { - /// - /// Обязательная переменная конструктора. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Освободить все используемые ресурсы. - /// - /// истинно, если управляемый ресурс должен быть удален; иначе ложно. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Код, автоматически созданный конструктором компонентов - - /// - /// Требуемый метод для поддержки конструктора — не изменяйте - /// содержимое этого метода с помощью редактора кода. - /// - private void InitializeComponent() - { - pictureBoxAvatar = new PictureBox(); - buttonLoad = new Button(); - ((System.ComponentModel.ISupportInitialize)pictureBoxAvatar).BeginInit(); - SuspendLayout(); - // - // pictureBoxAvatar - // - pictureBoxAvatar.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; - pictureBoxAvatar.Location = new Point(3, 3); - pictureBoxAvatar.Name = "pictureBoxAvatar"; - pictureBoxAvatar.Size = new Size(144, 115); - pictureBoxAvatar.TabIndex = 0; - pictureBoxAvatar.TabStop = false; - // - // buttonLoad - // - buttonLoad.Anchor = AnchorStyles.Bottom; - buttonLoad.Location = new Point(35, 124); - buttonLoad.Name = "buttonLoad"; - buttonLoad.Size = new Size(75, 23); - buttonLoad.TabIndex = 1; - buttonLoad.Text = "Загрузить"; - buttonLoad.UseVisualStyleBackColor = true; - buttonLoad.Click += buttonLoad_Click; - // - // Control - // - AutoScaleDimensions = new SizeF(7F, 15F); - AutoScaleMode = AutoScaleMode.Font; - Controls.Add(buttonLoad); - Controls.Add(pictureBoxAvatar); - Name = "Control"; - ((System.ComponentModel.ISupportInitialize)pictureBoxAvatar).EndInit(); - ResumeLayout(false); - } - - #endregion - - private PictureBox pictureBoxAvatar; - private Button buttonLoad; - } -} diff --git a/ComponentProgramming/ComponentProgramming/Control/ControlImage.cs b/ComponentProgramming/ComponentProgramming/Control/ControlImage.cs deleted file mode 100644 index 2f81f49..0000000 --- a/ComponentProgramming/ComponentProgramming/Control/ControlImage.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace ComponentProgramming -{ - public partial class ControlImage : UserControl - { - private event EventHandler? _avatarChanged; - private event Action? _errorOccured; - public string Error { get; private set; } - public Image Avatar - { - get - { - return pictureBoxAvatar.Image; - } - set - { - pictureBoxAvatar.Image = value; - } - } - - public event EventHandler AvatarChanged - { - add { _avatarChanged += value; } - remove { _avatarChanged -= value; } - } - - public event Action AnErrorOccured - { - add { _errorOccured += value; } - remove { _errorOccured -= value; } - } - - public ControlImage() - { - InitializeComponent(); - Error = string.Empty; - } - - private void buttonLoad_Click(object sender, EventArgs e) - { - var ofd = new OpenFileDialog(); - if(ofd.ShowDialog() == DialogResult.OK) - { - try - { - pictureBoxAvatar.Image = Image.FromFile(ofd.FileName); - pictureBoxAvatar.Width = pictureBoxAvatar.Image.Width; - _avatarChanged?.Invoke(this, e); - } - catch( Exception ex) - { - Error = ex.Message; - _errorOccured?.Invoke(); - } - } - } - } -} diff --git a/ComponentProgramming/ComponentProgramming/Control/Person.cs b/ComponentProgramming/ComponentProgramming/Control/Person.cs deleted file mode 100644 index feaeacc..0000000 --- a/ComponentProgramming/ComponentProgramming/Control/Person.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ComponentProgramming.Control -{ - public class Person - { - public int Id { get; set; } - public string Name { get; set; } - public string Surname { get; set; } - - public Person() { } - - public Person(int id, string name, string surname) - { - Name = name; - Id = id; - Surname = surname; - } - } -} diff --git a/ComponentProgramming/Contracts/BindingModels/OrganisationTypeBindingModel.cs b/ComponentProgramming/Contracts/BindingModels/OrganisationTypeBindingModel.cs new file mode 100644 index 0000000..548c748 --- /dev/null +++ b/ComponentProgramming/Contracts/BindingModels/OrganisationTypeBindingModel.cs @@ -0,0 +1,17 @@ +using Models.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Contracts.BindingModels +{ + public class OrganisationTypeBindingModel : IOrganisationTypeModel + { + public int Id { get; set; } + + public string Name { get; set; } = string.Empty; + + } +} diff --git a/ComponentProgramming/Contracts/BindingModels/ProviderBindingModel.cs b/ComponentProgramming/Contracts/BindingModels/ProviderBindingModel.cs new file mode 100644 index 0000000..fe743cd --- /dev/null +++ b/ComponentProgramming/Contracts/BindingModels/ProviderBindingModel.cs @@ -0,0 +1,22 @@ +using Models.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Contracts.BindingModels +{ + public class ProviderBindingModel : IProviderModel + { + public int Id { get; set; } + + public string Name { get; set; } = string.Empty; + + public string FurnitureType { get; set; } = string.Empty; + + public string OrganisationType { get; set; } = string.Empty; + + public DateTime? DateLastDelivery { get; set; } + } +} diff --git a/ComponentProgramming/Contracts/BusinessLogicsContracts/IOrganisationTypeLogic.cs b/ComponentProgramming/Contracts/BusinessLogicsContracts/IOrganisationTypeLogic.cs new file mode 100644 index 0000000..38630c6 --- /dev/null +++ b/ComponentProgramming/Contracts/BusinessLogicsContracts/IOrganisationTypeLogic.cs @@ -0,0 +1,22 @@ +using Contracts.BindingModels; +using Contracts.SearchModels; +using Contracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Contracts.BusinessLogicsContracts +{ + public interface IOrganisationTypeLogic + { + List? ReadList(OrganisationTypeSearchModel? model); + + OrganisationTypeViewModel? ReadElement(OrganisationTypeSearchModel? model); + + bool Create(OrganisationTypeBindingModel model); + bool Update(OrganisationTypeBindingModel model); + bool Delete(OrganisationTypeBindingModel model); + } +} diff --git a/ComponentProgramming/Contracts/BusinessLogicsContracts/IProviderLogic.cs b/ComponentProgramming/Contracts/BusinessLogicsContracts/IProviderLogic.cs new file mode 100644 index 0000000..c4a7f82 --- /dev/null +++ b/ComponentProgramming/Contracts/BusinessLogicsContracts/IProviderLogic.cs @@ -0,0 +1,22 @@ +using Contracts.BindingModels; +using Contracts.SearchModels; +using Contracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Contracts.BusinessLogicsContracts +{ + public interface IProviderLogic + { + List? ReadList(ProviderSearchModel? model); + + ProviderViewModel? ReadElement (ProviderSearchModel? model); + + bool Create(ProviderBindingModel model); + bool Update(ProviderBindingModel model); + bool Delete(ProviderBindingModel model); + } +} diff --git a/ComponentProgramming/Contracts/Contracts.csproj b/ComponentProgramming/Contracts/Contracts.csproj new file mode 100644 index 0000000..8dcc508 --- /dev/null +++ b/ComponentProgramming/Contracts/Contracts.csproj @@ -0,0 +1,13 @@ + + + + net8.0 + enable + enable + + + + + + + diff --git a/ComponentProgramming/Contracts/SearchModels/OrganisationTypeSearchModel.cs b/ComponentProgramming/Contracts/SearchModels/OrganisationTypeSearchModel.cs new file mode 100644 index 0000000..985965d --- /dev/null +++ b/ComponentProgramming/Contracts/SearchModels/OrganisationTypeSearchModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Contracts.SearchModels +{ + public class OrganisationTypeSearchModel + { + public string? Name { get; set; } + } +} diff --git a/ComponentProgramming/Contracts/SearchModels/ProviderSearchModel.cs b/ComponentProgramming/Contracts/SearchModels/ProviderSearchModel.cs new file mode 100644 index 0000000..705a3fd --- /dev/null +++ b/ComponentProgramming/Contracts/SearchModels/ProviderSearchModel.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Contracts.SearchModels +{ + public class ProviderSearchModel + { + public string? Name { get; set; } + + public string? OrganisationType { get; set; } + + public DateTime? DateLastDelivery { get; set; } + } +} diff --git a/ComponentProgramming/Contracts/StorageContracts/IOrganisationTypeStorage.cs b/ComponentProgramming/Contracts/StorageContracts/IOrganisationTypeStorage.cs new file mode 100644 index 0000000..29c86b3 --- /dev/null +++ b/ComponentProgramming/Contracts/StorageContracts/IOrganisationTypeStorage.cs @@ -0,0 +1,22 @@ +using Contracts.BindingModels; +using Contracts.SearchModels; +using Contracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Contracts.StorageContracts +{ + public interface IOrganisationTypeStorage + { + List GetFullList(); + List GetFilteredList(OrganisationTypeSearchModel model); + OrganisationTypeViewModel? GetElement(OrganisationTypeSearchModel model); + + OrganisationTypeViewModel? Insert(OrganisationTypeBindingModel model); + OrganisationTypeViewModel? Update(OrganisationTypeBindingModel model); + OrganisationTypeViewModel? Delete(OrganisationTypeBindingModel model); + } +} diff --git a/ComponentProgramming/Contracts/StorageContracts/IProviderStorage.cs b/ComponentProgramming/Contracts/StorageContracts/IProviderStorage.cs new file mode 100644 index 0000000..70d198a --- /dev/null +++ b/ComponentProgramming/Contracts/StorageContracts/IProviderStorage.cs @@ -0,0 +1,22 @@ +using Contracts.BindingModels; +using Contracts.SearchModels; +using Contracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Contracts.StorageContracts +{ + public interface IProviderStorage + { + List GetFullList(); + List GetFilteredList(ProviderSearchModel model); + ProviderViewModel? GetElement(ProviderSearchModel model); + + ProviderViewModel? Insert(ProviderBindingModel model); + ProviderViewModel? Update(ProviderBindingModel model); + ProviderViewModel? Delete(ProviderBindingModel model); + } +} diff --git a/ComponentProgramming/Contracts/ViewModels/OrganisationTypeViewModel.cs b/ComponentProgramming/Contracts/ViewModels/OrganisationTypeViewModel.cs new file mode 100644 index 0000000..494bdf4 --- /dev/null +++ b/ComponentProgramming/Contracts/ViewModels/OrganisationTypeViewModel.cs @@ -0,0 +1,19 @@ +using Models.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Contracts.ViewModels +{ + public class OrganisationTypeViewModel : IOrganisationTypeModel + { + public int Id { get; set; } + + [DisplayName("Название типа")] + public string Name { get; set; } = string.Empty; + + } +} diff --git a/ComponentProgramming/Contracts/ViewModels/ProviderViewModel.cs b/ComponentProgramming/Contracts/ViewModels/ProviderViewModel.cs new file mode 100644 index 0000000..344121c --- /dev/null +++ b/ComponentProgramming/Contracts/ViewModels/ProviderViewModel.cs @@ -0,0 +1,28 @@ +using Models.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Contracts.ViewModels +{ + public class ProviderViewModel : IProviderModel + { + public int Id { get; set; } + + [DisplayName("Название организации")] + public string Name { get; set; } = string.Empty; + + [DisplayName("Перечернь производимой мебели")] + public string FurnitureType { get; set; } = string.Empty; + + [DisplayName("Тип организации")] + public string OrganisationType { get; set; } = string.Empty; + + [DisplayName("Дата последней доставки")] + public DateTime? DateLastDelivery { get; set; } + + } +} diff --git a/ComponentProgramming/DatabaseImplement/Database.cs b/ComponentProgramming/DatabaseImplement/Database.cs new file mode 100644 index 0000000..3add9f9 --- /dev/null +++ b/ComponentProgramming/DatabaseImplement/Database.cs @@ -0,0 +1,20 @@ +using DatabaseImplement.Models; +using Microsoft.EntityFrameworkCore; + +namespace DatabaseImplement +{ + public class Database : DbContext + { + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { + if (optionsBuilder.IsConfigured == false) + { + optionsBuilder.UseSqlServer(@"Data Source=.\SQLEXPRESS;Initial Catalog=ProvidersDatabase;Integrated Security=True;MultipleActiveResultSets=True;TrustServerCertificate=True"); + } + base.OnConfiguring(optionsBuilder); + } + + public virtual DbSet Providers { get; set; } + public virtual DbSet OrganisationTypes { get; set; } + } +} diff --git a/ComponentProgramming/DatabaseImplement/DatabaseImplement.csproj b/ComponentProgramming/DatabaseImplement/DatabaseImplement.csproj new file mode 100644 index 0000000..ec24965 --- /dev/null +++ b/ComponentProgramming/DatabaseImplement/DatabaseImplement.csproj @@ -0,0 +1,24 @@ + + + + net8.0 + enable + enable + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + diff --git a/ComponentProgramming/DatabaseImplement/Implements/ProviderStorage.cs b/ComponentProgramming/DatabaseImplement/Implements/ProviderStorage.cs new file mode 100644 index 0000000..9a5246a --- /dev/null +++ b/ComponentProgramming/DatabaseImplement/Implements/ProviderStorage.cs @@ -0,0 +1,75 @@ +using Contracts.BindingModels; +using Contracts.SearchModels; +using Contracts.StorageContracts; +using Contracts.ViewModels; +using DatabaseImplement.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DatabaseImplement.Implements +{ + public class ProviderStorage : IProviderStorage + { + public List GetFullList() + { + using var context = new Database(); + return context.Providers.Select(x=>x.GetViewModel).ToList(); + } + + public List GetFilteredList(ProviderSearchModel model) + { + if (string.IsNullOrEmpty(model.OrganisationType)) + { + return new(); + } + using var context = new Database(); + return context.Providers.Where(x => x.OrganisationType == model.OrganisationType).Select(x=> x.GetViewModel).ToList(); + } + + public ProviderViewModel? GetElement(ProviderSearchModel model) + { + if(string.IsNullOrEmpty(model.Name)) + { + return null; + } + using var context = new Database(); + return context.Providers.FirstOrDefault(x => x.Name == model.Name)?.GetViewModel; + } + + public ProviderViewModel? Insert(ProviderBindingModel model) + { + var newProvider = Provider.Create(model); + if (newProvider == null) return null; + using var context = new Database(); + context.Providers.Add(newProvider); + context.SaveChanges(); + return newProvider.GetViewModel; + } + + public ProviderViewModel? Update(ProviderBindingModel model) + { + using var context = new Database(); + var provider = context.Providers.FirstOrDefault(x=> x.Id == model.Id); + if(provider == null) return null; + provider.Update(model); + context.SaveChanges(); + return provider.GetViewModel; + } + + public ProviderViewModel? Delete(ProviderBindingModel model) + { + using var context = new Database(); + var element = context.Providers.FirstOrDefault(x=>x.Id == model.Id); + if(element != null) + { + context.Providers.Remove(element); + context.SaveChanges(); + return element.GetViewModel; + } + return null; + } + } +} diff --git a/ComponentProgramming/DatabaseImplement/Models/OrganisationType.cs b/ComponentProgramming/DatabaseImplement/Models/OrganisationType.cs new file mode 100644 index 0000000..51c31ed --- /dev/null +++ b/ComponentProgramming/DatabaseImplement/Models/OrganisationType.cs @@ -0,0 +1,44 @@ +using Contracts.BindingModels; +using Contracts.ViewModels; +using Models.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DatabaseImplement.Models +{ + public class OrganisationType : IOrganisationTypeModel + { + public int Id { get; private set; } + + [Required] + public string Name { get; private set; } = string.Empty; + + public static OrganisationType? Create(OrganisationTypeBindingModel model) + { + if(model == null) return null; + + return new OrganisationType + { + Id = model.Id, + Name = model.Name, + }; + } + + public void Update(OrganisationTypeBindingModel model) + { + if (model == null) return; + + Name = model.Name; + } + + public OrganisationTypeViewModel GetViewModel => new() + { + Id = Id, + Name = Name, + }; + } +} diff --git a/ComponentProgramming/DatabaseImplement/Models/Provider.cs b/ComponentProgramming/DatabaseImplement/Models/Provider.cs new file mode 100644 index 0000000..3d04711 --- /dev/null +++ b/ComponentProgramming/DatabaseImplement/Models/Provider.cs @@ -0,0 +1,61 @@ +using Contracts.BindingModels; +using Contracts.ViewModels; +using Models.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DatabaseImplement.Models +{ + public class Provider : IProviderModel + { + public int Id { get; private set; } + + [Required] + public string Name { get; private set; } = string.Empty; + + [Required] + public string FurnitureType { get; private set; } = string.Empty; + + [Required] + public string OrganisationType { get; private set; } = string.Empty; + + public DateTime? DateLastDelivery { get; private set; } + + public static Provider? Create(ProviderBindingModel model) + { + if(model == null) return null; + + return new Provider + { + Id = model.Id, + Name = model.Name, + FurnitureType = model.FurnitureType, + OrganisationType = model.OrganisationType, + DateLastDelivery = model.DateLastDelivery, + }; + } + + public void Update(ProviderBindingModel model) + { + if (model == null) return; + + Name = model.Name; + FurnitureType = model.FurnitureType; + OrganisationType = model.OrganisationType; + DateLastDelivery = model.DateLastDelivery; + } + + public ProviderViewModel GetViewModel => new() + { + Id = Id, + Name = Name, + FurnitureType = FurnitureType, + OrganisationType = OrganisationType, + DateLastDelivery = DateLastDelivery, + }; + } +} diff --git a/ComponentProgramming/Forms/Form.Designer.cs b/ComponentProgramming/Forms/Form.Designer.cs deleted file mode 100644 index c5ab029..0000000 --- a/ComponentProgramming/Forms/Form.Designer.cs +++ /dev/null @@ -1,119 +0,0 @@ -namespace Forms -{ - partial class Form - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - controlComboBox = new ComponentProgramming.ControlComboBox(); - controlTextBox = new ComponentProgramming.ControlTextBox(); - buttonGetObj = new Button(); - buttonEnter = new Button(); - controlListBox = new ComponentProgramming.ControlListBox(); - tableComponent = new ComponentProgramming.Components.TableComponent(components); - diagramComponent = new ComponentProgramming.DiagramComponent(components); - largeTextComponent = new ComponentProgramming.Components.LargeTextComponent(components); - SuspendLayout(); - // - // controlComboBox - // - controlComboBox.Location = new Point(14, 4); - controlComboBox.Margin = new Padding(3, 5, 3, 5); - controlComboBox.Name = "controlComboBox"; - controlComboBox.SelectedItem = ""; - controlComboBox.Size = new Size(202, 41); - controlComboBox.TabIndex = 0; - controlComboBox.ComboBoxChanged += controlComboBox_ComboBoxChanged; - // - // controlTextBox - // - controlTextBox.Location = new Point(258, 4); - controlTextBox.Margin = new Padding(3, 5, 3, 5); - controlTextBox.Name = "controlTextBox"; - controlTextBox.NumPattern = null; - controlTextBox.Size = new Size(171, 39); - controlTextBox.TabIndex = 1; - // - // buttonGetObj - // - buttonGetObj.Location = new Point(14, 553); - buttonGetObj.Margin = new Padding(3, 4, 3, 4); - buttonGetObj.Name = "buttonGetObj"; - buttonGetObj.Size = new Size(144, 31); - buttonGetObj.TabIndex = 3; - buttonGetObj.Text = "Получить объект"; - buttonGetObj.UseVisualStyleBackColor = true; - buttonGetObj.Click += buttonGetObj_Click; - // - // buttonEnter - // - buttonEnter.Location = new Point(311, 48); - buttonEnter.Name = "buttonEnter"; - buttonEnter.Size = new Size(85, 32); - buttonEnter.TabIndex = 5; - buttonEnter.Text = "Ввод"; - buttonEnter.UseVisualStyleBackColor = true; - buttonEnter.Click += buttonEnter_Click; - // - // controlListBox - // - controlListBox.GetIndex = -1; - controlListBox.Location = new Point(14, 87); - controlListBox.Margin = new Padding(3, 5, 3, 5); - controlListBox.Name = "controlListBox"; - controlListBox.Size = new Size(382, 459); - controlListBox.TabIndex = 7; - // - // Form - // - AutoScaleDimensions = new SizeF(8F, 20F); - AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(410, 600); - Controls.Add(controlListBox); - Controls.Add(buttonEnter); - Controls.Add(buttonGetObj); - Controls.Add(controlTextBox); - Controls.Add(controlComboBox); - Margin = new Padding(3, 4, 3, 4); - Name = "Form"; - Text = "Form"; - ResumeLayout(false); - } - - #endregion - - private ComponentProgramming.ControlImage control; - private ComponentProgramming.ControlComboBox controlComboBox; - private ComponentProgramming.ControlTextBox controlTextBox; - private Button buttonGetObj; - private Button buttonEnter; - private ComponentProgramming.ControlListBox controlListBox; - private ComponentProgramming.Components.TableComponent tableComponent; - private ComponentProgramming.DiagramComponent diagramComponent; - private ComponentProgramming.Components.LargeTextComponent largeTextComponent; - } -} diff --git a/ComponentProgramming/Forms/Form.cs b/ComponentProgramming/Forms/Form.cs deleted file mode 100644 index 1c218ca..0000000 --- a/ComponentProgramming/Forms/Form.cs +++ /dev/null @@ -1,93 +0,0 @@ -using ComponentProgramming.Components.Models; - -namespace Forms -{ - public partial class Form : System.Windows.Forms.Form - { - public Form() - { - InitializeComponent(); - FillBox(); - FillTextBox(); - FillList(); - string[] strings = new string[] { " , ( )", " ( ) ( )" }; - largeTextComponent.CreateDocument("C:\\Users\\\\source\\repos\\PIbd-31_Yakovlev.M.G._COP_16\\ComponentProgramming\\Forms\\text.pdf", "", strings); - List colInfos = new List() - { - new ColumnInfo("Name","",50), - new ColumnInfo("Surname","",100), - new ColumnInfo("Phone","",100), - new ColumnInfo("Email","",200), - new ColumnInfo("Password","",50), - }; - List mergeCells = new List() - { - new MergeCells("", new int[] {0,3,4}) - }; - List workers = new List() - { - new Worker("", "", "+88005553535", "mail@gmail.ru", "pass123"), - new Worker("", "", "+88005553535", "mail@gmail.ru", "pass123"), - new Worker("", "", "+88005553535", "mail@gmail.ru", "pass123"), - new Worker("", "", "+88005553535", "mail@gmail.ru", "pass123"), - }; - tableComponent.CreateTable("C:\\Users\\\\source\\repos\\PIbd-31_Yakovlev.M.G._COP_16\\ComponentProgramming\\Forms\\table.pdf", "", mergeCells, colInfos, workers); - - Dictionary> data = new Dictionary>(); - data.Add("1", new List { 0.5, 1, 2, 5, 2 }); - data.Add("2", new List { 3, 2, 1, 3, 6 }); - data.Add("3", new List { 7, 3, 1, 2, 5 }); - - diagramComponent.CreateLineDiagram("C:\\Users\\\\source\\repos\\PIbd-31_Yakovlev.M.G._COP_16\\ComponentProgramming\\Forms\\diagram.pdf", "", " ", data, LegendAlign.bottom); - } - - private void FillBox() - { - controlComboBox.ComboBoxItems.Add(" 1"); - controlComboBox.ComboBoxItems.Add(" 2"); - controlComboBox.ComboBoxItems.Add(" 3"); - controlComboBox.ComboBoxItems.Add(" 4"); - controlComboBox.SelectedItem = "dafafadsf"; - } - private void FillTextBox() - { - controlTextBox.NumPattern = @"^\+7\d{10}$"; - controlTextBox.text = "+79063908075"; - } - private void FillList() - { - controlListBox.SetTemplateString(" [Name] [Surname]", "[", "]"); - controlListBox.FillProp(new Person(1, "", ""), 0, "Name"); - controlListBox.FillProp(new Person(2, "", ""), 4, "Surname"); - } - - private void controlComboBox_ComboBoxChanged(object sender, EventArgs e) - { - var elem = controlComboBox.SelectedItem; - MessageBox.Show($": {elem}"); - } - - private void controlTextBox_CheckBoxChanged(object sender, EventArgs e) - { - if (controlTextBox.text == null) - { - MessageBox.Show($"CheckBox checked"); - } - else - { - MessageBox.Show($"CheckBox not checked"); - } - } - - private void buttonGetObj_Click(object sender, EventArgs e) - { - var obj = controlListBox.GetSelectedObject(); - MessageBox.Show($"{obj.Name} {obj.Surname}"); - } - private void buttonEnter_Click(object sender, EventArgs e) - { - var val = controlTextBox.text; - MessageBox.Show($" {val}"); - } - } -} diff --git a/ComponentProgramming/Forms/Form.resx b/ComponentProgramming/Forms/Form.resx deleted file mode 100644 index 458d54c..0000000 --- a/ComponentProgramming/Forms/Form.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 161, 17 - - - 351, 17 - - \ No newline at end of file diff --git a/ComponentProgramming/Forms/Forms.csproj b/ComponentProgramming/Forms/Forms.csproj index 212408f..8a9f1ad 100644 --- a/ComponentProgramming/Forms/Forms.csproj +++ b/ComponentProgramming/Forms/Forms.csproj @@ -9,6 +9,8 @@ + + diff --git a/ComponentProgramming/Forms/MainForm.Designer.cs b/ComponentProgramming/Forms/MainForm.Designer.cs new file mode 100644 index 0000000..5249cac --- /dev/null +++ b/ComponentProgramming/Forms/MainForm.Designer.cs @@ -0,0 +1,45 @@ +namespace Forms +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + SuspendLayout(); + // + // MainForm + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 450); + Name = "MainForm"; + Text = "Основная форма"; + ResumeLayout(false); + } + + #endregion + } +} \ No newline at end of file diff --git a/ComponentProgramming/Forms/MainForm.cs b/ComponentProgramming/Forms/MainForm.cs new file mode 100644 index 0000000..9b3c80d --- /dev/null +++ b/ComponentProgramming/Forms/MainForm.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Forms +{ + public partial class MainForm : Form + { + public MainForm() + { + InitializeComponent(); + } + } +} diff --git a/ComponentProgramming/ComponentProgramming/Control/ControlImage.resx b/ComponentProgramming/Forms/MainForm.resx similarity index 100% rename from ComponentProgramming/ComponentProgramming/Control/ControlImage.resx rename to ComponentProgramming/Forms/MainForm.resx diff --git a/ComponentProgramming/Forms/Person.cs b/ComponentProgramming/Forms/Person.cs deleted file mode 100644 index 6eaaa59..0000000 --- a/ComponentProgramming/Forms/Person.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Forms -{ - public class Person - { - public int Id { get; set; } - public string Name { get; set; } - public string Surname { get; set; } - - public Person() { } - - public Person(int id, string name, string surname) - { - Name = name; - Id = id; - Surname = surname; - } - } -} diff --git a/ComponentProgramming/Forms/Program.cs b/ComponentProgramming/Forms/Program.cs deleted file mode 100644 index 3e01fbd..0000000 --- a/ComponentProgramming/Forms/Program.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace Forms -{ - internal static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - // To customize application configuration such as set high DPI settings or default font, - // see https://aka.ms/applicationconfiguration. - ApplicationConfiguration.Initialize(); - Application.Run(new Form()); - } - } -} \ No newline at end of file diff --git a/ComponentProgramming/Forms/Worker.cs b/ComponentProgramming/Forms/Worker.cs deleted file mode 100644 index f2975d7..0000000 --- a/ComponentProgramming/Forms/Worker.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Forms -{ - public class Worker - { - public string Name { get; set; } = string.Empty; - - public string Surname { get; set; } = string.Empty; - - public string Phone { get; set; } = string.Empty; - - public string Email { get; set; } = string.Empty; - - public string Password { get; set; } = string.Empty; - - public Worker() { } - - public Worker(string name, string surname, string phone, string email, string password) - { - Name = name; - Surname = surname; - Phone = phone; - Email = email; - Password = password; - } - } -} diff --git a/ComponentProgramming/Forms/diagram.pdf b/ComponentProgramming/Forms/diagram.pdf deleted file mode 100644 index b86bdcfd5b79a7760ef3dbbd07da1186ec866a31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52779 zcmd42Wk6la(k7fhkf0&BySuwvaCeuDyF0;Mf;++8U4y&3YjAfD-zGWd-gD=^-^~1+ zKdV=FS65e8S3mvK+CVHTBtlJ3!wN+_eLb=XMUO{^XRU7r#l;0hD`*GMb1=2G64G-3 zkO^@x&@nL4u`@8z(=*aDGgHzrk`Y^0 zX!N_0#tPt|Ne+~jwX-&KGywds;?%~5rsPmOJWv2D!?*bv{$Yors||owP|rcn!rB<9 zK+hOpkH-k?mxrR20yyXy0(D(vDQs^9>0`tNa~ z3UqiZe-w%;(BsknYoW9v!1;cQh|uBDzZnLcQv@jSm$V229zE;tR-jvfraCwP?5zHn zq6ZxC=HcHCd+Qaovv#!k-6yC(D+F*dH2}zq3P8~+&??&LS=rmXt<%8u%}@W{qPJE4 z?J7xtm9c{fa6T4Bpbe%Lz^Q0OEPzW80vK2u0^Ua1I{?GU63S(1M{O_?ixsAAUS;0| zv#Qkdz3)4xE&6DMW0q*aXu%0>kevRnsCYjz`=>;dW?}4-*$uf)Pd}%6#F2&OF6boC z4u>^_eZIcC*}goU6$^=4PcT*yHz8f~QVsts1~`c5K3~1eVUVWW&fLBUW5D0s87_Ej zid>c1Iw|N?CC$0u=K>RoCzAG4`EZBKW9bR5J|a#Y{xaM(%{)P>jUSij-JboUCl>&v zeC|xu!AZ*aD+DdOQM*+osafo3;^|j9zL^mcZm(-{AS*mtPK2E1y{rUk4uVz%aobo$ z<{ohz#Fw944PGZrD^Ow>%1ZvL`KdzRrjGRA3FGeVob7bSg28OzT5MOic&h)pR|s*g zj0(X?xWKTM1H0HoKB>^YyKDH-?(O}0Q^Qsq5g=mG#;DouUT|32pKJ^%UV#-)~1Y`2;`op3sE?_0

1My7l%<~}i=I~`l?8KY{(I(W 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 diff --git a/ComponentProgramming/Forms/table.pdf b/ComponentProgramming/Forms/table.pdf deleted file mode 100644 index b57b302c54694b8e982880b8d46568a4dee3c75d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46872 zcmbTc1CXW7(k|MzZQHhO8`Is>p0;gU)3)tt+qP{_+rB;D_w9f0ea^WzPTYtUE8nWh z%z7#->#1BTUQz`SFzs8lI=w*!^4UE1<2pC!a>iD;VKMMa^&tDGyvikyU z<7Dkfzz9VzZEobC&GN@e_dn+S)A7HV{h7ze+(5|2Rh!{!oRyQ6j)|R(fP;mRj)PP8 z4&f4zr2dNI*Kbher>^DcH+tm1Z;oMLeYyWGZHZV*)OF(!0E-l=KD)UjDdjh z556xIu`i83A^c0@kCM2(jg#%)o2yJOV(e^gXsjeI1Vyh*uVQat?O^+71%_^a{QWzG zfAIe+7Ba@xrjBM`{ux-lyqjA(8r##0S$=^NF*dX@GX7)b;P{m`R#2|1i7B!c>kJ42 zmmjEnjX${-hly7dq;55jX-S%9g$Y<#NTx}Ce!NF7CW#wHQPcLUR4`3WVw-1Gw6oAp ztXR!8?VR1`az4AyHNo3VjHqs<<#xQUJauAcGFOUk$(ot}?tGr_(|7MyZl!a#CD!HW z+I_z9ep=t;o5lZtSXQivcm#a^?S3`4^O$_Mg4^grd4;VTGx3P;<$*uTKnQE-32tIr z$v*8?WB8g83A-$-FY`LT&O!(8sHM~FVJp48e3Bb7q1yadX0l>{N-Bp)TK#)bu5F{v$m_4=z*qpc^n_fQF6&27<7O`j& zh`GYfttNwDteec>53WQeop2!6o0U0I~ z_(mwc^0%aA6Ju-#txP#UruUdC+rRO2e%7WJP38^^JF`_Q;NvhCSe6s6i&*%L5>_Bm zD*2K5t&F05gYjFO@{?{on^r861#Ja|7BJC_8k_V#O65t&xVEbgA|s zLZxas#HDDh9FBoXR4qMyW!gXhS-5O#Vh46UP{bnNLJs_l*e_o|#+!F5a|!PwTIZW@ znQ`WYn?uCAHX?D)k;FDTK*ZbWt`M3fMmc`R!9d)bR_sN@Tk*vWlwVqD@57}VAkJ{u zRGK9&Wb*YN!jpVHjjG>^18LYsl;gUjJ&98ytnde?`qp6=D6UlEFV3;l-d7+l^;V*w znOL^T(MwFZP$iCp*WhqEvO+u_z$M>c=NO|P40mkFgH)k?-zkpM5(X!f=SLKC1p#h? z8t-nKl;wQXo#KkaCG};EWJ!SG!pNWCnvC;%k=)oCeUjUT`XpZID>00O3nK3qSL`JH zwQV8EGar*3B})<1dVo=@H@SLADOGw%Gb}cZXGuxDRZ1$PRBdo~;(z{FB87}u<-Omx zgg6w;EMDbml@1P*+v5A^8~%3H!(zFW`~LChDP;N$IstV8WhGFZgP}ZW9uzb$8<<$+ z3z0xCHIjWO9%n{tvhZmSwIk@Uft!uP6odGt{Va3gtgrw0gGB0C)UUl%kgjdauK@9$ zr2Z>Fae<~^0W$px5OAUCzXBxD%ls7})2{%fe+39{yzc>lXF;shy6O|~4_p6p?Em5I zKNR&Z&iIRV|IK3bhF>)OAN0chzpDNrG7)13Lwj>uM;m)6dO-)nKeWoh`Nh`42DTE$ z=B8$j1Z-?fP+tu8_ZSl++ZP>K8km0F2w&ZQJP7@vXg!S-%2)C2G)NoeX*c169MDjtp9J;>C8rRgtEG~?u`vmN>2=N?Awsx`U;>F(f z`;mp^m7~pYsY$sVW~nsn0zqE4>#D_~&7_gNj&o^`C}H>goN4H`iXYCp!F~n**)_E| z-DCY%A0eM{R}q_>u8)1pXX9(Jr4Q~XT=!)GY3aZi!7H)&x^yg zdX;0SAygk5Lq|?(PcBL3U)M~FvKglzDEMgQ#(0eu2KTMr8vUK`odg7^c+p$b5>Gm( zcjuXMkoew%E~8OwPpP$ohdNgVeTsezF)5g^h4GtN;a zGV{5MYKetNlGdE2MBE%_q(+)8-KXLrEl?imn5HDml#0fT^)*&t0!Etc*iQk3Jo#on z?h8T_5YL$q8$GM~*K_z^D%V>Q65QHvFwY4<1 z`g2VFN~b@5RBXg0MPvHlT;ce?)jWD)#1c}h_9LIw`Te<1vSX1Y3oHY+=mHX9q8 zE-O3p*E7eLWYK2hVEU5m+N=x=Uy?(co$0I1!SJ^p2a`6(S7F4;!TL`>`#=30+H8zp z`kV~f?3@g`Yz$1=EG*1l^2;v+$CqT$W?^UglC0V+UwUi|?Ej2&YBO`P>VDa3voimY zjQ_|ldyYSCW^EQu&M*0ei}}l*k@cT(w!iSPF>?GPIsf*@#GuW>%&yDE^yTLZKO586 z`dI$7zw8*k?3viK+1dZ}b854(GwQN2f9bQbeaWwRSUGk7vtInG;QBAZ`|n-;v%Oyo zBWnFsC4Ft?|Lh5^1QflBjjFZzpX!O=4`=+}Zph!%XJlaQ_-7^u?LTSuUnT5crQv@; z`VS5k7W^*`{;Np*FWvtIzP*$2pC$ZXCd>aUQ{CKJ(AvTLU+w?53=}iBcW@N``hD;h zd&?O7(_ms{g`!tCH*z#{AYlBfME{R#<1fPf7v#Uml#$>o-I)H*h3WtBEdwhD(|{?eW=psWGO}QA@>?OJ4Mb7v8DMM^7K`sYln#b&o}lOU_HTrrS>X za0VfX5G=%i^@OTy1@$|xl%O~(XJm-d+v0iIj*l0rA&5XIvOZx| zWs4)ZR6DO3b%?~@LM0cO=1a0EZ)^L3>WHhY5Sww_uvA3BBJ?3lzw)2Vm!>*Ni!L2J zay^l91<8My%BB&tGY}#fv}2EwS7+NwXY!&bM%k`_9bZ;iG*?+GABKbHyx|Fr1}F^a zw0=jxWe*PzLE5Jo35`NR?4?vdP=IPh4hc(FiA%w4Y zv}RH7quozyHePRAhhOL93x~`L*ImYl=6EG%JJ`dshMnzqmhj zFK;(*PsdKu&ac_e4tclg7ODF5{wX%*>5gv!{iOc+yXSQ$ie6)NxB8jI-NYm94edSe zvB&IVUiCuL#$%aH(J^W4AjltBe9q2dEv!HcoQ1lm_V~^a=Aa=Sydbw8Ds`{GSrAdd(Ox?|@72Vrb zx?uX?K9pHAT)}?f!T97<*CPLx#8mj{)@-*l&hED!tQ9D_fbv~3+lc1ZX7Fa1nLXAC6Xb9eZ5+FSGaMXYJT6 z#m%N|$!$x3zhX_>O*>7WQO!~Tv>rH)NX-`dWfyY}KJ;=_?Lf80yv{u7b^I1z0V?|d zD&MH5TPOK}b5s+8XD!bv&-NDSwR`|_?oVFy*umK40L^lt5z)WX-+`C~(V^&4v|L>e zSkQm0YUT)@UDCOz>n>$fi9uCfu|w4I_uV53>DYt^Ksd=3yF38w$NSMi2q6imwuVj* z0HXu0eR6t_iXNLD9`!(EriM&637DG_O{Ppzn8KLeneH>UGS6b}!1x4n_hk^8PQyD| z(c$t(`;lLY96tr`QO8vBJj~aULg0EtH{vwmmGiUVN%a`!8fp&h#w6j;@@d(!T$)|X zROI*MON#GBb482c4TyVl*&hy{5En;#%4T!jOvYu3f8(!1wYR}{dl;q`50AOyo_&;f zi)$v%BA!erH_Nth4K(SFG~r=1ypJ40Osg{=4NAF049|cTY1DGnag~{VAvB5>9=-~K zQYrfs^ui+uNRj+W$H+6`30;E;=>#fZ1uxhd4E*CLf9Es?0f83j-WK!3qn~qktd(mc zr1h4mTdb+FlG?QT}|^W6(S77t~B)dB7oW_>O>Y zLdY{Dzi?#5F7wZ(+sxo!5Y9#MbG(kZSwL|`US|OBn9{<%h2V4Kr^SyASzx_lCUXYN zz|x{k^3D`#TLCMD>lJv*gkg`x9Ffza4s+6H%pIXyQ71&3a=E9^&8XdxCWKx5*PEf= zeZ582uB6@|$WnS}4yQpK5&6T_cZRO^N|2ol@SrtB4BD~y{g$>HTyedTq%}f}D~9BE zif7#Jz`eovBeMI>uEE}Tya8?c>35T_#-32uBeiX*Hv>OJvUkbaL7H|ZT%k9^*J=T= zui4shsWk@3EXByD)j5E~cX6Loae`=FDZOF4qFr`%pJ3m}8oy(^gR&ZOM-STUY%Kd3 z+R`}hHeGWc)8DbbV0i`TE=Tclz;#7z^?6*qy3&6DT=wCAr;i@u`#tn}4d{vB6UaZ9 zopa6sNWM$beU)&G^6}H=3zhWq>(lGA@tgezpf~6z!6(8eLsz^{pwG{UBlYW;+@q(V z=Y==qH!N@3u4tclpKzZvpJ1OPpJ=_QNqy5B?5Cq=^rxt|h&SoCu{UZ@=B?hQoAf8P z#-xs{t#O;3rknFOHgE2(0G~vkD4)!&k;~n!?XCT-U6)&%+smuVo6BpDr^n}xH}E&U z4`FY9AK#8)=Q>@>6k(i0h#^~=Av+#&TOx8hF1bVa8~khh+w7Z=r>UpDx1%@oH^dK$ zPg0*q{>kj^uHCM~t{wTC;wPKu%cr@w$2a&l%n$L-fKN#L-t3*eCxift4ff9)#>JNrN!O7W3!PZ>VC?AWgOuB5Iw`O)Hin}f@{ zqr0xNsk6`N&(crn&!!LmkGxLhtwMP0SU~7+gx{_py$J;+P~roP2)mz+A}mp{g4zPx zf;I(I`q051YEUW`PV4AD!NL#YPyP= zp=kxG86-@TSteQ4=|(5v+DGD0a~miBPU5xC_?@_Coc%i)d0)gC^fhNWrbCqm=`~{D zdl-jrCM_Hacv#{0R1OUsA~@8s0Vul^4jmlAXcY0V`~k-Ag&L&Ms6$~(p$oeWyRNmt zUK(=o2?xFzM8%`#_N_QS<;S+h_=ipR@eg1)l_!xdkuTAc!^Q@{`%!lTc7=EQcBQTn zuNCbQpHiNhn^#@eU3;GruPv@2?V_%+_ayBq{V*_qBQnZ>KO?7h^{y1(s6Sw{`;M;h zpXA@rKd`~CKs^y%cIl?edUNpgg&>4AdJ(fAL`aZkc2tOvc^MIi6+@+D`eleDNaTnW z`~BzaVl~2|mL*y2Vlj}UGx|ZbR+Oe$c5T5XNxo%>?uNxYNdifdNRp(2L>BK`a*BTl z@e$!Ca_?vFXCKt>wvhxC#IwZ9`I7_~#nZ&g+Dp)#5O$JZ5H`iH4WIAB*^{S=V~yzU zTie5@%Acb5nB{hgLqUxn1`=v7arTs~y;tLXtB&S3j z;OK%Q4l**NnIyy{<5VUm+?qKisZ&YnQ3yq)6yrtfq}WF2M5W;<#ljOa;-&4S@hIhP zusBA@p9?`K6{X_i3w?j~4mj{ps!Aoy7UujUG?vm-YWzujAjMmdrIht^>bV7^G+Bk< zKIugwNJ-+9`aU7N;6tfah3J#$lL|H#49hh@9|1OA&@{GCP^naf3^plPLb%YrR0xX< zHd#!9xKMG{%sf)Xd>R`DEMJiEL!Za+ZD!fvZRDvwH#>KDdP~8Q$Kq|^sr;IKk8|&G z@OF?t(g*8P$#7m{p|n+{=~Qt~rCO;lQgx7WiDF^2Vbt}O<<`+Sw@#ugeo$(!z@p&C ziI#c03bAY~nN&i-$gI;Wig_7}Y#QAs*+i^~RKx83EbJ^zsa#nyRsnY5%B<`xjy--$ zHVyIE2(S^TTP%+V9vSt4!#?5-g{CMTaZJL(K4e{RMWS_*Px925&#?Tc{D}P66h@aa z=bp$O$)3@k(;($d_P+Qt=d-3;N4uc+H*djBimqW}%q@mabI-BnwI{X{1_7KT!>w}AZtd_Qx=k<=9OLjZyme-bp zb*KwMYtl!GM~tR4NMEp~Xpi8v?v7zr2di~7Ywo6iwUG``?$VBR?+b#2QLk~YLEN2a zhb;!ob(eL_3)2hs3-}8l^h3;V+s5B^WIaJ_j3=+0`I20&tvCCIuCLp(<@XbwQTU?Z znK(VkvL_z*Z=d-*LobIOO+`9W=y$-cfS(0DDfI^74@0hmpY1#S@dx3L#IJ~-72nLf zVf04SuMJhlV-mFYWs`UMjxkbaT>3(~f~$APZ|9y)Zq#@e9o!{trqk~f-P`!oE@xiv zAYVwl1hT89W*?^?XVFh1?tt%%U+mu@-Z9=e-d*2G-c{Zm-(~hP2iu|^vC<=@qsF4B zBjGXeS*zHpnE8x72cI(R0uY7*v`~NEkBS|j8Yk4LuH^n!*;Lw8eW37A)m$hS zTd2@dN$2{OY2=)uYf{bGlVK#sYMSCO4tltG$ag5@FucCBKBZ%HVME83oC2N#o(7&O zy-+&JcOY!sWiP;4;#uHX;hE=IhNHx%3`dWgzJ>osRL;p96GiD!@QjL(KB3Hy@S^dfHRV}wx9GddO-fRKB&9`t6Rs}jlFB*>r}ucg;z(bMk@lDc_k zvq8pz-a}g>8f48OTBW>XymWLc`TUa0E#@1H!dm6L zl)R+8w7kT;)V$<$tF0BX)%66V7otuhPNmH%U+P}MS1TGzDo@E8V6)ZO%eCh#f3&sA zZd6?;=&9-{>#4hxwav57voAEwZ=9~3a-X)HdYt0jdpT9V__fNvD{NHbDZrQEWBv{{ zyEnW?zE{3S;Eu6U;a7$)&o0+15ueY0@^}O03-Dp#km>JF(Lgrcl?{+7G($ZVu*ox> zfzk<0+UazK^9HEyhTlzBf?*8S2$r^>BMS|yU0cMGW8*4ll`34OMlh$ zW%}2aW4Gfpjuqbbm*KnG6Xdz#BH^MbnGo6R^pLc%3DiS_!<|FK!?;7m!_-5qTeDjX zhr*Uoo<*KX�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

`0v-Mz3!I}~oLNIltxRUJ6 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Ⓢh6M4S7RQd)^BkmvV^dR5 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 cJ9>d52nEl2sa8+55 + + + net8.0 + enable + enable + + + diff --git a/ComponentProgramming/Models/Models/IOrganisationTypeModel.cs b/ComponentProgramming/Models/Models/IOrganisationTypeModel.cs new file mode 100644 index 0000000..a0fca8b --- /dev/null +++ b/ComponentProgramming/Models/Models/IOrganisationTypeModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Models.Models +{ + public interface IOrganisationTypeModel: IId + { + string Name { get; } + } +} diff --git a/ComponentProgramming/Models/Models/IProviderModel.cs b/ComponentProgramming/Models/Models/IProviderModel.cs new file mode 100644 index 0000000..77074e0 --- /dev/null +++ b/ComponentProgramming/Models/Models/IProviderModel.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Models.Models +{ + public interface IProviderModel : IId + { + + string Name { get;} + + string FurnitureType { get;} + + string OrganisationType { get; } + + DateTime? DateLastDelivery { get; } + } +}