From 672ec3ddf8cdf9c90dc07c4d4ab72483d8fa56e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B3=D0=BE=D1=80?= Date: Mon, 25 Nov 2024 03:21:05 +0400 Subject: [PATCH 1/2] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=E2=84=961=20(1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FurnitureCompany/Entities/Client.cs | 32 ++++ .../FurnitureCompany/Entities/Delivery.cs | 32 ++++ .../Entities/DeliveryProduct.cs | 29 +++ .../Entities/Enums/Material.cs | 21 +++ .../Entities/Enums/WorkerPost.cs | 18 ++ .../FurnitureCompany/Entities/Invoice.cs | 35 ++++ .../FurnitureCompany/Entities/Product.cs | 30 +++ .../FurnitureCompany/Entities/Worker.cs | 30 +++ .../FurnitureCompany/Form1.Designer.cs | 39 ---- .../FormFurnitureCompany.Designer.cs | 133 ++++++++++++++ .../{Form1.cs => FormFurnitureCompany.cs} | 5 +- .../FormFurnitureCompany.resx | 123 +++++++++++++ .../Forms/FormClient.Designer.cs | 172 ++++++++++++++++++ .../FurnitureCompany/Forms/FormClient.cs | 88 +++++++++ .../{Form1.resx => Forms/FormClient.resx} | 54 +++--- .../FurnitureCompany/FurnitureCompany.csproj | 19 ++ FurnitureCompany/FurnitureCompany/Program.cs | 19 +- .../Properties/Resources.Designer.cs | 73 ++++++++ .../Properties/Resources.resx | 124 +++++++++++++ .../Repositories/IClientRepository.cs | 21 +++ .../Repositories/IDeliveryRepository.cs | 18 ++ .../Repositories/IInvoiceRepository.cs | 16 ++ .../Repositories/IProductRepository.cs | 21 +++ .../Repositories/IWorkerRepository.cs | 21 +++ .../Implementations/ClientRepository.cs | 33 ++++ .../Implementations/DeliveryRepository.cs | 24 +++ .../Implementations/InvoiceRepository.cs | 20 ++ .../Implementations/ProductRepository.cs | 34 ++++ .../Implementations/WorkerRepository.cs | 34 ++++ .../57435d62a4b6bbc87520597c0e8c4c3a.jpg | Bin 0 -> 187226 bytes 30 files changed, 1249 insertions(+), 69 deletions(-) create mode 100644 FurnitureCompany/FurnitureCompany/Entities/Client.cs create mode 100644 FurnitureCompany/FurnitureCompany/Entities/Delivery.cs create mode 100644 FurnitureCompany/FurnitureCompany/Entities/DeliveryProduct.cs create mode 100644 FurnitureCompany/FurnitureCompany/Entities/Enums/Material.cs create mode 100644 FurnitureCompany/FurnitureCompany/Entities/Enums/WorkerPost.cs create mode 100644 FurnitureCompany/FurnitureCompany/Entities/Invoice.cs create mode 100644 FurnitureCompany/FurnitureCompany/Entities/Product.cs create mode 100644 FurnitureCompany/FurnitureCompany/Entities/Worker.cs delete mode 100644 FurnitureCompany/FurnitureCompany/Form1.Designer.cs create mode 100644 FurnitureCompany/FurnitureCompany/FormFurnitureCompany.Designer.cs rename FurnitureCompany/FurnitureCompany/{Form1.cs => FormFurnitureCompany.cs} (51%) create mode 100644 FurnitureCompany/FurnitureCompany/FormFurnitureCompany.resx create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormClient.Designer.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormClient.cs rename FurnitureCompany/FurnitureCompany/{Form1.resx => Forms/FormClient.resx} (92%) create mode 100644 FurnitureCompany/FurnitureCompany/Properties/Resources.Designer.cs create mode 100644 FurnitureCompany/FurnitureCompany/Properties/Resources.resx create mode 100644 FurnitureCompany/FurnitureCompany/Repositories/IClientRepository.cs create mode 100644 FurnitureCompany/FurnitureCompany/Repositories/IDeliveryRepository.cs create mode 100644 FurnitureCompany/FurnitureCompany/Repositories/IInvoiceRepository.cs create mode 100644 FurnitureCompany/FurnitureCompany/Repositories/IProductRepository.cs create mode 100644 FurnitureCompany/FurnitureCompany/Repositories/IWorkerRepository.cs create mode 100644 FurnitureCompany/FurnitureCompany/Repositories/Implementations/ClientRepository.cs create mode 100644 FurnitureCompany/FurnitureCompany/Repositories/Implementations/DeliveryRepository.cs create mode 100644 FurnitureCompany/FurnitureCompany/Repositories/Implementations/InvoiceRepository.cs create mode 100644 FurnitureCompany/FurnitureCompany/Repositories/Implementations/ProductRepository.cs create mode 100644 FurnitureCompany/FurnitureCompany/Repositories/Implementations/WorkerRepository.cs create mode 100644 FurnitureCompany/FurnitureCompany/Resources/57435d62a4b6bbc87520597c0e8c4c3a.jpg diff --git a/FurnitureCompany/FurnitureCompany/Entities/Client.cs b/FurnitureCompany/FurnitureCompany/Entities/Client.cs new file mode 100644 index 0000000..cd724c5 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Entities/Client.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Entities; + +public class Client +{ + public int Id { get; private set; } + + public string Name { get; private set; } = string.Empty; + + public string Address { get; private set; } = string.Empty; + + public int Age { get; private set; } + + public double Earnings { get; private set; } + + public static Client CreateEntity(int id, string name, string address, int age, double earnings) + { + return new Client + { + Id = id, + Name = name ?? string.Empty, + Address = address ?? string.Empty, + Age = age, + Earnings = earnings + }; + } +} diff --git a/FurnitureCompany/FurnitureCompany/Entities/Delivery.cs b/FurnitureCompany/FurnitureCompany/Entities/Delivery.cs new file mode 100644 index 0000000..00e3d6c --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Entities/Delivery.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Entities; + +public class Delivery +{ + public int Id { get; private set; } + + public int WorkerId { get; private set; } + + public string Status { get; private set; } = string.Empty; + + public DateTime DateDelivery { get; private set; } + + public IEnumerable DeliveryProducts { get; private set; } = []; + + public static Delivery CreateOperation(int id, int workerId, string status, IEnumerable deliveryProducts) + { + return new Delivery + { + Id = id, + WorkerId = workerId, + Status = status, + DateDelivery = DateTime.Now, + DeliveryProducts = deliveryProducts + }; + } +} diff --git a/FurnitureCompany/FurnitureCompany/Entities/DeliveryProduct.cs b/FurnitureCompany/FurnitureCompany/Entities/DeliveryProduct.cs new file mode 100644 index 0000000..eb07acf --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Entities/DeliveryProduct.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Entities; + +public class DeliveryProduct +{ + public int Id { get; private set; } + + public int ProductId { get; private set; } + + public int DeliveryId { get; private set; } + + public int Count { get; private set; } + + public static DeliveryProduct CreateElement(int id, int productId, int deliveryId, int count) + { + return new DeliveryProduct + { + Id = id, + ProductId = productId, + DeliveryId = deliveryId, + Count = count + }; + } +} diff --git a/FurnitureCompany/FurnitureCompany/Entities/Enums/Material.cs b/FurnitureCompany/FurnitureCompany/Entities/Enums/Material.cs new file mode 100644 index 0000000..87703c6 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Entities/Enums/Material.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Entities.Enums; + +[Flags] +public enum Material +{ + None = 0, + + Wood = 1, + + Stone = 2, + + Glass = 4, + + Metal = 8 +} diff --git a/FurnitureCompany/FurnitureCompany/Entities/Enums/WorkerPost.cs b/FurnitureCompany/FurnitureCompany/Entities/Enums/WorkerPost.cs new file mode 100644 index 0000000..e183877 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Entities/Enums/WorkerPost.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Entities.Enums; + +public enum WorkerPost +{ + None = 0, + + Beginner = 1, + + Advanced = 2, + + Professional = 3 +} diff --git a/FurnitureCompany/FurnitureCompany/Entities/Invoice.cs b/FurnitureCompany/FurnitureCompany/Entities/Invoice.cs new file mode 100644 index 0000000..a5cf261 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Entities/Invoice.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Entities; + +public class Invoice +{ + public int Id { get; private set; } + + public int WorkerId { get; private set; } + + public int ClientId { get; private set; } + + public int ProductId { get; private set; } + + public DateTime Date { get; private set; } + + public int CountProduct { get; private set; } + + public static Invoice CreateOperation(int id, int workerId, int clientId, int productId, int countProduct) + { + return new Invoice + { + Id = id, + WorkerId = workerId, + ClientId = clientId, + ProductId = productId, + Date = DateTime.Now, + CountProduct = countProduct + }; + } +} diff --git a/FurnitureCompany/FurnitureCompany/Entities/Product.cs b/FurnitureCompany/FurnitureCompany/Entities/Product.cs new file mode 100644 index 0000000..32e8e6c --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Entities/Product.cs @@ -0,0 +1,30 @@ +using FurnitureCompany.Entities.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Entities; + +public class Product +{ + public int Id { get; private set; } + + public string Name { get; private set; } = string.Empty; + + public Material Material { get; private set; } + + public double Price { get; private set; } + + public static Product CreateEntity(int id, Material material, string name, double price) + { + return new Product + { + Id = id, + Material = material, + Name = name ?? string.Empty, + Price = price + }; + } +} diff --git a/FurnitureCompany/FurnitureCompany/Entities/Worker.cs b/FurnitureCompany/FurnitureCompany/Entities/Worker.cs new file mode 100644 index 0000000..31eb241 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Entities/Worker.cs @@ -0,0 +1,30 @@ +using FurnitureCompany.Entities.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Entities; + +public class Worker +{ + public int Id { get; private set; } + + public string Surname { get; private set; } = string.Empty; + + public int Expirience { get; private set; } + + public WorkerPost WorkerPost { get; private set; } + + public static Worker CreateEntity(int id, string surname, int expirience, WorkerPost workerPost) + { + return new Worker + { + Id = id, + Surname = surname ?? string.Empty, + Expirience = expirience, + WorkerPost = workerPost + }; + } +} diff --git a/FurnitureCompany/FurnitureCompany/Form1.Designer.cs b/FurnitureCompany/FurnitureCompany/Form1.Designer.cs deleted file mode 100644 index 58f533a..0000000 --- a/FurnitureCompany/FurnitureCompany/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace FurnitureCompany -{ - partial class Form1 - { - /// - /// 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() - { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Text = "Form1"; - } - - #endregion - } -} diff --git a/FurnitureCompany/FurnitureCompany/FormFurnitureCompany.Designer.cs b/FurnitureCompany/FurnitureCompany/FormFurnitureCompany.Designer.cs new file mode 100644 index 0000000..6e1e6b6 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/FormFurnitureCompany.Designer.cs @@ -0,0 +1,133 @@ +namespace FurnitureCompany +{ + partial class FormFurnitureCompany + { + /// + /// 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() + { + menuStrip1 = new MenuStrip(); + справочникиToolStripMenuItem = new ToolStripMenuItem(); + работникиToolStripMenuItem = new ToolStripMenuItem(); + клиентыToolStripMenuItem = new ToolStripMenuItem(); + изделияToolStripMenuItem = new ToolStripMenuItem(); + операцииToolStripMenuItem = new ToolStripMenuItem(); + оформлениеЗаказаToolStripMenuItem = new ToolStripMenuItem(); + доставкаToolStripMenuItem = new ToolStripMenuItem(); + отчётыToolStripMenuItem = new ToolStripMenuItem(); + menuStrip1.SuspendLayout(); + SuspendLayout(); + // + // menuStrip1 + // + menuStrip1.ImageScalingSize = new Size(20, 20); + menuStrip1.Items.AddRange(new ToolStripItem[] { справочникиToolStripMenuItem, операцииToolStripMenuItem, отчётыToolStripMenuItem }); + menuStrip1.Location = new Point(0, 0); + menuStrip1.Name = "menuStrip1"; + menuStrip1.Size = new Size(782, 28); + menuStrip1.TabIndex = 0; + menuStrip1.Text = "menuStrip1"; + // + // справочникиToolStripMenuItem + // + справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { работникиToolStripMenuItem, клиентыToolStripMenuItem, изделияToolStripMenuItem }); + справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem"; + справочникиToolStripMenuItem.Size = new Size(117, 24); + справочникиToolStripMenuItem.Text = "Справочники"; + // + // работникиToolStripMenuItem + // + работникиToolStripMenuItem.Name = "работникиToolStripMenuItem"; + работникиToolStripMenuItem.Size = new Size(166, 26); + работникиToolStripMenuItem.Text = "Работники"; + // + // клиентыToolStripMenuItem + // + клиентыToolStripMenuItem.Name = "клиентыToolStripMenuItem"; + клиентыToolStripMenuItem.Size = new Size(166, 26); + клиентыToolStripMenuItem.Text = "Клиенты"; + // + // изделияToolStripMenuItem + // + изделияToolStripMenuItem.Name = "изделияToolStripMenuItem"; + изделияToolStripMenuItem.Size = new Size(166, 26); + изделияToolStripMenuItem.Text = "Изделия"; + // + // операцииToolStripMenuItem + // + операцииToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { оформлениеЗаказаToolStripMenuItem, доставкаToolStripMenuItem }); + операцииToolStripMenuItem.Name = "операцииToolStripMenuItem"; + операцииToolStripMenuItem.Size = new Size(95, 24); + операцииToolStripMenuItem.Text = "Операции"; + // + // оформлениеЗаказаToolStripMenuItem + // + оформлениеЗаказаToolStripMenuItem.Name = "оформлениеЗаказаToolStripMenuItem"; + оформлениеЗаказаToolStripMenuItem.Size = new Size(233, 26); + оформлениеЗаказаToolStripMenuItem.Text = "Оформление заказа"; + // + // доставкаToolStripMenuItem + // + доставкаToolStripMenuItem.Name = "доставкаToolStripMenuItem"; + доставкаToolStripMenuItem.Size = new Size(233, 26); + доставкаToolStripMenuItem.Text = "Доставка"; + // + // отчётыToolStripMenuItem + // + отчётыToolStripMenuItem.Name = "отчётыToolStripMenuItem"; + отчётыToolStripMenuItem.Size = new Size(73, 24); + отчётыToolStripMenuItem.Text = "Отчёты"; + // + // FormFurnitureCompany + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + BackgroundImage = Properties.Resources._57435d62a4b6bbc87520597c0e8c4c3a; + BackgroundImageLayout = ImageLayout.Stretch; + ClientSize = new Size(782, 403); + Controls.Add(menuStrip1); + MainMenuStrip = menuStrip1; + Name = "FormFurnitureCompany"; + StartPosition = FormStartPosition.CenterScreen; + Text = "Мебельная компания"; + menuStrip1.ResumeLayout(false); + menuStrip1.PerformLayout(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private MenuStrip menuStrip1; + private ToolStripMenuItem справочникиToolStripMenuItem; + private ToolStripMenuItem работникиToolStripMenuItem; + private ToolStripMenuItem клиентыToolStripMenuItem; + private ToolStripMenuItem изделияToolStripMenuItem; + private ToolStripMenuItem операцииToolStripMenuItem; + private ToolStripMenuItem отчётыToolStripMenuItem; + private ToolStripMenuItem оформлениеЗаказаToolStripMenuItem; + private ToolStripMenuItem доставкаToolStripMenuItem; + } +} diff --git a/FurnitureCompany/FurnitureCompany/Form1.cs b/FurnitureCompany/FurnitureCompany/FormFurnitureCompany.cs similarity index 51% rename from FurnitureCompany/FurnitureCompany/Form1.cs rename to FurnitureCompany/FurnitureCompany/FormFurnitureCompany.cs index 223c63b..8abe90b 100644 --- a/FurnitureCompany/FurnitureCompany/Form1.cs +++ b/FurnitureCompany/FurnitureCompany/FormFurnitureCompany.cs @@ -1,10 +1,11 @@ namespace FurnitureCompany { - public partial class Form1 : Form + public partial class FormFurnitureCompany : Form { - public Form1() + public FormFurnitureCompany() { InitializeComponent(); } + } } diff --git a/FurnitureCompany/FurnitureCompany/FormFurnitureCompany.resx b/FurnitureCompany/FurnitureCompany/FormFurnitureCompany.resx new file mode 100644 index 0000000..b48baf1 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/FormFurnitureCompany.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormClient.Designer.cs b/FurnitureCompany/FurnitureCompany/Forms/FormClient.Designer.cs new file mode 100644 index 0000000..9696902 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormClient.Designer.cs @@ -0,0 +1,172 @@ +namespace FurnitureCompany.Forms +{ + partial class FormClient + { + /// + /// 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() + { + labelClientName = new Label(); + labelClientAddress = new Label(); + labelClientAge = new Label(); + textBoxClientName = new TextBox(); + textBoxClientAddress = new TextBox(); + labelClientEarnings = new Label(); + numericUpDownClientEarnings = new NumericUpDown(); + buttonSave = new Button(); + buttonCancel = new Button(); + numericUpDownClientAge = new NumericUpDown(); + ((System.ComponentModel.ISupportInitialize)numericUpDownClientEarnings).BeginInit(); + ((System.ComponentModel.ISupportInitialize)numericUpDownClientAge).BeginInit(); + SuspendLayout(); + // + // labelClientName + // + labelClientName.AutoSize = true; + labelClientName.Location = new Point(46, 34); + labelClientName.Name = "labelClientName"; + labelClientName.Size = new Size(101, 20); + labelClientName.TabIndex = 0; + labelClientName.Text = "Имя клиента:"; + // + // labelClientAddress + // + labelClientAddress.AutoSize = true; + labelClientAddress.Location = new Point(46, 95); + labelClientAddress.Name = "labelClientAddress"; + labelClientAddress.Size = new Size(147, 20); + labelClientAddress.TabIndex = 1; + labelClientAddress.Text = "Адрес проживания:"; + // + // labelClientAge + // + labelClientAge.AutoSize = true; + labelClientAge.Location = new Point(46, 160); + labelClientAge.Name = "labelClientAge"; + labelClientAge.Size = new Size(67, 20); + labelClientAge.TabIndex = 2; + labelClientAge.Text = "Возраст:"; + // + // textBoxClientName + // + textBoxClientName.Location = new Point(212, 31); + textBoxClientName.Name = "textBoxClientName"; + textBoxClientName.Size = new Size(192, 27); + textBoxClientName.TabIndex = 3; + // + // textBoxClientAddress + // + textBoxClientAddress.Location = new Point(212, 92); + textBoxClientAddress.Name = "textBoxClientAddress"; + textBoxClientAddress.Size = new Size(192, 27); + textBoxClientAddress.TabIndex = 4; + // + // labelClientEarnings + // + labelClientEarnings.AutoSize = true; + labelClientEarnings.Location = new Point(46, 223); + labelClientEarnings.Name = "labelClientEarnings"; + labelClientEarnings.Size = new Size(71, 20); + labelClientEarnings.TabIndex = 6; + labelClientEarnings.Text = "Выручка:"; + // + // numericUpDownClientEarnings + // + numericUpDownClientEarnings.DecimalPlaces = 2; + numericUpDownClientEarnings.Location = new Point(212, 221); + numericUpDownClientEarnings.Maximum = new decimal(new int[] { 10000, 0, 0, 0 }); + numericUpDownClientEarnings.Minimum = new decimal(new int[] { 1, 0, 0, 131072 }); + numericUpDownClientEarnings.Name = "numericUpDownClientEarnings"; + numericUpDownClientEarnings.Size = new Size(150, 27); + numericUpDownClientEarnings.TabIndex = 7; + numericUpDownClientEarnings.Value = new decimal(new int[] { 1, 0, 0, 131072 }); + // + // buttonSave + // + buttonSave.Location = new Point(99, 300); + buttonSave.Name = "buttonSave"; + buttonSave.Size = new Size(94, 29); + buttonSave.TabIndex = 8; + buttonSave.Text = "Сохранить"; + buttonSave.UseVisualStyleBackColor = true; + buttonSave.Click += buttonSave_Click; + // + // buttonCancel + // + buttonCancel.Location = new Point(268, 300); + buttonCancel.Name = "buttonCancel"; + buttonCancel.Size = new Size(94, 29); + buttonCancel.TabIndex = 9; + buttonCancel.Text = "Отмена"; + buttonCancel.UseVisualStyleBackColor = true; + buttonCancel.Click += buttonCancel_Click; + // + // numericUpDownClientAge + // + numericUpDownClientAge.Location = new Point(212, 158); + numericUpDownClientAge.Minimum = new decimal(new int[] { 1, 0, 0, 0 }); + numericUpDownClientAge.Name = "numericUpDownClientAge"; + numericUpDownClientAge.Size = new Size(150, 27); + numericUpDownClientAge.TabIndex = 10; + numericUpDownClientAge.Value = new decimal(new int[] { 1, 0, 0, 0 }); + // + // FormClient + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(450, 365); + Controls.Add(numericUpDownClientAge); + Controls.Add(buttonCancel); + Controls.Add(buttonSave); + Controls.Add(numericUpDownClientEarnings); + Controls.Add(labelClientEarnings); + Controls.Add(textBoxClientAddress); + Controls.Add(textBoxClientName); + Controls.Add(labelClientAge); + Controls.Add(labelClientAddress); + Controls.Add(labelClientName); + Name = "FormClient"; + StartPosition = FormStartPosition.CenterParent; + Text = "Клиент"; + ((System.ComponentModel.ISupportInitialize)numericUpDownClientEarnings).EndInit(); + ((System.ComponentModel.ISupportInitialize)numericUpDownClientAge).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private Label labelClientName; + private Label labelClientAddress; + private Label labelClientAge; + private TextBox textBoxClientName; + private TextBox textBoxClientAddress; + private Label labelClientEarnings; + private NumericUpDown numericUpDownClientEarnings; + private Button buttonSave; + private Button buttonCancel; + private NumericUpDown numericUpDownClientAge; + } +} \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormClient.cs b/FurnitureCompany/FurnitureCompany/Forms/FormClient.cs new file mode 100644 index 0000000..b425517 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormClient.cs @@ -0,0 +1,88 @@ +using FurnitureCompany.Entities; +using FurnitureCompany.Repositories; +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 FurnitureCompany.Forms +{ + public partial class FormClient : Form + { + private readonly IClientRepository _clientRepository; + + private int? _clientId; + + public int Id + { + set + { + try + { + var client = _clientRepository.ReadClientById(value); + if (client == null) + { + throw new InvalidDataException(nameof(client)); + } + + textBoxClientName.Text = client.Name; + textBoxClientAddress.Text = client.Address; + numericUpDownClientAge.Value = client.Age; + numericUpDownClientEarnings.Value = (decimal)client.Earnings; + _clientId = value; + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + } + } + + public FormClient(IClientRepository clientRepository) + { + InitializeComponent(); + _clientRepository = clientRepository ?? + throw new ArgumentNullException(nameof(clientRepository)); + } + + private void buttonSave_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrWhiteSpace(textBoxClientName.Text) || + string.IsNullOrWhiteSpace(textBoxClientAddress.Text)) + { + throw new Exception("Имеются незаполненные поля"); + } + + if(_clientId.HasValue) + { + _clientRepository.UpdateClient(CreateClient(_clientId.Value)); + } + else + { + _clientRepository.CreateClient(CreateClient(0)); + } + + Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void buttonCancel_Click(object sender, EventArgs e) => Close(); + + private Client CreateClient(int id) => Client.CreateEntity(id, + textBoxClientName.Text, textBoxClientAddress.Text, + Convert.ToInt32(numericUpDownClientAge.Value), + Convert.ToDouble(numericUpDownClientEarnings.Value)); + } +} diff --git a/FurnitureCompany/FurnitureCompany/Form1.resx b/FurnitureCompany/FurnitureCompany/Forms/FormClient.resx similarity index 92% rename from FurnitureCompany/FurnitureCompany/Form1.resx rename to FurnitureCompany/FurnitureCompany/Forms/FormClient.resx index 1af7de1..8b2ff64 100644 --- a/FurnitureCompany/FurnitureCompany/Form1.resx +++ b/FurnitureCompany/FurnitureCompany/Forms/FormClient.resx @@ -1,17 +1,17 @@  - diff --git a/FurnitureCompany/FurnitureCompany/FurnitureCompany.csproj b/FurnitureCompany/FurnitureCompany/FurnitureCompany.csproj index 663fdb8..accbdf0 100644 --- a/FurnitureCompany/FurnitureCompany/FurnitureCompany.csproj +++ b/FurnitureCompany/FurnitureCompany/FurnitureCompany.csproj @@ -8,4 +8,23 @@ enable + + + + + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Program.cs b/FurnitureCompany/FurnitureCompany/Program.cs index c460ded..8783116 100644 --- a/FurnitureCompany/FurnitureCompany/Program.cs +++ b/FurnitureCompany/FurnitureCompany/Program.cs @@ -1,3 +1,7 @@ +using FurnitureCompany.Repositories; +using FurnitureCompany.Repositories.Implementations; +using Unity; + namespace FurnitureCompany { internal static class Program @@ -11,7 +15,20 @@ namespace FurnitureCompany // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); - Application.Run(new Form1()); + Application.Run(CreateContainer().Resolve()); + } + + private static IUnityContainer CreateContainer() + { + var container = new UnityContainer(); + + container.RegisterType(); + container.RegisterType(); + container.RegisterType(); + container.RegisterType(); + container.RegisterType(); + + return container; } } } \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Properties/Resources.Designer.cs b/FurnitureCompany/FurnitureCompany/Properties/Resources.Designer.cs new file mode 100644 index 0000000..b4aa89b --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace FurnitureCompany.Properties { + using System; + + + /// + /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д. + /// + // Этот класс создан автоматически классом StronglyTypedResourceBuilder + // с помощью такого средства, как ResGen или Visual Studio. + // Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen + // с параметром /str или перестройте свой проект VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FurnitureCompany.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Перезаписывает свойство CurrentUICulture текущего потока для всех + /// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap _57435d62a4b6bbc87520597c0e8c4c3a { + get { + object obj = ResourceManager.GetObject("57435d62a4b6bbc87520597c0e8c4c3a", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/FurnitureCompany/FurnitureCompany/Properties/Resources.resx b/FurnitureCompany/FurnitureCompany/Properties/Resources.resx new file mode 100644 index 0000000..6515da1 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + ..\Resources\57435d62a4b6bbc87520597c0e8c4c3a.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Repositories/IClientRepository.cs b/FurnitureCompany/FurnitureCompany/Repositories/IClientRepository.cs new file mode 100644 index 0000000..4feefa0 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Repositories/IClientRepository.cs @@ -0,0 +1,21 @@ +using FurnitureCompany.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Repositories; + +public interface IClientRepository +{ + IEnumerable GetClients(); + + Client ReadClientById(int id); + + void CreateClient(Client client); + + void UpdateClient(Client client); + + void DeleteClient(int id); +} diff --git a/FurnitureCompany/FurnitureCompany/Repositories/IDeliveryRepository.cs b/FurnitureCompany/FurnitureCompany/Repositories/IDeliveryRepository.cs new file mode 100644 index 0000000..4d4aa4c --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Repositories/IDeliveryRepository.cs @@ -0,0 +1,18 @@ +using FurnitureCompany.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Repositories; + +public interface IDeliveryRepository +{ + IEnumerable ReadDeliverys(DateTime? dateFrom = null, DateTime? dateTo = null, int? productId = null, + int? workerId = null); + + void CreateDelivery(Delivery delivery); + + void DeleteDelivery(Delivery delivery); +} diff --git a/FurnitureCompany/FurnitureCompany/Repositories/IInvoiceRepository.cs b/FurnitureCompany/FurnitureCompany/Repositories/IInvoiceRepository.cs new file mode 100644 index 0000000..892c882 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Repositories/IInvoiceRepository.cs @@ -0,0 +1,16 @@ +using FurnitureCompany.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Repositories; + +public interface IInvoiceRepository +{ + IEnumerable ReadInvoices(DateTime? dateFrom = null, DateTime? dateTo = null, int? productId = null, + int? workerId = null, int? clientId = null); + + void CreateInvoice(Invoice invoice); +} diff --git a/FurnitureCompany/FurnitureCompany/Repositories/IProductRepository.cs b/FurnitureCompany/FurnitureCompany/Repositories/IProductRepository.cs new file mode 100644 index 0000000..492a68c --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Repositories/IProductRepository.cs @@ -0,0 +1,21 @@ +using FurnitureCompany.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Repositories; + +public interface IProductRepository +{ + IEnumerable ReadProducts(); + + Product ReadProductById(int id); + + void CreateProduct(Product product); + + void UpdateProduct(Product product); + + void DeleteProduct(int id); +} diff --git a/FurnitureCompany/FurnitureCompany/Repositories/IWorkerRepository.cs b/FurnitureCompany/FurnitureCompany/Repositories/IWorkerRepository.cs new file mode 100644 index 0000000..aa8f8ec --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Repositories/IWorkerRepository.cs @@ -0,0 +1,21 @@ +using FurnitureCompany.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Repositories; + +public interface IWorkerRepository +{ + IEnumerable ReadWorkers(); + + Worker ReadWorkerById(int id); + + void CreateWorker(Worker worker); + + void UpdateWorker(Worker worker); + + void DeleteWorker(int id); +} diff --git a/FurnitureCompany/FurnitureCompany/Repositories/Implementations/ClientRepository.cs b/FurnitureCompany/FurnitureCompany/Repositories/Implementations/ClientRepository.cs new file mode 100644 index 0000000..129c665 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Repositories/Implementations/ClientRepository.cs @@ -0,0 +1,33 @@ +using FurnitureCompany.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Repositories.Implementations; + +public class ClientRepository : IClientRepository +{ + public void CreateClient(Client client) + { + } + + public void DeleteClient(int id) + { + } + + public IEnumerable GetClients() + { + return[]; + } + + public Client ReadClientById(int id) + { + return Client.CreateEntity(0, string.Empty, string.Empty, 0, 0); + } + + public void UpdateClient(Client client) + { + } +} diff --git a/FurnitureCompany/FurnitureCompany/Repositories/Implementations/DeliveryRepository.cs b/FurnitureCompany/FurnitureCompany/Repositories/Implementations/DeliveryRepository.cs new file mode 100644 index 0000000..3a7581b --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Repositories/Implementations/DeliveryRepository.cs @@ -0,0 +1,24 @@ +using FurnitureCompany.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Repositories.Implementations; + +public class DeliveryRepository : IDeliveryRepository +{ + public void CreateDelivery(Delivery delivery) + { + } + + public void DeleteDelivery(Delivery delivery) + { + } + + public IEnumerable ReadDeliverys(DateTime? dateFrom = null, DateTime? dateTo = null, int? productId = null, int? workerId = null) + { + return []; + } +} diff --git a/FurnitureCompany/FurnitureCompany/Repositories/Implementations/InvoiceRepository.cs b/FurnitureCompany/FurnitureCompany/Repositories/Implementations/InvoiceRepository.cs new file mode 100644 index 0000000..f1e0372 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Repositories/Implementations/InvoiceRepository.cs @@ -0,0 +1,20 @@ +using FurnitureCompany.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Repositories.Implementations; + +public class InvoiceRepository : IInvoiceRepository +{ + public void CreateInvoice(Invoice invoice) + { + } + + public IEnumerable ReadInvoices(DateTime? dateFrom = null, DateTime? dateTo = null, int? productId = null, int? workerId = null, int? clientId = null) + { + return []; + } +} diff --git a/FurnitureCompany/FurnitureCompany/Repositories/Implementations/ProductRepository.cs b/FurnitureCompany/FurnitureCompany/Repositories/Implementations/ProductRepository.cs new file mode 100644 index 0000000..4322cc4 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Repositories/Implementations/ProductRepository.cs @@ -0,0 +1,34 @@ +using FurnitureCompany.Entities; +using FurnitureCompany.Entities.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Repositories.Implementations; + +public class ProductRepository : IProductRepository +{ + public void CreateProduct(Product product) + { + } + + public void DeleteProduct(int id) + { + } + + public Product ReadProductById(int id) + { + return Product.CreateEntity(0, Material.None, string.Empty, 0); + } + + public IEnumerable ReadProducts() + { + return []; + } + + public void UpdateProduct(Product product) + { + } +} diff --git a/FurnitureCompany/FurnitureCompany/Repositories/Implementations/WorkerRepository.cs b/FurnitureCompany/FurnitureCompany/Repositories/Implementations/WorkerRepository.cs new file mode 100644 index 0000000..93c4094 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Repositories/Implementations/WorkerRepository.cs @@ -0,0 +1,34 @@ +using FurnitureCompany.Entities; +using FurnitureCompany.Entities.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FurnitureCompany.Repositories.Implementations; + +public class WorkerRepository : IWorkerRepository +{ + public void CreateWorker(Worker worker) + { + } + + public void DeleteWorker(int id) + { + } + + public Worker ReadWorkerById(int id) + { + return Worker.CreateEntity(0, string.Empty, 0, WorkerPost.None); + } + + public IEnumerable ReadWorkers() + { + return []; + } + + public void UpdateWorker(Worker worker) + { + } +} diff --git a/FurnitureCompany/FurnitureCompany/Resources/57435d62a4b6bbc87520597c0e8c4c3a.jpg b/FurnitureCompany/FurnitureCompany/Resources/57435d62a4b6bbc87520597c0e8c4c3a.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1cbc179de400566b2e9bd6ab9041c95e9813d256 GIT binary patch literal 187226 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 j~<4Oyh$4Vp&c!rp`?S^!L1SMu#<+{}x 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 DlQeYN literal 0 HcmV?d00001 -- 2.25.1 From 40f96e01274245fdaf9bbad0ee55763b118a88eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B3=D0=BE=D1=80?= Date: Sun, 8 Dec 2024 15:12:51 +0400 Subject: [PATCH 2/2] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=20=E2=84=961=20(2)=20=D0=A4=D0=B8=D0=BD=D0=B0=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FurnitureCompany/Entities/Delivery.cs | 5 +- .../FurnitureCompany/Entities/Worker.cs | 10 +- .../FormFurnitureCompany.Designer.cs | 69 +++---- .../FurnitureCompany/FormFurnitureCompany.cs | 68 ++++++- .../Forms/FormClient.Designer.cs | 4 +- .../FurnitureCompany/Forms/FormClient.cs | 4 +- .../Forms/FormClients.Designer.cs | 127 +++++++++++++ .../FurnitureCompany/Forms/FormClients.cs | 113 ++++++++++++ .../FurnitureCompany/Forms/FormClients.resx | 120 ++++++++++++ .../Forms/FormDelivery.Designer.cs | 152 +++++++++++++++ .../FurnitureCompany/Forms/FormDelivery.cs | 77 ++++++++ .../FurnitureCompany/Forms/FormDelivery.resx | 126 +++++++++++++ .../Forms/FormDeliverys.Designer.cs | 112 ++++++++++++ .../FurnitureCompany/Forms/FormDeliverys.cs | 95 ++++++++++ .../FurnitureCompany/Forms/FormDeliverys.resx | 120 ++++++++++++ .../Forms/FormInvoice.Designer.cs | 173 ++++++++++++++++++ .../FurnitureCompany/Forms/FormInvoice.cs | 68 +++++++ .../FurnitureCompany/Forms/FormInvoice.resx | 120 ++++++++++++ .../Forms/FormInvoices.Designer.cs | 99 ++++++++++ .../FurnitureCompany/Forms/FormInvoices.cs | 59 ++++++ .../FurnitureCompany/Forms/FormInvoices.resx | 120 ++++++++++++ .../Forms/FormProduct.Designer.cs | 147 +++++++++++++++ .../FurnitureCompany/Forms/FormProduct.cs | 108 +++++++++++ .../FurnitureCompany/Forms/FormProduct.resx | 120 ++++++++++++ .../Forms/FormProducts.Designer.cs | 127 +++++++++++++ .../FurnitureCompany/Forms/FormProducts.cs | 113 ++++++++++++ .../FurnitureCompany/Forms/FormProducts.resx | 120 ++++++++++++ .../Forms/FormWorker.Designer.cs | 142 ++++++++++++++ .../FurnitureCompany/Forms/FormWorker.cs | 91 +++++++++ .../FurnitureCompany/Forms/FormWorker.resx | 120 ++++++++++++ .../Forms/FormWorkers.Designer.cs | 127 +++++++++++++ .../FurnitureCompany/Forms/FormWorkers.cs | 113 ++++++++++++ .../FurnitureCompany/Forms/FormWorkers.resx | 120 ++++++++++++ .../Properties/Resources.Designer.cs | 30 +++ .../Properties/Resources.resx | 9 + .../Repositories/IClientRepository.cs | 2 +- .../Repositories/IDeliveryRepository.cs | 2 +- .../Implementations/ClientRepository.cs | 2 +- .../Implementations/DeliveryRepository.cs | 2 +- .../Implementations/WorkerRepository.cs | 2 +- .../Resources/58d48b2c9540b15afe3fa643.png | Bin 0 -> 16226 bytes .../FurnitureCompany/Resources/minus.jpg | Bin 0 -> 56032 bytes .../Resources/png-clipart-plus-plus.png | Bin 0 -> 30255 bytes 43 files changed, 3287 insertions(+), 51 deletions(-) create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormClients.Designer.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormClients.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormClients.resx create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormDelivery.Designer.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormDelivery.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormDelivery.resx create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormDeliverys.Designer.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormDeliverys.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormDeliverys.resx create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormInvoice.Designer.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormInvoice.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormInvoice.resx create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormInvoices.Designer.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormInvoices.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormInvoices.resx create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormProduct.Designer.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormProduct.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormProduct.resx create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormProducts.Designer.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormProducts.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormProducts.resx create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormWorker.Designer.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormWorker.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormWorker.resx create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormWorkers.Designer.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormWorkers.cs create mode 100644 FurnitureCompany/FurnitureCompany/Forms/FormWorkers.resx create mode 100644 FurnitureCompany/FurnitureCompany/Resources/58d48b2c9540b15afe3fa643.png create mode 100644 FurnitureCompany/FurnitureCompany/Resources/minus.jpg create mode 100644 FurnitureCompany/FurnitureCompany/Resources/png-clipart-plus-plus.png diff --git a/FurnitureCompany/FurnitureCompany/Entities/Delivery.cs b/FurnitureCompany/FurnitureCompany/Entities/Delivery.cs index 00e3d6c..9608fb5 100644 --- a/FurnitureCompany/FurnitureCompany/Entities/Delivery.cs +++ b/FurnitureCompany/FurnitureCompany/Entities/Delivery.cs @@ -12,19 +12,16 @@ public class Delivery public int WorkerId { get; private set; } - public string Status { get; private set; } = string.Empty; - public DateTime DateDelivery { get; private set; } public IEnumerable DeliveryProducts { get; private set; } = []; - public static Delivery CreateOperation(int id, int workerId, string status, IEnumerable deliveryProducts) + public static Delivery CreateOperation(int id, int workerId, IEnumerable deliveryProducts) { return new Delivery { Id = id, WorkerId = workerId, - Status = status, DateDelivery = DateTime.Now, DeliveryProducts = deliveryProducts }; diff --git a/FurnitureCompany/FurnitureCompany/Entities/Worker.cs b/FurnitureCompany/FurnitureCompany/Entities/Worker.cs index 31eb241..f1ccc7c 100644 --- a/FurnitureCompany/FurnitureCompany/Entities/Worker.cs +++ b/FurnitureCompany/FurnitureCompany/Entities/Worker.cs @@ -11,19 +11,19 @@ public class Worker { public int Id { get; private set; } - public string Surname { get; private set; } = string.Empty; + public string FirstName { get; private set; } = string.Empty; - public int Expirience { get; private set; } + public string LastName { get; private set; } = string.Empty; public WorkerPost WorkerPost { get; private set; } - public static Worker CreateEntity(int id, string surname, int expirience, WorkerPost workerPost) + public static Worker CreateEntity(int id, string firstName, string lastName, WorkerPost workerPost) { return new Worker { Id = id, - Surname = surname ?? string.Empty, - Expirience = expirience, + FirstName = firstName ?? string.Empty, + LastName = lastName ?? string.Empty, WorkerPost = workerPost }; } diff --git a/FurnitureCompany/FurnitureCompany/FormFurnitureCompany.Designer.cs b/FurnitureCompany/FurnitureCompany/FormFurnitureCompany.Designer.cs index 6e1e6b6..226092d 100644 --- a/FurnitureCompany/FurnitureCompany/FormFurnitureCompany.Designer.cs +++ b/FurnitureCompany/FurnitureCompany/FormFurnitureCompany.Designer.cs @@ -30,12 +30,12 @@ { menuStrip1 = new MenuStrip(); справочникиToolStripMenuItem = new ToolStripMenuItem(); - работникиToolStripMenuItem = new ToolStripMenuItem(); - клиентыToolStripMenuItem = new ToolStripMenuItem(); - изделияToolStripMenuItem = new ToolStripMenuItem(); + WorkersToolStripMenuItem = new ToolStripMenuItem(); + ClientsToolStripMenuItem = new ToolStripMenuItem(); + ProductsToolStripMenuItem = new ToolStripMenuItem(); операцииToolStripMenuItem = new ToolStripMenuItem(); - оформлениеЗаказаToolStripMenuItem = new ToolStripMenuItem(); - доставкаToolStripMenuItem = new ToolStripMenuItem(); + InvoicesToolStripMenuItem = new ToolStripMenuItem(); + DeliveryToolStripMenuItem = new ToolStripMenuItem(); отчётыToolStripMenuItem = new ToolStripMenuItem(); menuStrip1.SuspendLayout(); SuspendLayout(); @@ -52,47 +52,52 @@ // // справочникиToolStripMenuItem // - справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { работникиToolStripMenuItem, клиентыToolStripMenuItem, изделияToolStripMenuItem }); + справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { WorkersToolStripMenuItem, ClientsToolStripMenuItem, ProductsToolStripMenuItem }); справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem"; справочникиToolStripMenuItem.Size = new Size(117, 24); справочникиToolStripMenuItem.Text = "Справочники"; // - // работникиToolStripMenuItem + // WorkersToolStripMenuItem // - работникиToolStripMenuItem.Name = "работникиToolStripMenuItem"; - работникиToolStripMenuItem.Size = new Size(166, 26); - работникиToolStripMenuItem.Text = "Работники"; + WorkersToolStripMenuItem.Name = "WorkersToolStripMenuItem"; + WorkersToolStripMenuItem.Size = new Size(166, 26); + WorkersToolStripMenuItem.Text = "Работники"; + WorkersToolStripMenuItem.Click += WorkersToolStripMenuItem_Click; // - // клиентыToolStripMenuItem + // ClientsToolStripMenuItem // - клиентыToolStripMenuItem.Name = "клиентыToolStripMenuItem"; - клиентыToolStripMenuItem.Size = new Size(166, 26); - клиентыToolStripMenuItem.Text = "Клиенты"; + ClientsToolStripMenuItem.Name = "ClientsToolStripMenuItem"; + ClientsToolStripMenuItem.Size = new Size(166, 26); + ClientsToolStripMenuItem.Text = "Клиенты"; + ClientsToolStripMenuItem.Click += ClientsToolStripMenuItem_Click; // - // изделияToolStripMenuItem + // ProductsToolStripMenuItem // - изделияToolStripMenuItem.Name = "изделияToolStripMenuItem"; - изделияToolStripMenuItem.Size = new Size(166, 26); - изделияToolStripMenuItem.Text = "Изделия"; + ProductsToolStripMenuItem.Name = "ProductsToolStripMenuItem"; + ProductsToolStripMenuItem.Size = new Size(166, 26); + ProductsToolStripMenuItem.Text = "Изделия"; + ProductsToolStripMenuItem.Click += ProductsToolStripMenuItem_Click; // // операцииToolStripMenuItem // - операцииToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { оформлениеЗаказаToolStripMenuItem, доставкаToolStripMenuItem }); + операцииToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { InvoicesToolStripMenuItem, DeliveryToolStripMenuItem }); операцииToolStripMenuItem.Name = "операцииToolStripMenuItem"; операцииToolStripMenuItem.Size = new Size(95, 24); операцииToolStripMenuItem.Text = "Операции"; // - // оформлениеЗаказаToolStripMenuItem + // InvoicesToolStripMenuItem // - оформлениеЗаказаToolStripMenuItem.Name = "оформлениеЗаказаToolStripMenuItem"; - оформлениеЗаказаToolStripMenuItem.Size = new Size(233, 26); - оформлениеЗаказаToolStripMenuItem.Text = "Оформление заказа"; + InvoicesToolStripMenuItem.Name = "InvoicesToolStripMenuItem"; + InvoicesToolStripMenuItem.Size = new Size(233, 26); + InvoicesToolStripMenuItem.Text = "Оформление заказа"; + InvoicesToolStripMenuItem.Click += InvoicesToolStripMenuItem_Click; // - // доставкаToolStripMenuItem + // DeliveryToolStripMenuItem // - доставкаToolStripMenuItem.Name = "доставкаToolStripMenuItem"; - доставкаToolStripMenuItem.Size = new Size(233, 26); - доставкаToolStripMenuItem.Text = "Доставка"; + DeliveryToolStripMenuItem.Name = "DeliveryToolStripMenuItem"; + DeliveryToolStripMenuItem.Size = new Size(233, 26); + DeliveryToolStripMenuItem.Text = "Доставка"; + DeliveryToolStripMenuItem.Click += DeliveryToolStripMenuItem_Click; // // отчётыToolStripMenuItem // @@ -122,12 +127,12 @@ private MenuStrip menuStrip1; private ToolStripMenuItem справочникиToolStripMenuItem; - private ToolStripMenuItem работникиToolStripMenuItem; - private ToolStripMenuItem клиентыToolStripMenuItem; - private ToolStripMenuItem изделияToolStripMenuItem; + private ToolStripMenuItem WorkersToolStripMenuItem; + private ToolStripMenuItem ClientsToolStripMenuItem; + private ToolStripMenuItem ProductsToolStripMenuItem; private ToolStripMenuItem операцииToolStripMenuItem; private ToolStripMenuItem отчётыToolStripMenuItem; - private ToolStripMenuItem оформлениеЗаказаToolStripMenuItem; - private ToolStripMenuItem доставкаToolStripMenuItem; + private ToolStripMenuItem InvoicesToolStripMenuItem; + private ToolStripMenuItem DeliveryToolStripMenuItem; } } diff --git a/FurnitureCompany/FurnitureCompany/FormFurnitureCompany.cs b/FurnitureCompany/FurnitureCompany/FormFurnitureCompany.cs index 8abe90b..4ae0ee5 100644 --- a/FurnitureCompany/FurnitureCompany/FormFurnitureCompany.cs +++ b/FurnitureCompany/FurnitureCompany/FormFurnitureCompany.cs @@ -1,11 +1,77 @@ +using FurnitureCompany.Forms; +using Unity; + namespace FurnitureCompany { public partial class FormFurnitureCompany : Form { - public FormFurnitureCompany() + private readonly IUnityContainer _container; + + public FormFurnitureCompany(IUnityContainer container) { InitializeComponent(); + _container = container ?? + throw new ArgumentNullException(nameof(container)); } + private void WorkersToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch(Exception ex) + { + MessageBox.Show(ex.Message, " ", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ClientsToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, " ", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ProductsToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, " ", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void InvoicesToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, " ", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void DeliveryToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, " ", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } } } diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormClient.Designer.cs b/FurnitureCompany/FurnitureCompany/Forms/FormClient.Designer.cs index 9696902..0287b57 100644 --- a/FurnitureCompany/FurnitureCompany/Forms/FormClient.Designer.cs +++ b/FurnitureCompany/FurnitureCompany/Forms/FormClient.Designer.cs @@ -111,7 +111,7 @@ buttonSave.TabIndex = 8; buttonSave.Text = "Сохранить"; buttonSave.UseVisualStyleBackColor = true; - buttonSave.Click += buttonSave_Click; + buttonSave.Click += ButtonSave_Click; // // buttonCancel // @@ -121,7 +121,7 @@ buttonCancel.TabIndex = 9; buttonCancel.Text = "Отмена"; buttonCancel.UseVisualStyleBackColor = true; - buttonCancel.Click += buttonCancel_Click; + buttonCancel.Click += ButtonCancel_Click; // // numericUpDownClientAge // diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormClient.cs b/FurnitureCompany/FurnitureCompany/Forms/FormClient.cs index b425517..2436a64 100644 --- a/FurnitureCompany/FurnitureCompany/Forms/FormClient.cs +++ b/FurnitureCompany/FurnitureCompany/Forms/FormClient.cs @@ -51,7 +51,7 @@ namespace FurnitureCompany.Forms throw new ArgumentNullException(nameof(clientRepository)); } - private void buttonSave_Click(object sender, EventArgs e) + private void ButtonSave_Click(object sender, EventArgs e) { try { @@ -78,7 +78,7 @@ namespace FurnitureCompany.Forms } } - private void buttonCancel_Click(object sender, EventArgs e) => Close(); + private void ButtonCancel_Click(object sender, EventArgs e) => Close(); private Client CreateClient(int id) => Client.CreateEntity(id, textBoxClientName.Text, textBoxClientAddress.Text, diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormClients.Designer.cs b/FurnitureCompany/FurnitureCompany/Forms/FormClients.Designer.cs new file mode 100644 index 0000000..7c16ce2 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormClients.Designer.cs @@ -0,0 +1,127 @@ +namespace FurnitureCompany.Forms +{ + partial class FormClients + { + ///

+ /// 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() + { + panel1 = new Panel(); + buttonDel = new Button(); + buttonUpd = new Button(); + buttonAdd = new Button(); + dataGridViewData = new DataGridView(); + panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridViewData).BeginInit(); + SuspendLayout(); + // + // panel1 + // + panel1.Controls.Add(buttonDel); + panel1.Controls.Add(buttonUpd); + panel1.Controls.Add(buttonAdd); + panel1.Dock = DockStyle.Right; + panel1.Location = new Point(729, 0); + panel1.Name = "panel1"; + panel1.Size = new Size(153, 403); + panel1.TabIndex = 0; + // + // buttonDel + // + buttonDel.BackgroundImage = Properties.Resources.minus; + buttonDel.BackgroundImageLayout = ImageLayout.Stretch; + buttonDel.Location = new Point(28, 234); + buttonDel.Name = "buttonDel"; + buttonDel.Size = new Size(94, 88); + buttonDel.TabIndex = 2; + buttonDel.UseVisualStyleBackColor = true; + buttonDel.Click += ButtonDel_Click; + // + // buttonUpd + // + buttonUpd.BackgroundImage = Properties.Resources._58d48b2c9540b15afe3fa643; + buttonUpd.BackgroundImageLayout = ImageLayout.Stretch; + buttonUpd.Location = new Point(28, 116); + buttonUpd.Name = "buttonUpd"; + buttonUpd.Size = new Size(94, 97); + buttonUpd.TabIndex = 1; + buttonUpd.UseVisualStyleBackColor = true; + buttonUpd.Click += ButtonUpd_Click; + // + // buttonAdd + // + buttonAdd.BackgroundImage = Properties.Resources.png_clipart_plus_plus; + buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; + buttonAdd.Location = new Point(28, 12); + buttonAdd.Name = "buttonAdd"; + buttonAdd.Size = new Size(94, 88); + buttonAdd.TabIndex = 0; + buttonAdd.UseVisualStyleBackColor = true; + buttonAdd.Click += ButtonAdd_Click; + // + // dataGridViewData + // + dataGridViewData.AllowUserToAddRows = false; + dataGridViewData.AllowUserToDeleteRows = false; + dataGridViewData.AllowUserToResizeColumns = false; + dataGridViewData.AllowUserToResizeRows = false; + dataGridViewData.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewData.Dock = DockStyle.Fill; + dataGridViewData.Location = new Point(0, 0); + dataGridViewData.MultiSelect = false; + dataGridViewData.Name = "dataGridViewData"; + dataGridViewData.ReadOnly = true; + dataGridViewData.RowHeadersVisible = false; + dataGridViewData.RowHeadersWidth = 51; + dataGridViewData.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridViewData.Size = new Size(729, 403); + dataGridViewData.TabIndex = 1; + // + // FormClients + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(882, 403); + Controls.Add(dataGridViewData); + Controls.Add(panel1); + Name = "FormClients"; + StartPosition = FormStartPosition.CenterParent; + Text = "Клиенты"; + Load += FormClients_Load; + panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dataGridViewData).EndInit(); + ResumeLayout(false); + } + + #endregion + + private Panel panel1; + private Button buttonDel; + private Button buttonUpd; + private Button buttonAdd; + private DataGridView dataGridViewData; + } +} \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormClients.cs b/FurnitureCompany/FurnitureCompany/Forms/FormClients.cs new file mode 100644 index 0000000..e724ed4 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormClients.cs @@ -0,0 +1,113 @@ +using FurnitureCompany.Repositories; +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; +using Unity; + +namespace FurnitureCompany.Forms +{ + public partial class FormClients : Form + { + private readonly IUnityContainer _container; + + private readonly IClientRepository _clientRepository; + + public FormClients(IUnityContainer container, IClientRepository clientRepository) + { + InitializeComponent(); + _container = container ?? + throw new ArgumentNullException(nameof(container)); + _clientRepository = clientRepository ?? + throw new ArgumentNullException(nameof(clientRepository)); + } + + private void FormClients_Load(object sender, EventArgs e) + { + try + { + LoadList(); + } + catch(Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при загрузке", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonAdd_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при добавлении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonUpd_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + + try + { + var form = _container.Resolve(); + form.Id = findId; + form.ShowDialog(); + LoadList(); + } + catch( Exception ex ) + { + MessageBox.Show(ex.Message, "Ошибка при изменении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonDel_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + + if(MessageBox.Show("Удалить запись?", "Удаление", MessageBoxButtons.YesNo) != DialogResult.Yes) + { + return; + } + + try + { + _clientRepository.DeleteClient(findId); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void LoadList() => dataGridViewData.DataSource = _clientRepository.ReadClients(); + + private bool TryGetIdentifierFromSelectedRow(out int id) + { + id = 0; + if (dataGridViewData.SelectedRows.Count < 1) + { + MessageBox.Show("Нет выбранной записи", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + + id = Convert.ToInt32(dataGridViewData.SelectedRows[0].Cells["id"].Value); + return true; + } + } +} diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormClients.resx b/FurnitureCompany/FurnitureCompany/Forms/FormClients.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormClients.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormDelivery.Designer.cs b/FurnitureCompany/FurnitureCompany/Forms/FormDelivery.Designer.cs new file mode 100644 index 0000000..10b7fd6 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormDelivery.Designer.cs @@ -0,0 +1,152 @@ +namespace FurnitureCompany.Forms +{ + partial class FormDelivery + { + /// + /// 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() + { + comboBoxWorker = new ComboBox(); + labelWorkerId = new Label(); + groupBoxProducts = new GroupBox(); + dataGridViewProducts = new DataGridView(); + ColumnProduct = new DataGridViewComboBoxColumn(); + ColumnCount = new DataGridViewTextBoxColumn(); + buttonSave = new Button(); + buttonCancel = new Button(); + groupBoxProducts.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridViewProducts).BeginInit(); + SuspendLayout(); + // + // comboBoxWorker + // + comboBoxWorker.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxWorker.FormattingEnabled = true; + comboBoxWorker.Location = new Point(150, 38); + comboBoxWorker.Name = "comboBoxWorker"; + comboBoxWorker.Size = new Size(189, 28); + comboBoxWorker.TabIndex = 6; + // + // labelWorkerId + // + labelWorkerId.AutoSize = true; + labelWorkerId.Location = new Point(54, 41); + labelWorkerId.Name = "labelWorkerId"; + labelWorkerId.Size = new Size(77, 20); + labelWorkerId.TabIndex = 5; + labelWorkerId.Text = "Работник:"; + // + // groupBoxProducts + // + groupBoxProducts.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + groupBoxProducts.Controls.Add(dataGridViewProducts); + groupBoxProducts.Location = new Point(27, 92); + groupBoxProducts.Name = "groupBoxProducts"; + groupBoxProducts.Size = new Size(344, 295); + groupBoxProducts.TabIndex = 7; + groupBoxProducts.TabStop = false; + groupBoxProducts.Text = "Изделия"; + // + // dataGridViewProducts + // + dataGridViewProducts.AllowUserToResizeColumns = false; + dataGridViewProducts.AllowUserToResizeRows = false; + dataGridViewProducts.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridViewProducts.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewProducts.Columns.AddRange(new DataGridViewColumn[] { ColumnProduct, ColumnCount }); + dataGridViewProducts.Dock = DockStyle.Fill; + dataGridViewProducts.Location = new Point(3, 23); + dataGridViewProducts.MultiSelect = false; + dataGridViewProducts.Name = "dataGridViewProducts"; + dataGridViewProducts.RowHeadersVisible = false; + dataGridViewProducts.RowHeadersWidth = 51; + dataGridViewProducts.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridViewProducts.Size = new Size(338, 269); + dataGridViewProducts.TabIndex = 0; + // + // ColumnProduct + // + ColumnProduct.HeaderText = "Изделие"; + ColumnProduct.MinimumWidth = 6; + ColumnProduct.Name = "ColumnProduct"; + // + // ColumnCount + // + ColumnCount.HeaderText = "Количество"; + ColumnCount.MinimumWidth = 6; + ColumnCount.Name = "ColumnCount"; + // + // buttonSave + // + buttonSave.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonSave.Location = new Point(69, 410); + buttonSave.Name = "buttonSave"; + buttonSave.Size = new Size(94, 29); + buttonSave.TabIndex = 8; + buttonSave.Text = "Сохранить"; + buttonSave.UseVisualStyleBackColor = true; + buttonSave.Click += ButtonSave_Click; + // + // buttonCancel + // + buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonCancel.Location = new Point(245, 410); + buttonCancel.Name = "buttonCancel"; + buttonCancel.Size = new Size(94, 29); + buttonCancel.TabIndex = 9; + buttonCancel.Text = "Отмена"; + buttonCancel.UseVisualStyleBackColor = true; + buttonCancel.Click += ButtonCancel_Click; + // + // FormDelivery + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(405, 466); + Controls.Add(buttonCancel); + Controls.Add(buttonSave); + Controls.Add(groupBoxProducts); + Controls.Add(comboBoxWorker); + Controls.Add(labelWorkerId); + Name = "FormDelivery"; + Text = "Доставка"; + groupBoxProducts.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dataGridViewProducts).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private ComboBox comboBoxWorker; + private Label labelWorkerId; + private GroupBox groupBoxProducts; + private DataGridView dataGridViewProducts; + private Button buttonSave; + private Button buttonCancel; + private DataGridViewComboBoxColumn ColumnProduct; + private DataGridViewTextBoxColumn ColumnCount; + } +} \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormDelivery.cs b/FurnitureCompany/FurnitureCompany/Forms/FormDelivery.cs new file mode 100644 index 0000000..114dfd2 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormDelivery.cs @@ -0,0 +1,77 @@ +using FurnitureCompany.Entities; +using FurnitureCompany.Repositories; +using FurnitureCompany.Repositories.Implementations; +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 FurnitureCompany.Forms +{ + public partial class FormDelivery : Form + { + private readonly IDeliveryRepository _deliveryRepository; + + public FormDelivery(IDeliveryRepository deliveryRepository, + IProductRepository productRepository, + IWorkerRepository workerRepository) + { + InitializeComponent(); + _deliveryRepository = deliveryRepository ?? + throw new ArgumentNullException(nameof(deliveryRepository)); + + comboBoxWorker.DataSource = workerRepository.ReadWorkers(); + comboBoxWorker.DisplayMember = "FirstName"; + comboBoxWorker.ValueMember = "Id"; + + ColumnProduct.DataSource = productRepository.ReadProducts(); + ColumnProduct.DisplayMember = "Name"; + ColumnProduct.ValueMember = "Id"; + } + + private void ButtonSave_Click(object sender, EventArgs e) + { + try + { + if (dataGridViewProducts.RowCount < 1 || + comboBoxWorker.SelectedIndex < 0) + { + throw new Exception("Имеются незаполненные поля"); + } + + _deliveryRepository.CreateDelivery(Delivery.CreateOperation(0, + (int)comboBoxWorker.SelectedValue!, CreateListDeliveryProductFromDataGrid())); + + Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonCancel_Click(object sender, EventArgs e) => Close(); + + private List CreateListDeliveryProductFromDataGrid() + { + var list = new List(); + foreach (DataGridViewRow row in dataGridViewProducts.Rows) + { + if (row.Cells["ColumnFeed"].Value == null || row.Cells["ColumnCount"].Value == null) + { + continue; + } + + list.Add(DeliveryProduct.CreateElement(0, Convert.ToInt32(row.Cells["ColumnFeed"].Value), + Convert.ToInt32(row.Cells["ColumnCount"].Value), 0)); + } + + return list; + } + } +} diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormDelivery.resx b/FurnitureCompany/FurnitureCompany/Forms/FormDelivery.resx new file mode 100644 index 0000000..f7cc2cb --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormDelivery.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + True + + + True + + \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormDeliverys.Designer.cs b/FurnitureCompany/FurnitureCompany/Forms/FormDeliverys.Designer.cs new file mode 100644 index 0000000..3d27f00 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormDeliverys.Designer.cs @@ -0,0 +1,112 @@ +namespace FurnitureCompany.Forms +{ + partial class FormDeliverys + { + /// + /// 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() + { + panel1 = new Panel(); + buttonDel = new Button(); + buttonAdd = new Button(); + dataGridView = new DataGridView(); + panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit(); + SuspendLayout(); + // + // panel1 + // + panel1.Controls.Add(buttonDel); + panel1.Controls.Add(buttonAdd); + panel1.Dock = DockStyle.Right; + panel1.Location = new Point(590, 0); + panel1.Name = "panel1"; + panel1.Size = new Size(210, 450); + panel1.TabIndex = 0; + // + // buttonDel + // + buttonDel.BackgroundImage = Properties.Resources.minus; + buttonDel.BackgroundImageLayout = ImageLayout.Stretch; + buttonDel.Location = new Point(64, 210); + buttonDel.Name = "buttonDel"; + buttonDel.Size = new Size(94, 86); + buttonDel.TabIndex = 1; + buttonDel.UseVisualStyleBackColor = true; + buttonDel.Click += ButtonDel_Click; + // + // buttonAdd + // + buttonAdd.BackgroundImage = Properties.Resources.png_clipart_plus_plus; + buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; + buttonAdd.Location = new Point(64, 54); + buttonAdd.Name = "buttonAdd"; + buttonAdd.Size = new Size(94, 86); + buttonAdd.TabIndex = 0; + buttonAdd.UseVisualStyleBackColor = true; + buttonAdd.Click += ButtonAdd_Click; + // + // dataGridView + // + dataGridView.AllowUserToAddRows = false; + dataGridView.AllowUserToDeleteRows = false; + dataGridView.AllowUserToResizeColumns = false; + dataGridView.AllowUserToResizeRows = false; + dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridView.Dock = DockStyle.Fill; + dataGridView.Location = new Point(0, 0); + dataGridView.MultiSelect = false; + dataGridView.Name = "dataGridView"; + dataGridView.ReadOnly = true; + dataGridView.RowHeadersVisible = false; + dataGridView.RowHeadersWidth = 51; + dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridView.Size = new Size(590, 450); + dataGridView.TabIndex = 1; + // + // FormDeliverys + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 450); + Controls.Add(dataGridView); + Controls.Add(panel1); + Name = "FormDeliverys"; + Text = "Доставка изделий"; + Load += FormDeliverys_Load; + panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit(); + ResumeLayout(false); + } + + #endregion + + private Panel panel1; + private Button buttonAdd; + private Button buttonDel; + private DataGridView dataGridView; + } +} \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormDeliverys.cs b/FurnitureCompany/FurnitureCompany/Forms/FormDeliverys.cs new file mode 100644 index 0000000..2a2c46c --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormDeliverys.cs @@ -0,0 +1,95 @@ +using FurnitureCompany.Repositories; +using FurnitureCompany.Repositories.Implementations; +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; +using System.Xml.Linq; +using Unity; + +namespace FurnitureCompany.Forms +{ + public partial class FormDeliverys : Form + { + private readonly IUnityContainer _container; + + private readonly IDeliveryRepository _deliveryRepository; + + public FormDeliverys(IUnityContainer container, IDeliveryRepository deliveryRepository) + { + InitializeComponent(); + _container = container ?? + throw new ArgumentNullException(nameof(container)); + _deliveryRepository = deliveryRepository ?? + throw new ArgumentNullException(nameof(deliveryRepository)); + } + + private void FormDeliverys_Load(object sender, EventArgs e) + { + try + { + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при загрузке", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonAdd_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при добавлении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonDel_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + + if (MessageBox.Show("Удалить запись?", "Удаление", MessageBoxButtons.YesNo) != DialogResult.Yes) + { + return; + } + + try + { + _deliveryRepository.DeleteDelivery(findId); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void LoadList() => dataGridView.DataSource = _deliveryRepository.ReadDeliverys(); + + private bool TryGetIdentifierFromSelectedRow(out int id) + { + id = 0; + if (dataGridView.SelectedRows.Count < 1) + { + MessageBox.Show("Нет выбранной записи", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + + id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["id"].Value); + return true; + } + } +} diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormDeliverys.resx b/FurnitureCompany/FurnitureCompany/Forms/FormDeliverys.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormDeliverys.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormInvoice.Designer.cs b/FurnitureCompany/FurnitureCompany/Forms/FormInvoice.Designer.cs new file mode 100644 index 0000000..9188ee8 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormInvoice.Designer.cs @@ -0,0 +1,173 @@ +namespace FurnitureCompany.Forms +{ + partial class FormInvoice + { + /// + /// 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() + { + labelProductId = new Label(); + labelWorkerId = new Label(); + labelClientId = new Label(); + comboBoxProduct = new ComboBox(); + comboBoxWorker = new ComboBox(); + comboBoxClient = new ComboBox(); + numericUpDownCountProduct = new NumericUpDown(); + labelCountProduct = new Label(); + buttonSave = new Button(); + buttonCancel = new Button(); + ((System.ComponentModel.ISupportInitialize)numericUpDownCountProduct).BeginInit(); + SuspendLayout(); + // + // labelProductId + // + labelProductId.AutoSize = true; + labelProductId.Location = new Point(47, 48); + labelProductId.Name = "labelProductId"; + labelProductId.Size = new Size(71, 20); + labelProductId.TabIndex = 0; + labelProductId.Text = "Изделие:"; + // + // labelWorkerId + // + labelWorkerId.AutoSize = true; + labelWorkerId.Location = new Point(47, 110); + labelWorkerId.Name = "labelWorkerId"; + labelWorkerId.Size = new Size(77, 20); + labelWorkerId.TabIndex = 1; + labelWorkerId.Text = "Работник:"; + // + // labelClientId + // + labelClientId.AutoSize = true; + labelClientId.Location = new Point(47, 174); + labelClientId.Name = "labelClientId"; + labelClientId.Size = new Size(61, 20); + labelClientId.TabIndex = 2; + labelClientId.Text = "Клиент:"; + // + // comboBoxProduct + // + comboBoxProduct.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxProduct.FormattingEnabled = true; + comboBoxProduct.Location = new Point(219, 45); + comboBoxProduct.Name = "comboBoxProduct"; + comboBoxProduct.Size = new Size(189, 28); + comboBoxProduct.TabIndex = 3; + // + // comboBoxWorker + // + comboBoxWorker.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxWorker.FormattingEnabled = true; + comboBoxWorker.Location = new Point(219, 107); + comboBoxWorker.Name = "comboBoxWorker"; + comboBoxWorker.Size = new Size(189, 28); + comboBoxWorker.TabIndex = 4; + // + // comboBoxClient + // + comboBoxClient.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxClient.FormattingEnabled = true; + comboBoxClient.Location = new Point(219, 171); + comboBoxClient.Name = "comboBoxClient"; + comboBoxClient.Size = new Size(189, 28); + comboBoxClient.TabIndex = 5; + // + // numericUpDownCountProduct + // + numericUpDownCountProduct.Location = new Point(219, 245); + numericUpDownCountProduct.Maximum = new decimal(new int[] { 1000, 0, 0, 0 }); + numericUpDownCountProduct.Minimum = new decimal(new int[] { 1, 0, 0, 0 }); + numericUpDownCountProduct.Name = "numericUpDownCountProduct"; + numericUpDownCountProduct.Size = new Size(189, 27); + numericUpDownCountProduct.TabIndex = 6; + numericUpDownCountProduct.Value = new decimal(new int[] { 1, 0, 0, 0 }); + // + // labelCountProduct + // + labelCountProduct.AutoSize = true; + labelCountProduct.Location = new Point(47, 247); + labelCountProduct.Name = "labelCountProduct"; + labelCountProduct.Size = new Size(155, 20); + labelCountProduct.TabIndex = 7; + labelCountProduct.Text = "Количество изделий:"; + // + // buttonSave + // + buttonSave.Location = new Point(94, 327); + buttonSave.Name = "buttonSave"; + buttonSave.Size = new Size(94, 29); + buttonSave.TabIndex = 8; + buttonSave.Text = "Сохранить"; + buttonSave.UseVisualStyleBackColor = true; + buttonSave.Click += ButtonSave_Click; + // + // buttonCancel + // + buttonCancel.Location = new Point(270, 327); + buttonCancel.Name = "buttonCancel"; + buttonCancel.Size = new Size(94, 29); + buttonCancel.TabIndex = 9; + buttonCancel.Text = "Отмена"; + buttonCancel.UseVisualStyleBackColor = true; + buttonCancel.Click += ButtonCancel_Click; + // + // FormInvoice + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(462, 396); + Controls.Add(buttonCancel); + Controls.Add(buttonSave); + Controls.Add(labelCountProduct); + Controls.Add(numericUpDownCountProduct); + Controls.Add(comboBoxClient); + Controls.Add(comboBoxWorker); + Controls.Add(comboBoxProduct); + Controls.Add(labelClientId); + Controls.Add(labelWorkerId); + Controls.Add(labelProductId); + Name = "FormInvoice"; + StartPosition = FormStartPosition.CenterParent; + Text = "Заказ"; + ((System.ComponentModel.ISupportInitialize)numericUpDownCountProduct).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private Label labelProductId; + private Label labelWorkerId; + private Label labelClientId; + private ComboBox comboBoxProduct; + private ComboBox comboBoxWorker; + private ComboBox comboBoxClient; + private NumericUpDown numericUpDownCountProduct; + private Label labelCountProduct; + private Button buttonSave; + private Button buttonCancel; + } +} \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormInvoice.cs b/FurnitureCompany/FurnitureCompany/Forms/FormInvoice.cs new file mode 100644 index 0000000..9e49f71 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormInvoice.cs @@ -0,0 +1,68 @@ +using FurnitureCompany.Entities.Enums; +using FurnitureCompany.Entities; +using FurnitureCompany.Repositories; +using FurnitureCompany.Repositories.Implementations; +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 FurnitureCompany.Forms +{ + public partial class FormInvoice : Form + { + private readonly IInvoiceRepository _invoiceRepository; + + public FormInvoice(IInvoiceRepository invoiceRepository, + IProductRepository productRepository, IWorkerRepository workerRepository, + IClientRepository clientRepository) + { + InitializeComponent(); + _invoiceRepository = invoiceRepository ?? + throw new ArgumentNullException(nameof(invoiceRepository)); + + comboBoxWorker.DataSource = workerRepository.ReadWorkers(); + comboBoxWorker.DisplayMember = "FirstName"; + comboBoxWorker.ValueMember = "Id"; + + comboBoxProduct.DataSource = productRepository.ReadProducts(); + comboBoxProduct.DisplayMember = "Name"; + comboBoxProduct.ValueMember = "Id"; + + comboBoxClient.DataSource = clientRepository.ReadClients(); + comboBoxClient.DisplayMember = "Name"; + comboBoxClient.ValueMember = "Id"; + } + + private void ButtonSave_Click(object sender, EventArgs e) + { + try + { + if (comboBoxProduct.SelectedIndex < 0 || + comboBoxWorker.SelectedIndex < 0 || + comboBoxClient.SelectedIndex < 0) + { + throw new Exception("Имеются незаполненные поля"); + } + + _invoiceRepository.CreateInvoice(Invoice.CreateOperation(0, + (int)comboBoxProduct.SelectedValue!, (int)comboBoxWorker.SelectedValue!, + (int)comboBoxClient.SelectedValue!, + Convert.ToInt32(numericUpDownCountProduct.Value))); + + Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonCancel_Click(object sender, EventArgs e) => Close(); + } +} diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormInvoice.resx b/FurnitureCompany/FurnitureCompany/Forms/FormInvoice.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormInvoice.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormInvoices.Designer.cs b/FurnitureCompany/FurnitureCompany/Forms/FormInvoices.Designer.cs new file mode 100644 index 0000000..07ea961 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormInvoices.Designer.cs @@ -0,0 +1,99 @@ +namespace FurnitureCompany.Forms +{ + partial class FormInvoices + { + /// + /// 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() + { + panel1 = new Panel(); + buttonAdd = new Button(); + dataGridViewData = new DataGridView(); + panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridViewData).BeginInit(); + SuspendLayout(); + // + // panel1 + // + panel1.Controls.Add(buttonAdd); + panel1.Dock = DockStyle.Right; + panel1.Location = new Point(637, 0); + panel1.Name = "panel1"; + panel1.Size = new Size(163, 450); + panel1.TabIndex = 0; + // + // buttonAdd + // + buttonAdd.BackgroundImage = Properties.Resources.png_clipart_plus_plus; + buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; + buttonAdd.Location = new Point(38, 48); + buttonAdd.Name = "buttonAdd"; + buttonAdd.Size = new Size(94, 91); + buttonAdd.TabIndex = 0; + buttonAdd.UseVisualStyleBackColor = true; + buttonAdd.Click += ButtonAdd_Click; + // + // dataGridViewData + // + dataGridViewData.AllowUserToAddRows = false; + dataGridViewData.AllowUserToDeleteRows = false; + dataGridViewData.AllowUserToResizeColumns = false; + dataGridViewData.AllowUserToResizeRows = false; + dataGridViewData.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewData.Dock = DockStyle.Fill; + dataGridViewData.Location = new Point(0, 0); + dataGridViewData.MultiSelect = false; + dataGridViewData.Name = "dataGridViewData"; + dataGridViewData.ReadOnly = true; + dataGridViewData.RowHeadersVisible = false; + dataGridViewData.RowHeadersWidth = 51; + dataGridViewData.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridViewData.Size = new Size(637, 450); + dataGridViewData.TabIndex = 1; + // + // FormInvoices + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 450); + Controls.Add(dataGridViewData); + Controls.Add(panel1); + Name = "FormInvoices"; + StartPosition = FormStartPosition.CenterParent; + Text = "Оформление заказов"; + Load += FormInvoices_Load; + panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dataGridViewData).EndInit(); + ResumeLayout(false); + } + + #endregion + + private Panel panel1; + private Button buttonAdd; + private DataGridView dataGridViewData; + } +} \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormInvoices.cs b/FurnitureCompany/FurnitureCompany/Forms/FormInvoices.cs new file mode 100644 index 0000000..cca3a96 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormInvoices.cs @@ -0,0 +1,59 @@ +using FurnitureCompany.Repositories; +using FurnitureCompany.Repositories.Implementations; +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; +using System.Xml.Linq; +using Unity; + +namespace FurnitureCompany.Forms +{ + public partial class FormInvoices : Form + { + private readonly IUnityContainer _container; + + private readonly IInvoiceRepository _invoiceRepository; + + public FormInvoices(IUnityContainer container, IInvoiceRepository invoiceRepository) + { + InitializeComponent(); + _container = container ?? + throw new ArgumentNullException(nameof(container)); + _invoiceRepository = invoiceRepository ?? + throw new ArgumentNullException(nameof(invoiceRepository)); + } + + private void FormInvoices_Load(object sender, EventArgs e) + { + try + { + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при загрузке", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonAdd_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при добавлении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void LoadList() => dataGridViewData.DataSource = _invoiceRepository.ReadInvoices(); + } +} diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormInvoices.resx b/FurnitureCompany/FurnitureCompany/Forms/FormInvoices.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormInvoices.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormProduct.Designer.cs b/FurnitureCompany/FurnitureCompany/Forms/FormProduct.Designer.cs new file mode 100644 index 0000000..0fb4b78 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormProduct.Designer.cs @@ -0,0 +1,147 @@ +namespace FurnitureCompany.Forms +{ + partial class FormProduct + { + /// + /// 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() + { + checkedListBoxMaterial = new CheckedListBox(); + numericUpDownPrice = new NumericUpDown(); + buttonSave = new Button(); + buttonCancel = new Button(); + textBoxProductName = new TextBox(); + labelProductMaterial = new Label(); + labelProductName = new Label(); + labelProductPrice = new Label(); + ((System.ComponentModel.ISupportInitialize)numericUpDownPrice).BeginInit(); + SuspendLayout(); + // + // checkedListBoxMaterial + // + checkedListBoxMaterial.FormattingEnabled = true; + checkedListBoxMaterial.Location = new Point(213, 53); + checkedListBoxMaterial.Name = "checkedListBoxMaterial"; + checkedListBoxMaterial.Size = new Size(224, 114); + checkedListBoxMaterial.TabIndex = 0; + // + // numericUpDownPrice + // + numericUpDownPrice.DecimalPlaces = 2; + numericUpDownPrice.Location = new Point(213, 245); + numericUpDownPrice.Maximum = new decimal(new int[] { 10000, 0, 0, 0 }); + numericUpDownPrice.Minimum = new decimal(new int[] { 1, 0, 0, 131072 }); + numericUpDownPrice.Name = "numericUpDownPrice"; + numericUpDownPrice.Size = new Size(224, 27); + numericUpDownPrice.TabIndex = 1; + numericUpDownPrice.Value = new decimal(new int[] { 1, 0, 0, 131072 }); + // + // buttonSave + // + buttonSave.Location = new Point(109, 318); + buttonSave.Name = "buttonSave"; + buttonSave.Size = new Size(94, 29); + buttonSave.TabIndex = 2; + buttonSave.Text = "Сохранить"; + buttonSave.UseVisualStyleBackColor = true; + buttonSave.Click += ButtonSave_Click; + // + // buttonCancel + // + buttonCancel.Location = new Point(269, 318); + buttonCancel.Name = "buttonCancel"; + buttonCancel.Size = new Size(94, 29); + buttonCancel.TabIndex = 3; + buttonCancel.Text = "Отмена"; + buttonCancel.UseVisualStyleBackColor = true; + buttonCancel.Click += ButtonCancel_Click; + // + // textBoxProductName + // + textBoxProductName.Location = new Point(213, 199); + textBoxProductName.Name = "textBoxProductName"; + textBoxProductName.Size = new Size(224, 27); + textBoxProductName.TabIndex = 4; + // + // labelProductMaterial + // + labelProductMaterial.AutoSize = true; + labelProductMaterial.Location = new Point(47, 53); + labelProductMaterial.Name = "labelProductMaterial"; + labelProductMaterial.Size = new Size(142, 20); + labelProductMaterial.TabIndex = 5; + labelProductMaterial.Text = "Материал изделия:"; + // + // labelProductName + // + labelProductName.AutoSize = true; + labelProductName.Location = new Point(47, 202); + labelProductName.Name = "labelProductName"; + labelProductName.Size = new Size(80, 20); + labelProductName.TabIndex = 6; + labelProductName.Text = "Название:"; + // + // labelProductPrice + // + labelProductPrice.AutoSize = true; + labelProductPrice.Location = new Point(47, 247); + labelProductPrice.Name = "labelProductPrice"; + labelProductPrice.Size = new Size(48, 20); + labelProductPrice.TabIndex = 7; + labelProductPrice.Text = "Цена:"; + // + // FormProduct + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(486, 391); + Controls.Add(labelProductPrice); + Controls.Add(labelProductName); + Controls.Add(labelProductMaterial); + Controls.Add(textBoxProductName); + Controls.Add(buttonCancel); + Controls.Add(buttonSave); + Controls.Add(numericUpDownPrice); + Controls.Add(checkedListBoxMaterial); + Name = "FormProduct"; + StartPosition = FormStartPosition.CenterParent; + Text = "Изделие"; + ((System.ComponentModel.ISupportInitialize)numericUpDownPrice).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private CheckedListBox checkedListBoxMaterial; + private NumericUpDown numericUpDownPrice; + private Button buttonSave; + private Button buttonCancel; + private TextBox textBoxProductName; + private Label labelProductMaterial; + private Label labelProductName; + private Label labelProductPrice; + } +} \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormProduct.cs b/FurnitureCompany/FurnitureCompany/Forms/FormProduct.cs new file mode 100644 index 0000000..2d5366b --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormProduct.cs @@ -0,0 +1,108 @@ +using FurnitureCompany.Entities.Enums; +using FurnitureCompany.Entities; +using FurnitureCompany.Repositories; +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; +using FurnitureCompany.Repositories.Implementations; + +namespace FurnitureCompany.Forms +{ + public partial class FormProduct : Form + { + private readonly IProductRepository _productRepository; + + private int? _productId; + + public int Id + { + set + { + try + { + var product = _productRepository.ReadProductById(value); + if (product == null) + { + throw new InvalidDataException(nameof(product)); + } + + foreach (Material elem in Enum.GetValues(typeof(Material))) + { + if ((elem & product.Material) != 0) + { + checkedListBoxMaterial.SetItemChecked(checkedListBoxMaterial.Items.IndexOf(elem), true); + } + } + + textBoxProductName.Text = product.Name; + numericUpDownPrice.Value = (decimal)product.Price; + _productId = value; + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + } + } + + public FormProduct(IProductRepository productRepository) + { + InitializeComponent(); + _productRepository = productRepository ?? + throw new ArgumentNullException(nameof(productRepository)); + + foreach (var elem in Enum.GetValues(typeof(Material))) + { + checkedListBoxMaterial.Items.Add(elem); + } + } + + private void ButtonSave_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrWhiteSpace(textBoxProductName.Text) || + checkedListBoxMaterial.CheckedItems.Count == 0) + { + throw new Exception("Имеются незаполненные поля"); + } + + if (_productId.HasValue) + { + _productRepository.UpdateProduct(CreateProduct(_productId.Value)); + } + else + { + _productRepository.CreateProduct(CreateProduct(0)); + } + + Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonCancel_Click(object sender, EventArgs e) => Close(); + + private Product CreateProduct(int id) + { + Material material = Material.None; + foreach (var elem in checkedListBoxMaterial.CheckedItems) + { + material |= (Material)elem; + } + + return Product.CreateEntity(id, material, textBoxProductName.Text, + Convert.ToDouble(numericUpDownPrice.Value)); + } + } +} diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormProduct.resx b/FurnitureCompany/FurnitureCompany/Forms/FormProduct.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormProduct.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormProducts.Designer.cs b/FurnitureCompany/FurnitureCompany/Forms/FormProducts.Designer.cs new file mode 100644 index 0000000..512ec54 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormProducts.Designer.cs @@ -0,0 +1,127 @@ +namespace FurnitureCompany.Forms +{ + partial class FormProducts + { + /// + /// 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() + { + panel1 = new Panel(); + buttonDel = new Button(); + buttonUpd = new Button(); + buttonAdd = new Button(); + dataGridViewData = new DataGridView(); + panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridViewData).BeginInit(); + SuspendLayout(); + // + // panel1 + // + panel1.Controls.Add(buttonDel); + panel1.Controls.Add(buttonUpd); + panel1.Controls.Add(buttonAdd); + panel1.Dock = DockStyle.Right; + panel1.Location = new Point(695, 0); + panel1.Name = "panel1"; + panel1.Size = new Size(187, 403); + panel1.TabIndex = 0; + // + // buttonDel + // + buttonDel.BackgroundImage = Properties.Resources.minus; + buttonDel.BackgroundImageLayout = ImageLayout.Stretch; + buttonDel.Location = new Point(48, 256); + buttonDel.Name = "buttonDel"; + buttonDel.Size = new Size(94, 90); + buttonDel.TabIndex = 2; + buttonDel.UseVisualStyleBackColor = true; + buttonDel.Click += ButtonDel_Click; + // + // buttonUpd + // + buttonUpd.BackgroundImage = Properties.Resources._58d48b2c9540b15afe3fa643; + buttonUpd.BackgroundImageLayout = ImageLayout.Stretch; + buttonUpd.Location = new Point(48, 144); + buttonUpd.Name = "buttonUpd"; + buttonUpd.Size = new Size(94, 90); + buttonUpd.TabIndex = 1; + buttonUpd.UseVisualStyleBackColor = true; + buttonUpd.Click += ButtonUpd_Click; + // + // buttonAdd + // + buttonAdd.BackgroundImage = Properties.Resources.png_clipart_plus_plus; + buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; + buttonAdd.Location = new Point(48, 29); + buttonAdd.Name = "buttonAdd"; + buttonAdd.Size = new Size(94, 90); + buttonAdd.TabIndex = 0; + buttonAdd.UseVisualStyleBackColor = true; + buttonAdd.Click += ButtonAdd_Click; + // + // dataGridViewData + // + dataGridViewData.AllowUserToAddRows = false; + dataGridViewData.AllowUserToDeleteRows = false; + dataGridViewData.AllowUserToResizeColumns = false; + dataGridViewData.AllowUserToResizeRows = false; + dataGridViewData.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewData.Dock = DockStyle.Fill; + dataGridViewData.Location = new Point(0, 0); + dataGridViewData.MultiSelect = false; + dataGridViewData.Name = "dataGridViewData"; + dataGridViewData.ReadOnly = true; + dataGridViewData.RowHeadersVisible = false; + dataGridViewData.RowHeadersWidth = 51; + dataGridViewData.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridViewData.Size = new Size(695, 403); + dataGridViewData.TabIndex = 1; + // + // FormProducts + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(882, 403); + Controls.Add(dataGridViewData); + Controls.Add(panel1); + Name = "FormProducts"; + StartPosition = FormStartPosition.CenterParent; + Text = "Изделия"; + Load += FormProducts_Load; + panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dataGridViewData).EndInit(); + ResumeLayout(false); + } + + #endregion + + private Panel panel1; + private Button buttonDel; + private Button buttonUpd; + private Button buttonAdd; + private DataGridView dataGridViewData; + } +} \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormProducts.cs b/FurnitureCompany/FurnitureCompany/Forms/FormProducts.cs new file mode 100644 index 0000000..e2d99ae --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormProducts.cs @@ -0,0 +1,113 @@ +using FurnitureCompany.Repositories; +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; +using Unity; + +namespace FurnitureCompany.Forms +{ + public partial class FormProducts : Form + { + private readonly IUnityContainer _container; + + private readonly IProductRepository _productRepository; + + public FormProducts(IUnityContainer container, IProductRepository productRepository) + { + InitializeComponent(); + _container = container ?? + throw new ArgumentNullException(nameof(container)); + _productRepository = productRepository ?? + throw new ArgumentNullException(nameof(productRepository)); + } + + private void FormProducts_Load(object sender, EventArgs e) + { + try + { + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при загрузке", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonAdd_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при добавлении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonUpd_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + + try + { + var form = _container.Resolve(); + form.Id = findId; + form.ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при изменении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonDel_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + + if (MessageBox.Show("Удалить запись?", "Удаление", MessageBoxButtons.YesNo) != DialogResult.Yes) + { + return; + } + + try + { + _productRepository.DeleteProduct(findId); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void LoadList() => dataGridViewData.DataSource = _productRepository.ReadProducts(); + + private bool TryGetIdentifierFromSelectedRow(out int id) + { + id = 0; + if (dataGridViewData.SelectedRows.Count < 1) + { + MessageBox.Show("Нет выбранной записи", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + + id = Convert.ToInt32(dataGridViewData.SelectedRows[0].Cells["id"].Value); + return true; + } + } +} diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormProducts.resx b/FurnitureCompany/FurnitureCompany/Forms/FormProducts.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormProducts.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormWorker.Designer.cs b/FurnitureCompany/FurnitureCompany/Forms/FormWorker.Designer.cs new file mode 100644 index 0000000..b9b9835 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormWorker.Designer.cs @@ -0,0 +1,142 @@ +namespace FurnitureCompany.Forms +{ + partial class FormWorker + { + /// + /// 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() + { + comboBoxWorkerPost = new ComboBox(); + buttonSave = new Button(); + buttonCancel = new Button(); + labelWorkerFirstName = new Label(); + labelWorkerLastName = new Label(); + labelWorkerPost = new Label(); + textBoxWorkerLastName = new TextBox(); + textBoxWorkerFirstName = new TextBox(); + SuspendLayout(); + // + // comboBoxWorkerPost + // + comboBoxWorkerPost.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxWorkerPost.FormattingEnabled = true; + comboBoxWorkerPost.Location = new Point(146, 173); + comboBoxWorkerPost.Name = "comboBoxWorkerPost"; + comboBoxWorkerPost.Size = new Size(179, 28); + comboBoxWorkerPost.TabIndex = 0; + // + // buttonSave + // + buttonSave.Location = new Point(60, 261); + buttonSave.Name = "buttonSave"; + buttonSave.Size = new Size(94, 29); + buttonSave.TabIndex = 1; + buttonSave.Text = "Сохранить"; + buttonSave.UseVisualStyleBackColor = true; + buttonSave.Click += ButtonSave_Click; + // + // buttonCancel + // + buttonCancel.Location = new Point(194, 261); + buttonCancel.Name = "buttonCancel"; + buttonCancel.Size = new Size(94, 29); + buttonCancel.TabIndex = 2; + buttonCancel.Text = "Отмена"; + buttonCancel.UseVisualStyleBackColor = true; + buttonCancel.Click += ButtonCancel_Click; + // + // labelWorkerFirstName + // + labelWorkerFirstName.AutoSize = true; + labelWorkerFirstName.Location = new Point(37, 53); + labelWorkerFirstName.Name = "labelWorkerFirstName"; + labelWorkerFirstName.Size = new Size(42, 20); + labelWorkerFirstName.TabIndex = 3; + labelWorkerFirstName.Text = "Имя:"; + // + // labelWorkerLastName + // + labelWorkerLastName.AutoSize = true; + labelWorkerLastName.Location = new Point(37, 113); + labelWorkerLastName.Name = "labelWorkerLastName"; + labelWorkerLastName.Size = new Size(76, 20); + labelWorkerLastName.TabIndex = 4; + labelWorkerLastName.Text = "Фамилия:"; + // + // labelWorkerPost + // + labelWorkerPost.AutoSize = true; + labelWorkerPost.Location = new Point(37, 176); + labelWorkerPost.Name = "labelWorkerPost"; + labelWorkerPost.Size = new Size(89, 20); + labelWorkerPost.TabIndex = 5; + labelWorkerPost.Text = "Должность:"; + // + // textBoxWorkerLastName + // + textBoxWorkerLastName.Location = new Point(146, 110); + textBoxWorkerLastName.Name = "textBoxWorkerLastName"; + textBoxWorkerLastName.Size = new Size(179, 27); + textBoxWorkerLastName.TabIndex = 6; + // + // textBoxWorkerFirstName + // + textBoxWorkerFirstName.Location = new Point(146, 50); + textBoxWorkerFirstName.Name = "textBoxWorkerFirstName"; + textBoxWorkerFirstName.Size = new Size(179, 27); + textBoxWorkerFirstName.TabIndex = 7; + // + // FormWorker + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(369, 340); + Controls.Add(textBoxWorkerFirstName); + Controls.Add(textBoxWorkerLastName); + Controls.Add(labelWorkerPost); + Controls.Add(labelWorkerLastName); + Controls.Add(labelWorkerFirstName); + Controls.Add(buttonCancel); + Controls.Add(buttonSave); + Controls.Add(comboBoxWorkerPost); + Name = "FormWorker"; + StartPosition = FormStartPosition.CenterParent; + Text = "Работник"; + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private ComboBox comboBoxWorkerPost; + private Button buttonSave; + private Button buttonCancel; + private Label labelWorkerFirstName; + private Label labelWorkerLastName; + private Label labelWorkerPost; + private TextBox textBoxWorkerLastName; + private TextBox textBoxWorkerFirstName; + } +} \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormWorker.cs b/FurnitureCompany/FurnitureCompany/Forms/FormWorker.cs new file mode 100644 index 0000000..86611dd --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormWorker.cs @@ -0,0 +1,91 @@ +using FurnitureCompany.Entities; +using FurnitureCompany.Entities.Enums; +using FurnitureCompany.Repositories; +using FurnitureCompany.Repositories.Implementations; +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 FurnitureCompany.Forms +{ + public partial class FormWorker : Form + { + private readonly IWorkerRepository _workerRepository; + + private int? _workerId; + + public int Id + { + set + { + try + { + var worker = _workerRepository.ReadWorkerById(value); + if (worker == null) + { + throw new InvalidDataException(nameof(worker)); + } + + textBoxWorkerFirstName.Text = worker.FirstName; + textBoxWorkerLastName.Text = worker.LastName; + comboBoxWorkerPost.SelectedItem = worker.WorkerPost; + _workerId = value; + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + } + } + + public FormWorker(IWorkerRepository workerRepository) + { + InitializeComponent(); + _workerRepository = workerRepository ?? + throw new ArgumentNullException(nameof(workerRepository)); + + comboBoxWorkerPost.DataSource = Enum.GetValues(typeof(WorkerPost)); + } + + private void ButtonSave_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrWhiteSpace(textBoxWorkerFirstName.Text) || + string.IsNullOrWhiteSpace(textBoxWorkerLastName.Text) || + comboBoxWorkerPost.SelectedIndex < 1) + { + throw new Exception("Имеются незаполненные поля"); + } + + if (_workerId.HasValue) + { + _workerRepository.UpdateWorker(CreateWorker(_workerId.Value)); + } + else + { + _workerRepository.CreateWorker(CreateWorker(0)); + } + + Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonCancel_Click(object sender, EventArgs e) => Close(); + + private Worker CreateWorker(int id) => + Worker.CreateEntity(id, textBoxWorkerFirstName.Text, textBoxWorkerLastName.Text, + (WorkerPost)comboBoxWorkerPost.SelectedItem!); + } +} diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormWorker.resx b/FurnitureCompany/FurnitureCompany/Forms/FormWorker.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormWorker.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormWorkers.Designer.cs b/FurnitureCompany/FurnitureCompany/Forms/FormWorkers.Designer.cs new file mode 100644 index 0000000..474a3fa --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormWorkers.Designer.cs @@ -0,0 +1,127 @@ +namespace FurnitureCompany.Forms +{ + partial class FormWorkers + { + /// + /// 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() + { + panel1 = new Panel(); + buttonDel = new Button(); + buttonUpd = new Button(); + buttonAdd = new Button(); + dataGridViewData = new DataGridView(); + panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridViewData).BeginInit(); + SuspendLayout(); + // + // panel1 + // + panel1.Controls.Add(buttonDel); + panel1.Controls.Add(buttonUpd); + panel1.Controls.Add(buttonAdd); + panel1.Dock = DockStyle.Right; + panel1.Location = new Point(699, 0); + panel1.Name = "panel1"; + panel1.Size = new Size(183, 403); + panel1.TabIndex = 0; + // + // buttonDel + // + buttonDel.BackgroundImage = Properties.Resources.minus; + buttonDel.BackgroundImageLayout = ImageLayout.Stretch; + buttonDel.Location = new Point(40, 235); + buttonDel.Name = "buttonDel"; + buttonDel.Size = new Size(96, 84); + buttonDel.TabIndex = 2; + buttonDel.UseVisualStyleBackColor = true; + buttonDel.Click += ButtonDel_Click; + // + // buttonUpd + // + buttonUpd.BackgroundImage = Properties.Resources._58d48b2c9540b15afe3fa643; + buttonUpd.BackgroundImageLayout = ImageLayout.Stretch; + buttonUpd.Location = new Point(40, 135); + buttonUpd.Name = "buttonUpd"; + buttonUpd.Size = new Size(96, 84); + buttonUpd.TabIndex = 1; + buttonUpd.UseVisualStyleBackColor = true; + buttonUpd.Click += ButtonUpd_Click; + // + // buttonAdd + // + buttonAdd.BackgroundImage = Properties.Resources.png_clipart_plus_plus; + buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; + buttonAdd.Location = new Point(40, 34); + buttonAdd.Name = "buttonAdd"; + buttonAdd.Size = new Size(96, 84); + buttonAdd.TabIndex = 0; + buttonAdd.UseVisualStyleBackColor = true; + buttonAdd.Click += ButtonAdd_Click; + // + // dataGridViewData + // + dataGridViewData.AllowUserToAddRows = false; + dataGridViewData.AllowUserToDeleteRows = false; + dataGridViewData.AllowUserToResizeColumns = false; + dataGridViewData.AllowUserToResizeRows = false; + dataGridViewData.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewData.Dock = DockStyle.Fill; + dataGridViewData.Location = new Point(0, 0); + dataGridViewData.MultiSelect = false; + dataGridViewData.Name = "dataGridViewData"; + dataGridViewData.ReadOnly = true; + dataGridViewData.RowHeadersVisible = false; + dataGridViewData.RowHeadersWidth = 51; + dataGridViewData.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridViewData.Size = new Size(699, 403); + dataGridViewData.TabIndex = 1; + // + // FormWorkers + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(882, 403); + Controls.Add(dataGridViewData); + Controls.Add(panel1); + Name = "FormWorkers"; + StartPosition = FormStartPosition.CenterParent; + Text = "Работники"; + Load += FormWorkers_Load; + panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dataGridViewData).EndInit(); + ResumeLayout(false); + } + + #endregion + + private Panel panel1; + private Button buttonDel; + private Button buttonUpd; + private Button buttonAdd; + private DataGridView dataGridViewData; + } +} \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormWorkers.cs b/FurnitureCompany/FurnitureCompany/Forms/FormWorkers.cs new file mode 100644 index 0000000..03de2cf --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormWorkers.cs @@ -0,0 +1,113 @@ +using FurnitureCompany.Repositories; +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; +using Unity; + +namespace FurnitureCompany.Forms +{ + public partial class FormWorkers : Form + { + private readonly IUnityContainer _container; + + private readonly IWorkerRepository _workerRepository; + + public FormWorkers(IUnityContainer container, IWorkerRepository workerRepository) + { + InitializeComponent(); + _container = container ?? + throw new ArgumentNullException(nameof(container)); + _workerRepository = workerRepository ?? + throw new ArgumentNullException(nameof(workerRepository)); + } + + private void FormWorkers_Load(object sender, EventArgs e) + { + try + { + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при загрузке", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonAdd_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при добавлении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonUpd_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + + try + { + var form = _container.Resolve(); + form.Id = findId; + form.ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при изменении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonDel_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + + if (MessageBox.Show("Удалить запись?", "Удаление", MessageBoxButtons.YesNo) != DialogResult.Yes) + { + return; + } + + try + { + _workerRepository.DeleteWorker(findId); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void LoadList() => dataGridViewData.DataSource = _workerRepository.ReadWorkers(); + + private bool TryGetIdentifierFromSelectedRow(out int id) + { + id = 0; + if (dataGridViewData.SelectedRows.Count < 1) + { + MessageBox.Show("Нет выбранной записи", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + + id = Convert.ToInt32(dataGridViewData.SelectedRows[0].Cells["id"].Value); + return true; + } + } +} diff --git a/FurnitureCompany/FurnitureCompany/Forms/FormWorkers.resx b/FurnitureCompany/FurnitureCompany/Forms/FormWorkers.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/FurnitureCompany/FurnitureCompany/Forms/FormWorkers.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Properties/Resources.Designer.cs b/FurnitureCompany/FurnitureCompany/Properties/Resources.Designer.cs index b4aa89b..97231b7 100644 --- a/FurnitureCompany/FurnitureCompany/Properties/Resources.Designer.cs +++ b/FurnitureCompany/FurnitureCompany/Properties/Resources.Designer.cs @@ -69,5 +69,35 @@ namespace FurnitureCompany.Properties { return ((System.Drawing.Bitmap)(obj)); } } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap _58d48b2c9540b15afe3fa643 { + get { + object obj = ResourceManager.GetObject("58d48b2c9540b15afe3fa643", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap minus { + get { + object obj = ResourceManager.GetObject("minus", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap png_clipart_plus_plus { + get { + object obj = ResourceManager.GetObject("png-clipart-plus-plus", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } } } diff --git a/FurnitureCompany/FurnitureCompany/Properties/Resources.resx b/FurnitureCompany/FurnitureCompany/Properties/Resources.resx index 6515da1..fd39b97 100644 --- a/FurnitureCompany/FurnitureCompany/Properties/Resources.resx +++ b/FurnitureCompany/FurnitureCompany/Properties/Resources.resx @@ -118,7 +118,16 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\minus.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\57435d62a4b6bbc87520597c0e8c4c3a.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\png-clipart-plus-plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\58d48b2c9540b15afe3fa643.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a +
\ No newline at end of file diff --git a/FurnitureCompany/FurnitureCompany/Repositories/IClientRepository.cs b/FurnitureCompany/FurnitureCompany/Repositories/IClientRepository.cs index 4feefa0..e680543 100644 --- a/FurnitureCompany/FurnitureCompany/Repositories/IClientRepository.cs +++ b/FurnitureCompany/FurnitureCompany/Repositories/IClientRepository.cs @@ -9,7 +9,7 @@ namespace FurnitureCompany.Repositories; public interface IClientRepository { - IEnumerable GetClients(); + IEnumerable ReadClients(); Client ReadClientById(int id); diff --git a/FurnitureCompany/FurnitureCompany/Repositories/IDeliveryRepository.cs b/FurnitureCompany/FurnitureCompany/Repositories/IDeliveryRepository.cs index 4d4aa4c..ecd29f3 100644 --- a/FurnitureCompany/FurnitureCompany/Repositories/IDeliveryRepository.cs +++ b/FurnitureCompany/FurnitureCompany/Repositories/IDeliveryRepository.cs @@ -14,5 +14,5 @@ public interface IDeliveryRepository void CreateDelivery(Delivery delivery); - void DeleteDelivery(Delivery delivery); + void DeleteDelivery(int id); } diff --git a/FurnitureCompany/FurnitureCompany/Repositories/Implementations/ClientRepository.cs b/FurnitureCompany/FurnitureCompany/Repositories/Implementations/ClientRepository.cs index 129c665..41f436b 100644 --- a/FurnitureCompany/FurnitureCompany/Repositories/Implementations/ClientRepository.cs +++ b/FurnitureCompany/FurnitureCompany/Repositories/Implementations/ClientRepository.cs @@ -17,7 +17,7 @@ public class ClientRepository : IClientRepository { } - public IEnumerable GetClients() + public IEnumerable ReadClients() { return[]; } diff --git a/FurnitureCompany/FurnitureCompany/Repositories/Implementations/DeliveryRepository.cs b/FurnitureCompany/FurnitureCompany/Repositories/Implementations/DeliveryRepository.cs index 3a7581b..11415e0 100644 --- a/FurnitureCompany/FurnitureCompany/Repositories/Implementations/DeliveryRepository.cs +++ b/FurnitureCompany/FurnitureCompany/Repositories/Implementations/DeliveryRepository.cs @@ -13,7 +13,7 @@ public class DeliveryRepository : IDeliveryRepository { } - public void DeleteDelivery(Delivery delivery) + public void DeleteDelivery(int id) { } diff --git a/FurnitureCompany/FurnitureCompany/Repositories/Implementations/WorkerRepository.cs b/FurnitureCompany/FurnitureCompany/Repositories/Implementations/WorkerRepository.cs index 93c4094..19c9e98 100644 --- a/FurnitureCompany/FurnitureCompany/Repositories/Implementations/WorkerRepository.cs +++ b/FurnitureCompany/FurnitureCompany/Repositories/Implementations/WorkerRepository.cs @@ -20,7 +20,7 @@ public class WorkerRepository : IWorkerRepository public Worker ReadWorkerById(int id) { - return Worker.CreateEntity(0, string.Empty, 0, WorkerPost.None); + return Worker.CreateEntity(0, string.Empty, string.Empty, WorkerPost.None); } public IEnumerable ReadWorkers() diff --git a/FurnitureCompany/FurnitureCompany/Resources/58d48b2c9540b15afe3fa643.png b/FurnitureCompany/FurnitureCompany/Resources/58d48b2c9540b15afe3fa643.png new file mode 100644 index 0000000000000000000000000000000000000000..5028c7f2a6b3d3ec28e907380de9312125052316 GIT binary patch literal 16226 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 Q_u@fPV)CM;!Uh5V4=;}98~^|S literal 0 HcmV?d00001 diff --git a/FurnitureCompany/FurnitureCompany/Resources/minus.jpg b/FurnitureCompany/FurnitureCompany/Resources/minus.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7d810e0a8362a6259f005013fd2a4ca425da7993 GIT binary patch literal 56032 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 IEdDk8cYI4y0ssI2 literal 0 HcmV?d00001 diff --git a/FurnitureCompany/FurnitureCompany/Resources/png-clipart-plus-plus.png b/FurnitureCompany/FurnitureCompany/Resources/png-clipart-plus-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..b64bb1fb7c709e76a4498201ca5a38b72b69613d GIT binary patch literal 30255 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