diff --git a/FlowerShop/FlowerShop/FormFlowers.Designer.cs b/FlowerShop/FlowerShop/FormFlowers.Designer.cs
index 6a1c82c..83ce705 100644
--- a/FlowerShop/FlowerShop/FormFlowers.Designer.cs
+++ b/FlowerShop/FlowerShop/FormFlowers.Designer.cs
@@ -1,114 +1,114 @@
namespace FlowerShopView
{
- partial class FormFlowers
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
+ partial class FormFlowers
+ {
+ ///
+ /// 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);
- }
+ ///
+ /// 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
+ #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()
- {
- buttonRef = new Button();
- buttonDel = new Button();
- buttonUpd = new Button();
- buttonAdd = new Button();
- dataGridView = new DataGridView();
- ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
- SuspendLayout();
- //
- // buttonRef
- //
- buttonRef.Location = new Point(283, 126);
- buttonRef.Name = "buttonRef";
- buttonRef.Size = new Size(103, 28);
- buttonRef.TabIndex = 9;
- buttonRef.Text = "Обновить";
- buttonRef.UseVisualStyleBackColor = true;
- buttonRef.Click += buttonRef_Click;
- //
- // buttonDel
- //
- buttonDel.Location = new Point(283, 92);
- buttonDel.Name = "buttonDel";
- buttonDel.Size = new Size(103, 28);
- buttonDel.TabIndex = 8;
- buttonDel.Text = "Удалить";
- buttonDel.UseVisualStyleBackColor = true;
- buttonDel.Click += buttonDel_Click;
- //
- // buttonUpd
- //
- buttonUpd.Location = new Point(283, 58);
- buttonUpd.Name = "buttonUpd";
- buttonUpd.Size = new Size(103, 28);
- buttonUpd.TabIndex = 7;
- buttonUpd.Text = "Изменить";
- buttonUpd.UseVisualStyleBackColor = true;
- buttonUpd.Click += buttonUpd_Click;
- //
- // buttonAdd
- //
- buttonAdd.Location = new Point(283, 24);
- buttonAdd.Name = "buttonAdd";
- buttonAdd.Size = new Size(103, 28);
- buttonAdd.TabIndex = 6;
- buttonAdd.Text = "Добавить";
- buttonAdd.UseVisualStyleBackColor = true;
- buttonAdd.Click += buttonAdd_Click;
- //
- // dataGridView
- //
- dataGridView.BackgroundColor = Color.White;
- dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
- dataGridView.Location = new Point(12, 12);
- dataGridView.Name = "dataGridView";
- dataGridView.RowTemplate.Height = 25;
- dataGridView.Size = new Size(240, 426);
- dataGridView.TabIndex = 5;
- //
- // FormFlowers
- //
- AutoScaleDimensions = new SizeF(7F, 15F);
- AutoScaleMode = AutoScaleMode.Font;
- ClientSize = new Size(407, 450);
- Controls.Add(buttonRef);
- Controls.Add(buttonDel);
- Controls.Add(buttonUpd);
- Controls.Add(buttonAdd);
- Controls.Add(dataGridView);
- Name = "FormFlowers";
- Text = "FormFlowers";
- Load += FormFlowers_Load;
- ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
- ResumeLayout(false);
- }
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ buttonRef = new Button();
+ buttonDel = new Button();
+ buttonUpd = new Button();
+ buttonAdd = new Button();
+ dataGridView = new DataGridView();
+ ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
+ SuspendLayout();
+ //
+ // buttonRef
+ //
+ buttonRef.Location = new Point(283, 126);
+ buttonRef.Name = "buttonRef";
+ buttonRef.Size = new Size(103, 28);
+ buttonRef.TabIndex = 9;
+ buttonRef.Text = "Обновить";
+ buttonRef.UseVisualStyleBackColor = true;
+ buttonRef.Click += buttonRef_Click;
+ //
+ // buttonDel
+ //
+ buttonDel.Location = new Point(283, 92);
+ buttonDel.Name = "buttonDel";
+ buttonDel.Size = new Size(103, 28);
+ buttonDel.TabIndex = 8;
+ buttonDel.Text = "Удалить";
+ buttonDel.UseVisualStyleBackColor = true;
+ buttonDel.Click += buttonDel_Click;
+ //
+ // buttonUpd
+ //
+ buttonUpd.Location = new Point(283, 58);
+ buttonUpd.Name = "buttonUpd";
+ buttonUpd.Size = new Size(103, 28);
+ buttonUpd.TabIndex = 7;
+ buttonUpd.Text = "Изменить";
+ buttonUpd.UseVisualStyleBackColor = true;
+ buttonUpd.Click += buttonUpd_Click;
+ //
+ // buttonAdd
+ //
+ buttonAdd.Location = new Point(283, 24);
+ buttonAdd.Name = "buttonAdd";
+ buttonAdd.Size = new Size(103, 28);
+ buttonAdd.TabIndex = 6;
+ buttonAdd.Text = "Добавить";
+ buttonAdd.UseVisualStyleBackColor = true;
+ buttonAdd.Click += buttonAdd_Click;
+ //
+ // dataGridView
+ //
+ dataGridView.BackgroundColor = Color.White;
+ dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ dataGridView.Location = new Point(12, 12);
+ dataGridView.Name = "dataGridView";
+ dataGridView.RowTemplate.Height = 25;
+ dataGridView.Size = new Size(240, 426);
+ dataGridView.TabIndex = 5;
+ //
+ // FormFlowers
+ //
+ AutoScaleDimensions = new SizeF(7F, 15F);
+ AutoScaleMode = AutoScaleMode.Font;
+ ClientSize = new Size(407, 450);
+ Controls.Add(buttonRef);
+ Controls.Add(buttonDel);
+ Controls.Add(buttonUpd);
+ Controls.Add(buttonAdd);
+ Controls.Add(dataGridView);
+ Name = "FormFlowers";
+ Text = "Цветы";
+ Load += FormFlowers_Load;
+ ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
+ ResumeLayout(false);
+ }
- #endregion
+ #endregion
- private Button buttonRef;
- private Button buttonDel;
- private Button buttonUpd;
- private Button buttonAdd;
- private DataGridView dataGridView;
- }
+ private Button buttonRef;
+ private Button buttonDel;
+ private Button buttonUpd;
+ private Button buttonAdd;
+ private DataGridView dataGridView;
+ }
}
\ No newline at end of file
diff --git a/FlowerShop/FlowerShop/FormFlowers.cs b/FlowerShop/FlowerShop/FormFlowers.cs
index fa703b7..22dd822 100644
--- a/FlowerShop/FlowerShop/FormFlowers.cs
+++ b/FlowerShop/FlowerShop/FormFlowers.cs
@@ -4,102 +4,102 @@ using FlowerShopContracts.BusinessLogicsContracts;
namespace FlowerShopView
{
- public partial class FormFlowers : Form
- {
- private readonly ILogger _logger;
- private readonly IFlowerLogic _logic;
- public FormFlowers(ILogger logger, IFlowerLogic logic)
- {
- InitializeComponent();
- _logger = logger;
- _logic = logic;
- }
+ public partial class FormFlowers : Form
+ {
+ private readonly ILogger _logger;
+ private readonly IFlowerLogic _logic;
+ public FormFlowers(ILogger logger, IFlowerLogic logic)
+ {
+ InitializeComponent();
+ _logger = logger;
+ _logic = logic;
+ }
- private void FormFlowers_Load(object sender, EventArgs e)
- {
- LoadData();
- }
+ private void FormFlowers_Load(object sender, EventArgs e)
+ {
+ LoadData();
+ }
- private void LoadData()
- {
- try
- {
- var list = _logic.ReadList(null);
- if (list != null)
- {
- dataGridView.DataSource = list;
- dataGridView.Columns["Id"].Visible = false;
- dataGridView.Columns["FlowerComponents"].Visible = false;
- dataGridView.Columns["FlowerName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
- }
- _logger.LogInformation("Загрузка компонентов");
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Ошибка загрузки компонентов");
- }
- }
+ private void LoadData()
+ {
+ try
+ {
+ var list = _logic.ReadList(null);
+ if (list != null)
+ {
+ dataGridView.DataSource = list;
+ dataGridView.Columns["Id"].Visible = false;
+ dataGridView.Columns["FlowerComponents"].Visible = false;
+ dataGridView.Columns["FlowerName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
+ }
+ _logger.LogInformation("Загрузка компонентов");
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка загрузки компонентов");
+ }
+ }
- private void buttonAdd_Click(object sender, EventArgs e)
- {
- var service = Program.ServiceProvider?.GetService(typeof(FormFlower));
- if (service is FormFlower form)
- {
- if (form.ShowDialog() == DialogResult.OK)
- {
- LoadData();
- }
- }
- }
+ private void buttonAdd_Click(object sender, EventArgs e)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormFlower));
+ if (service is FormFlower form)
+ {
+ if (form.ShowDialog() == DialogResult.OK)
+ {
+ LoadData();
+ }
+ }
+ }
- private void buttonUpd_Click(object sender, EventArgs e)
- {
- if (dataGridView.SelectedRows.Count == 1)
- {
- var service = Program.ServiceProvider?.GetService(typeof(FormFlower));
- if (service is FormFlower form)
- {
- form.Id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
- if (form.ShowDialog() == DialogResult.OK)
- {
- LoadData();
- }
- }
- }
- }
+ private void buttonUpd_Click(object sender, EventArgs e)
+ {
+ if (dataGridView.SelectedRows.Count == 1)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormFlower));
+ if (service is FormFlower form)
+ {
+ form.Id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
+ if (form.ShowDialog() == DialogResult.OK)
+ {
+ LoadData();
+ }
+ }
+ }
+ }
- private void buttonDel_Click(object sender, EventArgs e)
- {
- if (dataGridView.SelectedRows.Count == 1)
- {
- if (MessageBox.Show("Удалить запись?", "Вопрос", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
- {
- int id =
- Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
- _logger.LogInformation("Удаление записи");
- try
- {
- if (!_logic.Delete(new FlowerBindingModel
- {
- Id = id
- }))
- {
- throw new Exception("Ошибка при удалении. Дополнительная информация в логах.");
- }
- LoadData();
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Ошибка удаления записи");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- }
- }
+ private void buttonDel_Click(object sender, EventArgs e)
+ {
+ if (dataGridView.SelectedRows.Count == 1)
+ {
+ if (MessageBox.Show("Удалить запись?", "Вопрос", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
+ {
+ int id =
+ Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
+ _logger.LogInformation("Удаление записи");
+ try
+ {
+ if (!_logic.Delete(new FlowerBindingModel
+ {
+ Id = id
+ }))
+ {
+ throw new Exception("Ошибка при удалении. Дополнительная информация в логах.");
+ }
+ LoadData();
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка удаления записи");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+ }
- private void buttonRef_Click(object sender, EventArgs e)
- {
- LoadData();
- }
- }
+ private void buttonRef_Click(object sender, EventArgs e)
+ {
+ LoadData();
+ }
+ }
}
diff --git a/FlowerShop/FlowerShop/FormFlowers.resx b/FlowerShop/FlowerShop/FormFlowers.resx
index af32865..a395bff 100644
--- a/FlowerShop/FlowerShop/FormFlowers.resx
+++ b/FlowerShop/FlowerShop/FormFlowers.resx
@@ -18,7 +18,7 @@
System.Resources.ResXResourceReader, System.Windows.Forms, ...
System.Resources.ResXResourceWriter, System.Windows.Forms, ...
this is my long stringthis is a comment
- Blue
+ Blue
[base64 mime encoded serialized .NET Framework object]
diff --git a/FlowerShop/FlowerShop/FormMain.Designer.cs b/FlowerShop/FlowerShop/FormMain.Designer.cs
index eb2bf22..22ed023 100644
--- a/FlowerShop/FlowerShop/FormMain.Designer.cs
+++ b/FlowerShop/FlowerShop/FormMain.Designer.cs
@@ -1,189 +1,198 @@
namespace FlowerShopView
{
- partial class FormMain
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
+ partial class FormMain
+ {
+ ///
+ /// 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);
- }
+ ///
+ /// 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
+ #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();
- dataGridView = new DataGridView();
- buttonCreateOrder = new Button();
- buttonTakeOrderInWork = new Button();
- buttonOrderReady = new Button();
- buttonIssuedOrder = new Button();
- buttonRef = new Button();
- пополнениеМагазинаToolStripMenuItem = new ToolStripMenuItem();
- menuStrip1.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
- SuspendLayout();
- //
- // menuStrip1
- //
- menuStrip1.Items.AddRange(new ToolStripItem[] { справочникиToolStripMenuItem });
- menuStrip1.Location = new Point(0, 0);
- menuStrip1.Name = "menuStrip1";
- menuStrip1.Size = new Size(964, 24);
- menuStrip1.TabIndex = 0;
- menuStrip1.Text = "menuStrip1";
- //
- // справочникиToolStripMenuItem
- //
- справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { ЦветыToolStripMenuItem, КомпонентыToolStripMenuItem, магазиныToolStripMenuItem, пополнениеМагазинаToolStripMenuItem });
- справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem";
- справочникиToolStripMenuItem.Size = new Size(94, 20);
- справочникиToolStripMenuItem.Text = "Справочники";
- //
- // ЦветыToolStripMenuItem
- //
- ЦветыToolStripMenuItem.Name = "ЦветыToolStripMenuItem";
- ЦветыToolStripMenuItem.Size = new Size(198, 22);
- ЦветыToolStripMenuItem.Text = "Цветы";
- ЦветыToolStripMenuItem.Click += ЦветыToolStripMenuItem_Click;
- //
- // КомпонентыToolStripMenuItem
- //
- КомпонентыToolStripMenuItem.Name = "КомпонентыToolStripMenuItem";
- КомпонентыToolStripMenuItem.Size = new Size(198, 22);
- КомпонентыToolStripMenuItem.Text = "Компоненты";
- КомпонентыToolStripMenuItem.Click += КомпонентыToolStripMenuItem_Click;
- //
- // магазиныToolStripMenuItem
- //
- магазиныToolStripMenuItem.Name = "магазиныToolStripMenuItem";
- магазиныToolStripMenuItem.Size = new Size(198, 22);
- магазиныToolStripMenuItem.Text = "Магазины";
- магазиныToolStripMenuItem.Click += магазиныToolStripMenuItem_Click;
- //
- // dataGridView
- //
- dataGridView.BackgroundColor = Color.White;
- dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
- dataGridView.Location = new Point(12, 27);
- dataGridView.Name = "dataGridView";
- dataGridView.RowTemplate.Height = 25;
- dataGridView.Size = new Size(739, 411);
- dataGridView.TabIndex = 1;
- //
- // buttonCreateOrder
- //
- buttonCreateOrder.Location = new Point(775, 55);
- buttonCreateOrder.Name = "buttonCreateOrder";
- buttonCreateOrder.Size = new Size(158, 32);
- buttonCreateOrder.TabIndex = 2;
- buttonCreateOrder.Text = "Создать заказ";
- buttonCreateOrder.UseVisualStyleBackColor = true;
- buttonCreateOrder.Click += ButtonCreateOrder_Click;
- //
- // buttonTakeOrderInWork
- //
- buttonTakeOrderInWork.Location = new Point(775, 110);
- buttonTakeOrderInWork.Name = "buttonTakeOrderInWork";
- buttonTakeOrderInWork.Size = new Size(158, 34);
- buttonTakeOrderInWork.TabIndex = 3;
- buttonTakeOrderInWork.Text = "Отдать на выполнение";
- buttonTakeOrderInWork.UseVisualStyleBackColor = true;
- buttonTakeOrderInWork.Click += ButtonTakeOrderInWork_Click;
- //
- // buttonOrderReady
- //
- buttonOrderReady.Location = new Point(775, 168);
- buttonOrderReady.Name = "buttonOrderReady";
- buttonOrderReady.Size = new Size(158, 34);
- buttonOrderReady.TabIndex = 4;
- buttonOrderReady.Text = "Заказ готов";
- buttonOrderReady.UseVisualStyleBackColor = true;
- buttonOrderReady.Click += ButtonOrderReady_Click;
- //
- // buttonIssuedOrder
- //
- buttonIssuedOrder.Location = new Point(775, 230);
- buttonIssuedOrder.Name = "buttonIssuedOrder";
- buttonIssuedOrder.Size = new Size(158, 34);
- buttonIssuedOrder.TabIndex = 5;
- buttonIssuedOrder.Text = "Заказ выдан";
- buttonIssuedOrder.UseVisualStyleBackColor = true;
- buttonIssuedOrder.Click += ButtonIssuedOrder_Click;
- //
- // buttonRef
- //
- buttonRef.Location = new Point(775, 289);
- buttonRef.Name = "buttonRef";
- buttonRef.Size = new Size(158, 34);
- buttonRef.TabIndex = 6;
- buttonRef.Text = "Обновить список";
- buttonRef.UseVisualStyleBackColor = true;
- buttonRef.Click += ButtonRef_Click;
- //
- // пополнениеМагазинаToolStripMenuItem
- //
- пополнениеМагазинаToolStripMenuItem.Name = "пополнениеМагазинаToolStripMenuItem";
- пополнениеМагазинаToolStripMenuItem.Size = new Size(198, 22);
- пополнениеМагазинаToolStripMenuItem.Text = "Пополнение магазина";
- пополнениеМагазинаToolStripMenuItem.Click += пополнениеМагазинаToolStripMenuItem_Click;
- //
- // FormMain
- //
- AutoScaleDimensions = new SizeF(7F, 15F);
- AutoScaleMode = AutoScaleMode.Font;
- ClientSize = new Size(964, 450);
- Controls.Add(buttonRef);
- Controls.Add(buttonIssuedOrder);
- Controls.Add(buttonOrderReady);
- Controls.Add(buttonTakeOrderInWork);
- Controls.Add(buttonCreateOrder);
- Controls.Add(dataGridView);
- Controls.Add(menuStrip1);
- MainMenuStrip = menuStrip1;
- Name = "FormMain";
- Text = "Цветочный магазин";
- Load += FormMain_Load;
- menuStrip1.ResumeLayout(false);
- menuStrip1.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
- ResumeLayout(false);
- PerformLayout();
- }
+ ///
+ /// 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();
+ dataGridView = new DataGridView();
+ buttonCreateOrder = new Button();
+ buttonTakeOrderInWork = new Button();
+ buttonOrderReady = new Button();
+ buttonIssuedOrder = new Button();
+ buttonRef = new Button();
+ пополениеМагазинаToolStripMenuItem = new ToolStripMenuItem();
+ menuStrip1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
+ SuspendLayout();
+ //
+ // menuStrip1
+ //
+ menuStrip1.Items.AddRange(new ToolStripItem[] { справочникиToolStripMenuItem, пополениеМагазинаToolStripMenuItem, продажаЦветовToolStripMenuItem });
+ menuStrip1.Location = new Point(0, 0);
+ menuStrip1.Name = "menuStrip1";
+ menuStrip1.Size = new Size(964, 24);
+ menuStrip1.TabIndex = 0;
+ menuStrip1.Text = "menuStrip1";
+ //
+ // справочникиToolStripMenuItem
+ //
+ справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { ЦветыToolStripMenuItem, КомпонентыToolStripMenuItem, магазиныToolStripMenuItem });
+ справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem";
+ справочникиToolStripMenuItem.Size = new Size(94, 20);
+ справочникиToolStripMenuItem.Text = "Справочники";
+ //
+ // ЦветыToolStripMenuItem
+ //
+ ЦветыToolStripMenuItem.Name = "ЦветыToolStripMenuItem";
+ ЦветыToolStripMenuItem.Size = new Size(180, 22);
+ ЦветыToolStripMenuItem.Text = "Цветы";
+ ЦветыToolStripMenuItem.Click += ЦветыToolStripMenuItem_Click;
+ //
+ // КомпонентыToolStripMenuItem
+ //
+ КомпонентыToolStripMenuItem.Name = "КомпонентыToolStripMenuItem";
+ КомпонентыToolStripMenuItem.Size = new Size(180, 22);
+ КомпонентыToolStripMenuItem.Text = "Компоненты";
+ КомпонентыToolStripMenuItem.Click += КомпонентыToolStripMenuItem_Click;
+ //
+ // магазиныToolStripMenuItem
+ //
+ магазиныToolStripMenuItem.Name = "магазиныToolStripMenuItem";
+ магазиныToolStripMenuItem.Size = new Size(180, 22);
+ магазиныToolStripMenuItem.Text = "Магазины";
+ магазиныToolStripMenuItem.Click += магазиныToolStripMenuItem_Click;
+ //
+ // продажаЦветовToolStripMenuItem
+ //
+ продажаЦветовToolStripMenuItem.Name = "продажаЦветовToolStripMenuItem";
+ продажаЦветовToolStripMenuItem.Size = new Size(109, 20);
+ продажаЦветовToolStripMenuItem.Text = "Продажа цветов";
+ продажаЦветовToolStripMenuItem.Click += продажаЦветовToolStripMenuItem_Click;
+ //
+ // dataGridView
+ //
+ dataGridView.BackgroundColor = Color.White;
+ dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ dataGridView.Location = new Point(12, 27);
+ dataGridView.Name = "dataGridView";
+ dataGridView.RowTemplate.Height = 25;
+ dataGridView.Size = new Size(739, 411);
+ dataGridView.TabIndex = 1;
+ //
+ // buttonCreateOrder
+ //
+ buttonCreateOrder.Location = new Point(775, 55);
+ buttonCreateOrder.Name = "buttonCreateOrder";
+ buttonCreateOrder.Size = new Size(158, 32);
+ buttonCreateOrder.TabIndex = 2;
+ buttonCreateOrder.Text = "Создать заказ";
+ buttonCreateOrder.UseVisualStyleBackColor = true;
+ buttonCreateOrder.Click += ButtonCreateOrder_Click;
+ //
+ // buttonTakeOrderInWork
+ //
+ buttonTakeOrderInWork.Location = new Point(775, 110);
+ buttonTakeOrderInWork.Name = "buttonTakeOrderInWork";
+ buttonTakeOrderInWork.Size = new Size(158, 34);
+ buttonTakeOrderInWork.TabIndex = 3;
+ buttonTakeOrderInWork.Text = "Отдать на выполнение";
+ buttonTakeOrderInWork.UseVisualStyleBackColor = true;
+ buttonTakeOrderInWork.Click += ButtonTakeOrderInWork_Click;
+ //
+ // buttonOrderReady
+ //
+ buttonOrderReady.Location = new Point(775, 168);
+ buttonOrderReady.Name = "buttonOrderReady";
+ buttonOrderReady.Size = new Size(158, 34);
+ buttonOrderReady.TabIndex = 4;
+ buttonOrderReady.Text = "Заказ готов";
+ buttonOrderReady.UseVisualStyleBackColor = true;
+ buttonOrderReady.Click += ButtonOrderReady_Click;
+ //
+ // buttonIssuedOrder
+ //
+ buttonIssuedOrder.Location = new Point(775, 230);
+ buttonIssuedOrder.Name = "buttonIssuedOrder";
+ buttonIssuedOrder.Size = new Size(158, 34);
+ buttonIssuedOrder.TabIndex = 5;
+ buttonIssuedOrder.Text = "Заказ выдан";
+ buttonIssuedOrder.UseVisualStyleBackColor = true;
+ buttonIssuedOrder.Click += ButtonIssuedOrder_Click;
+ //
+ // buttonRef
+ //
+ buttonRef.Location = new Point(775, 289);
+ buttonRef.Name = "buttonRef";
+ buttonRef.Size = new Size(158, 34);
+ buttonRef.TabIndex = 6;
+ buttonRef.Text = "Обновить список";
+ buttonRef.UseVisualStyleBackColor = true;
+ buttonRef.Click += ButtonRef_Click;
+ //
+ // пополениеМагазинаToolStripMenuItem
+ //
+ пополениеМагазинаToolStripMenuItem.Name = "пополениеМагазинаToolStripMenuItem";
+ пополениеМагазинаToolStripMenuItem.Size = new Size(136, 20);
+ пополениеМагазинаToolStripMenuItem.Text = "Пополение магазина";
+ пополениеМагазинаToolStripMenuItem.Click += пополениеМагазинаToolStripMenuItem_Click;
+ //
+ // FormMain
+ //
+ AutoScaleDimensions = new SizeF(7F, 15F);
+ AutoScaleMode = AutoScaleMode.Font;
+ ClientSize = new Size(964, 450);
+ Controls.Add(buttonRef);
+ Controls.Add(buttonIssuedOrder);
+ Controls.Add(buttonOrderReady);
+ Controls.Add(buttonTakeOrderInWork);
+ Controls.Add(buttonCreateOrder);
+ Controls.Add(dataGridView);
+ Controls.Add(menuStrip1);
+ MainMenuStrip = menuStrip1;
+ Name = "FormMain";
+ Text = "Цветочный магазин";
+ Load += FormMain_Load;
+ menuStrip1.ResumeLayout(false);
+ menuStrip1.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
+ ResumeLayout(false);
+ PerformLayout();
+ }
- #endregion
+ #endregion
- private MenuStrip menuStrip1;
- private ToolStripMenuItem справочникиToolStripMenuItem;
- private ToolStripMenuItem ЦветыToolStripMenuItem;
- private ToolStripMenuItem КомпонентыToolStripMenuItem;
- private DataGridView dataGridView;
- private Button buttonCreateOrder;
- private Button buttonTakeOrderInWork;
- private Button buttonOrderReady;
- private Button buttonIssuedOrder;
- private Button buttonRef;
- private ToolStripMenuItem магазиныToolStripMenuItem;
- private ToolStripMenuItem пополнениеМагазинаToolStripMenuItem;
- }
+ private MenuStrip menuStrip1;
+ private ToolStripMenuItem справочникиToolStripMenuItem;
+ private ToolStripMenuItem ЦветыToolStripMenuItem;
+ private ToolStripMenuItem КомпонентыToolStripMenuItem;
+ private DataGridView dataGridView;
+ private Button buttonCreateOrder;
+ private Button buttonTakeOrderInWork;
+ private Button buttonOrderReady;
+ private Button buttonIssuedOrder;
+ private Button buttonRef;
+ private ToolStripMenuItem магазиныToolStripMenuItem;
+ private ToolStripMenuItem продажаЦветовToolStripMenuItem;
+ private ToolStripMenuItem пополениеМагазинаToolStripMenuItem;
+ }
}
\ No newline at end of file
diff --git a/FlowerShop/FlowerShop/FormMain.cs b/FlowerShop/FlowerShop/FormMain.cs
index d96670d..bde1d6e 100644
--- a/FlowerShop/FlowerShop/FormMain.cs
+++ b/FlowerShop/FlowerShop/FormMain.cs
@@ -4,157 +4,164 @@ using Microsoft.Extensions.Logging;
namespace FlowerShopView
{
- public partial class FormMain : Form
- {
- private readonly ILogger _logger;
- private readonly IOrderLogic _orderLogic;
- public FormMain(ILogger logger, IOrderLogic orderLogic)
- {
- InitializeComponent();
- _logger = logger;
- _orderLogic = orderLogic;
- }
- private void FormMain_Load(object sender, EventArgs e)
- {
- LoadData();
- }
- private void LoadData()
- {
- _logger.LogInformation("Загрузка заказов");
- try
- {
- var list = _orderLogic.ReadList(null);
- if (list != null)
- {
- dataGridView.DataSource = list;
- dataGridView.Columns["FlowerId"].Visible = false;
- dataGridView.Columns["FlowerName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
- }
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Ошибка загрузки заказов");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- private void КомпонентыToolStripMenuItem_Click(object sender, EventArgs e)
- {
- var service = Program.ServiceProvider?.GetService(typeof(FormComponents));
- if (service is FormComponents form)
- {
- form.ShowDialog();
- }
- }
- private void ЦветыToolStripMenuItem_Click(object sender, EventArgs e)
- {
- var service = Program.ServiceProvider?.GetService(typeof(FormFlowers));
- if (service is FormFlowers form)
- {
- form.ShowDialog();
- }
- }
- private void магазиныToolStripMenuItem_Click(object sender, EventArgs e)
- {
- var service = Program.ServiceProvider?.GetService(typeof(FormShops));
- if (service is FormShops form)
- {
- form.ShowDialog();
- }
- }
- private void пополнениеМагазинаToolStripMenuItem_Click(object sender, EventArgs e)
- {
- var service = Program.ServiceProvider?.GetService(typeof(FormMakeSupply));
- if (service is FormMakeSupply form)
- {
- form.ShowDialog();
- }
- }
- private void ButtonCreateOrder_Click(object sender, EventArgs e)
- {
- var service = Program.ServiceProvider?.GetService(typeof(FormCreateOrder));
- if (service is FormCreateOrder form)
- {
- form.ShowDialog();
- LoadData();
- }
- }
- private void ButtonTakeOrderInWork_Click(object sender, EventArgs e)
- {
- if (dataGridView.SelectedRows.Count == 1)
- {
- int id =
- Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
- _logger.LogInformation("Заказ №{id}. Меняется статус на 'В работе'", id);
- try
- {
- var operationResult = _orderLogic.TakeOrderInWork(new OrderBindingModel { Id = id });
- if (!operationResult)
- {
- throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
- }
- LoadData();
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Ошибка передачи заказа в работу");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- }
- private void ButtonOrderReady_Click(object sender, EventArgs e)
- {
- if (dataGridView.SelectedRows.Count == 1)
- {
- int id =
- Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
- _logger.LogInformation("Заказ №{id}. Меняется статус на 'Готов'",
- id);
- try
- {
- var operationResult = _orderLogic.FinishOrder(new
- OrderBindingModel
- { Id = id });
- if (!operationResult)
- {
- throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
- }
- LoadData();
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Ошибка отметки о готовности заказа");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- }
- private void ButtonIssuedOrder_Click(object sender, EventArgs e)
- {
- if (dataGridView.SelectedRows.Count == 1)
- {
- int id =
- Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
- _logger.LogInformation("Заказ №{id}. Меняется статус на 'Выдан'", id);
- try
- {
- var operationResult = _orderLogic.DeliveryOrder(new OrderBindingModel { Id = id });
- if (!operationResult)
- {
- throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
- }
- _logger.LogInformation("Заказ №{id} выдан", id);
- LoadData();
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Ошибка отметки о выдачи заказа");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
- MessageBoxIcon.Error);
- }
- }
- }
- private void ButtonRef_Click(object sender, EventArgs e)
- {
- LoadData();
- }
- }
+ public partial class FormMain : Form
+ {
+ private readonly ILogger _logger;
+ private readonly IOrderLogic _orderLogic;
+ public FormMain(ILogger logger, IOrderLogic orderLogic)
+ {
+ InitializeComponent();
+ _logger = logger;
+ _orderLogic = orderLogic;
+ }
+ private void FormMain_Load(object sender, EventArgs e)
+ {
+ LoadData();
+ }
+ private void LoadData()
+ {
+ _logger.LogInformation("Загрузка заказов");
+ try
+ {
+ var list = _orderLogic.ReadList(null);
+ if (list != null)
+ {
+ dataGridView.DataSource = list;
+ dataGridView.Columns["FlowerId"].Visible = false;
+ dataGridView.Columns["FlowerName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
+ }
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка загрузки заказов");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ private void ButtonCreateOrder_Click(object sender, EventArgs e)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormCreateOrder));
+ if (service is FormCreateOrder form)
+ {
+ form.ShowDialog();
+ LoadData();
+ }
+ }
+ private void ButtonTakeOrderInWork_Click(object sender, EventArgs e)
+ {
+ if (dataGridView.SelectedRows.Count == 1)
+ {
+ int id =
+ Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
+ _logger.LogInformation("Заказ №{id}. Меняется статус на 'В работе'", id);
+ try
+ {
+ var operationResult = _orderLogic.TakeOrderInWork(new OrderBindingModel { Id = id });
+ if (!operationResult)
+ {
+ throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
+ }
+ LoadData();
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка передачи заказа в работу");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+ private void ButtonOrderReady_Click(object sender, EventArgs e)
+ {
+ if (dataGridView.SelectedRows.Count == 1)
+ {
+ int id =
+ Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
+ _logger.LogInformation("Заказ №{id}. Меняется статус на 'Готов'",
+ id);
+ try
+ {
+ var operationResult = _orderLogic.FinishOrder(new OrderBindingModel { Id = id });
+ if (!operationResult)
+ {
+ throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
+ }
+ LoadData();
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка отметки о готовности заказа");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+ private void ButtonIssuedOrder_Click(object sender, EventArgs e)
+ {
+ if (dataGridView.SelectedRows.Count == 1)
+ {
+ int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
+ _logger.LogInformation("Заказ №{id}. Меняется статус на 'Выдан'", id);
+ try
+ {
+ var operationResult = _orderLogic.DeliveryOrder(new OrderBindingModel { Id = id });
+ if (!operationResult)
+ {
+ throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
+ }
+ _logger.LogInformation("Заказ №{id} выдан", id);
+ LoadData();
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка отметки о выдачи заказа");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
+ MessageBoxIcon.Error);
+ }
+ }
+ }
+ private void ButtonRef_Click(object sender, EventArgs e)
+ {
+ LoadData();
+ }
+
+ private void КомпонентыToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormComponents));
+ if (service is FormComponents form)
+ {
+ form.ShowDialog();
+ }
+ }
+ private void ЦветыToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormFlowers));
+ if (service is FormFlowers form)
+ {
+ form.ShowDialog();
+ }
+ }
+ private void магазиныToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormShops));
+ if (service is FormShops form)
+ {
+ form.ShowDialog();
+ }
+ }
+ private void продажаЦветовToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormMakeSale));
+ if (service is FormMakeSale form)
+ {
+ form.ShowDialog();
+ }
+ }
+
+ private void пополениеМагазинаToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormMakeSupply));
+ if (service is FormMakeSupply form)
+ {
+ form.ShowDialog();
+ }
+ }
+ }
}
diff --git a/FlowerShop/FlowerShop/FormMakeSale.Designer.cs b/FlowerShop/FlowerShop/FormMakeSale.Designer.cs
new file mode 100644
index 0000000..e622803
--- /dev/null
+++ b/FlowerShop/FlowerShop/FormMakeSale.Designer.cs
@@ -0,0 +1,127 @@
+namespace FlowerShopView
+{
+ partial class FormMakeSale
+ {
+ ///
+ /// 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()
+ {
+ buttonCancel = new Button();
+ buttonSale = new Button();
+ textBoxCount = new TextBox();
+ labelCount = new Label();
+ comboBoxFlower = new ComboBox();
+ labelFlower = new Label();
+ SuspendLayout();
+ //
+ // buttonCancel
+ //
+ buttonCancel.Location = new Point(253, 83);
+ buttonCancel.Margin = new Padding(4, 3, 4, 3);
+ buttonCancel.Name = "buttonCancel";
+ buttonCancel.Size = new Size(88, 27);
+ buttonCancel.TabIndex = 17;
+ buttonCancel.Text = "Отмена";
+ buttonCancel.UseVisualStyleBackColor = true;
+ buttonCancel.Click += ButtonCancel_Click;
+ //
+ // buttonSale
+ //
+ buttonSale.Location = new Point(159, 83);
+ buttonSale.Margin = new Padding(4, 3, 4, 3);
+ buttonSale.Name = "buttonSale";
+ buttonSale.Size = new Size(88, 27);
+ buttonSale.TabIndex = 16;
+ buttonSale.Text = "Продать";
+ buttonSale.UseVisualStyleBackColor = true;
+ buttonSale.Click += ButtonSale_Click;
+ //
+ // textBoxCount
+ //
+ textBoxCount.Location = new Point(101, 51);
+ textBoxCount.Margin = new Padding(4, 3, 4, 3);
+ textBoxCount.Name = "textBoxCount";
+ textBoxCount.Size = new Size(252, 23);
+ textBoxCount.TabIndex = 15;
+ //
+ // labelCount
+ //
+ labelCount.AutoSize = true;
+ labelCount.Location = new Point(13, 54);
+ labelCount.Margin = new Padding(4, 0, 4, 0);
+ labelCount.Name = "labelCount";
+ labelCount.Size = new Size(75, 15);
+ labelCount.TabIndex = 14;
+ labelCount.Text = "Количество:";
+ //
+ // comboBoxFlower
+ //
+ comboBoxFlower.DropDownStyle = ComboBoxStyle.DropDownList;
+ comboBoxFlower.FormattingEnabled = true;
+ comboBoxFlower.Location = new Point(101, 15);
+ comboBoxFlower.Margin = new Padding(4, 3, 4, 3);
+ comboBoxFlower.Name = "comboBoxFlower";
+ comboBoxFlower.Size = new Size(252, 23);
+ comboBoxFlower.TabIndex = 13;
+ //
+ // labelFlower
+ //
+ labelFlower.AutoSize = true;
+ labelFlower.Location = new Point(13, 19);
+ labelFlower.Margin = new Padding(4, 0, 4, 0);
+ labelFlower.Name = "labelFlower";
+ labelFlower.Size = new Size(45, 15);
+ labelFlower.TabIndex = 12;
+ labelFlower.Text = "Цветы:";
+ //
+ // FormMakeSale
+ //
+ AutoScaleDimensions = new SizeF(7F, 15F);
+ AutoScaleMode = AutoScaleMode.Font;
+ ClientSize = new Size(373, 123);
+ Controls.Add(buttonCancel);
+ Controls.Add(buttonSale);
+ Controls.Add(textBoxCount);
+ Controls.Add(labelCount);
+ Controls.Add(comboBoxFlower);
+ Controls.Add(labelFlower);
+ Name = "FormMakeSale";
+ StartPosition = FormStartPosition.CenterScreen;
+ Text = "Продажа цветов";
+ Load += FormMakeSale_Load;
+ ResumeLayout(false);
+ PerformLayout();
+ }
+
+ #endregion
+
+ private Button buttonCancel;
+ private Button buttonSale;
+ private TextBox textBoxCount;
+ private Label labelCount;
+ private ComboBox comboBoxFlower;
+ private Label labelFlower;
+ }
+}
\ No newline at end of file
diff --git a/FlowerShop/FlowerShop/FormMakeSale.cs b/FlowerShop/FlowerShop/FormMakeSale.cs
new file mode 100644
index 0000000..3dc3b22
--- /dev/null
+++ b/FlowerShop/FlowerShop/FormMakeSale.cs
@@ -0,0 +1,85 @@
+using FlowerShopContracts.BindingModels;
+using FlowerShopContracts.BusinessLogicsContracts;
+using Microsoft.Extensions.Logging;
+
+namespace FlowerShopView
+{
+ public partial class FormMakeSale : Form
+ {
+ private readonly ILogger _logger;
+
+ private readonly IFlowerLogic _logicFlower;
+
+ private readonly IShopLogic _logicShop;
+ public FormMakeSale(ILogger logger, IFlowerLogic logicFlower, IShopLogic logicShop)
+ {
+ InitializeComponent();
+ _logger = logger;
+ _logicFlower = logicFlower;
+ _logicShop = logicShop;
+ }
+ private void FormMakeSale_Load(object sender, EventArgs e)
+ {
+ _logger.LogInformation("Flowers loading");
+ try
+ {
+ var list = _logicFlower.ReadList(null);
+ if (list != null)
+ {
+ comboBoxFlower.DisplayMember = "FlowerName";
+ comboBoxFlower.ValueMember = "Id";
+ comboBoxFlower.DataSource = list;
+ comboBoxFlower.SelectedItem = null;
+ }
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Flowers loading error");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void ButtonSale_Click(object sender, EventArgs e)
+ {
+ if (comboBoxFlower.SelectedValue == null)
+ {
+ MessageBox.Show("Выберите цветы", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ if (string.IsNullOrEmpty(textBoxCount.Text))
+ {
+ MessageBox.Show("Заполните поле Количество", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ _logger.LogInformation("Flowers sale");
+ try
+ {
+ var operationResult = _logicShop.MakeSale(
+ new FlowerBindingModel
+ {
+ Id = Convert.ToInt32(comboBoxFlower.SelectedValue)
+ },
+ Convert.ToInt32(textBoxCount.Text)
+ );
+ if (!operationResult)
+ {
+ throw new Exception("Ошибка при продаже.");
+ }
+ MessageBox.Show("Продажа прошла успешно", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ DialogResult = DialogResult.OK;
+ Close();
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Flowers sale error");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void ButtonCancel_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.Cancel;
+ Close();
+ }
+ }
+}
diff --git a/FlowerShop/FlowerShop/FormMakeSale.resx b/FlowerShop/FlowerShop/FormMakeSale.resx
new file mode 100644
index 0000000..a395bff
--- /dev/null
+++ b/FlowerShop/FlowerShop/FormMakeSale.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/FlowerShop/FlowerShop/FormMakeSupply.cs b/FlowerShop/FlowerShop/FormMakeSupply.cs
index 292e8d6..2593c13 100644
--- a/FlowerShop/FlowerShop/FormMakeSupply.cs
+++ b/FlowerShop/FlowerShop/FormMakeSupply.cs
@@ -91,14 +91,13 @@ namespace FlowerShopView
{ Id = Convert.ToInt32(comboBoxFlower.SelectedValue) });
if (iceCream == null)
{
- throw new Exception("Мороженое не найдено.");
+ throw new Exception("Цветок не найден.");
}
var operationResult = _logicShop.MakeSupply(new ShopSearchModel
{
Id = Convert.ToInt32(comboBoxShop.SelectedValue)
- },
- iceCream,
- Convert.ToInt32(textBoxCount.Text));
+ },
+ iceCream, Convert.ToInt32(textBoxCount.Text));
if (!operationResult)
{
throw new Exception("Ошибка при проведении поставки.");
diff --git a/FlowerShop/FlowerShop/FormShop.Designer.cs b/FlowerShop/FlowerShop/FormShop.Designer.cs
index 92f74ef..f3928f7 100644
--- a/FlowerShop/FlowerShop/FormShop.Designer.cs
+++ b/FlowerShop/FlowerShop/FormShop.Designer.cs
@@ -1,213 +1,236 @@
namespace FlowerShopView
{
- partial class FormShop
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
+ partial class FormShop
+ {
+ ///
+ /// 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);
- }
+ ///
+ /// 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
+ #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()
- {
- labelName = new Label();
- textBoxName = new TextBox();
- labelAddress = new Label();
- textBoxAddress = new TextBox();
- dateTimePicker = new DateTimePicker();
- labelOpeningDate = new Label();
- groupBoxFlowers = new GroupBox();
- dataGridView = new DataGridView();
- ColumnId = new DataGridViewTextBoxColumn();
- ColumnName = new DataGridViewTextBoxColumn();
- ColumnCount = new DataGridViewTextBoxColumn();
- buttonSave = new Button();
- buttonCancel = new Button();
- groupBoxFlowers.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
- SuspendLayout();
- //
- // labelName
- //
- labelName.AutoSize = true;
- labelName.Location = new Point(14, 10);
- labelName.Margin = new Padding(4, 0, 4, 0);
- labelName.Name = "labelName";
- labelName.Size = new Size(62, 15);
- labelName.TabIndex = 1;
- labelName.Text = "Название:";
- //
- // textBoxName
- //
- textBoxName.Location = new Point(92, 7);
- textBoxName.Margin = new Padding(4, 3, 4, 3);
- textBoxName.Name = "textBoxName";
- textBoxName.Size = new Size(252, 23);
- textBoxName.TabIndex = 2;
- //
- // labelAddress
- //
- labelAddress.AutoSize = true;
- labelAddress.Location = new Point(14, 40);
- labelAddress.Margin = new Padding(4, 0, 4, 0);
- labelAddress.Name = "labelAddress";
- labelAddress.Size = new Size(43, 15);
- labelAddress.TabIndex = 3;
- labelAddress.Text = "Адрес:";
- //
- // textBoxAddress
- //
- textBoxAddress.Location = new Point(92, 37);
- textBoxAddress.Margin = new Padding(4, 3, 4, 3);
- textBoxAddress.Name = "textBoxAddress";
- textBoxAddress.Size = new Size(252, 23);
- textBoxAddress.TabIndex = 4;
- //
- // dateTimePicker
- //
- dateTimePicker.Location = new Point(126, 66);
- dateTimePicker.Name = "dateTimePicker";
- dateTimePicker.Size = new Size(218, 23);
- dateTimePicker.TabIndex = 5;
- //
- // labelOpeningDate
- //
- labelOpeningDate.AutoSize = true;
- labelOpeningDate.Location = new Point(14, 69);
- labelOpeningDate.Margin = new Padding(4, 0, 4, 0);
- labelOpeningDate.Name = "labelOpeningDate";
- labelOpeningDate.Size = new Size(90, 15);
- labelOpeningDate.TabIndex = 6;
- labelOpeningDate.Text = "Дата открытия:";
- //
- // groupBoxFlowers
- //
- groupBoxFlowers.Controls.Add(dataGridView);
- groupBoxFlowers.Location = new Point(4, 100);
- groupBoxFlowers.Margin = new Padding(4, 3, 4, 3);
- groupBoxFlowers.Name = "groupBoxFlowers";
- groupBoxFlowers.Padding = new Padding(4, 3, 4, 3);
- groupBoxFlowers.Size = new Size(469, 288);
- groupBoxFlowers.TabIndex = 7;
- groupBoxFlowers.TabStop = false;
- groupBoxFlowers.Text = "Цветы";
- //
- // dataGridView
- //
- dataGridView.AllowUserToAddRows = false;
- dataGridView.AllowUserToDeleteRows = false;
- dataGridView.BackgroundColor = SystemColors.ControlLightLight;
- dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
- dataGridView.Columns.AddRange(new DataGridViewColumn[] { ColumnId, ColumnName, ColumnCount });
- dataGridView.Dock = DockStyle.Left;
- dataGridView.Location = new Point(4, 19);
- dataGridView.Margin = new Padding(4, 3, 4, 3);
- dataGridView.MultiSelect = false;
- dataGridView.Name = "dataGridView";
- dataGridView.ReadOnly = true;
- dataGridView.RowHeadersVisible = false;
- dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
- dataGridView.Size = new Size(457, 266);
- dataGridView.TabIndex = 0;
- //
- // ColumnId
- //
- ColumnId.HeaderText = "Id";
- ColumnId.Name = "ColumnId";
- ColumnId.ReadOnly = true;
- ColumnId.Visible = false;
- //
- // ColumnName
- //
- ColumnName.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
- ColumnName.HeaderText = "Название цветка";
- ColumnName.Name = "ColumnName";
- ColumnName.ReadOnly = true;
- //
- // ColumnCount
- //
- ColumnCount.HeaderText = "Количество";
- ColumnCount.Name = "ColumnCount";
- ColumnCount.ReadOnly = true;
- //
- // buttonSave
- //
- buttonSave.Location = new Point(255, 394);
- buttonSave.Margin = new Padding(4, 3, 4, 3);
- buttonSave.Name = "buttonSave";
- buttonSave.Size = new Size(88, 27);
- buttonSave.TabIndex = 8;
- buttonSave.Text = "Сохранить";
- buttonSave.UseVisualStyleBackColor = true;
- buttonSave.Click += ButtonSave_Click;
- //
- // buttonCancel
- //
- buttonCancel.Location = new Point(359, 394);
- buttonCancel.Margin = new Padding(4, 3, 4, 3);
- buttonCancel.Name = "buttonCancel";
- buttonCancel.Size = new Size(88, 27);
- buttonCancel.TabIndex = 9;
- buttonCancel.Text = "Отмена";
- buttonCancel.UseVisualStyleBackColor = true;
- buttonCancel.Click += ButtonCancel_Click;
- //
- // FormShop
- //
- AutoScaleDimensions = new SizeF(7F, 15F);
- AutoScaleMode = AutoScaleMode.Font;
- ClientSize = new Size(478, 432);
- Controls.Add(buttonCancel);
- Controls.Add(buttonSave);
- Controls.Add(groupBoxFlowers);
- Controls.Add(labelOpeningDate);
- Controls.Add(dateTimePicker);
- Controls.Add(textBoxAddress);
- Controls.Add(labelAddress);
- Controls.Add(textBoxName);
- Controls.Add(labelName);
- Name = "FormShop";
- StartPosition = FormStartPosition.CenterScreen;
- Text = "Магазин";
- Load += FormShop_Load;
- groupBoxFlowers.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
- ResumeLayout(false);
- PerformLayout();
- }
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ labelName = new Label();
+ textBoxName = new TextBox();
+ labelAddress = new Label();
+ textBoxAddress = new TextBox();
+ dateTimePicker = new DateTimePicker();
+ labelOpeningDate = new Label();
+ groupBoxFlowers = new GroupBox();
+ dataGridView = new DataGridView();
+ ColumnId = new DataGridViewTextBoxColumn();
+ ColumnName = new DataGridViewTextBoxColumn();
+ ColumnCount = new DataGridViewTextBoxColumn();
+ buttonSave = new Button();
+ buttonCancel = new Button();
+ textBoxMaximum = new TextBox();
+ label1 = new Label();
+ groupBoxFlowers.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
+ SuspendLayout();
+ //
+ // labelName
+ //
+ labelName.AutoSize = true;
+ labelName.Location = new Point(14, 10);
+ labelName.Margin = new Padding(4, 0, 4, 0);
+ labelName.Name = "labelName";
+ labelName.Size = new Size(62, 15);
+ labelName.TabIndex = 1;
+ labelName.Text = "Название:";
+ //
+ // textBoxName
+ //
+ textBoxName.Location = new Point(175, 7);
+ textBoxName.Margin = new Padding(4, 3, 4, 3);
+ textBoxName.Name = "textBoxName";
+ textBoxName.Size = new Size(252, 23);
+ textBoxName.TabIndex = 2;
+ //
+ // labelAddress
+ //
+ labelAddress.AutoSize = true;
+ labelAddress.Location = new Point(14, 40);
+ labelAddress.Margin = new Padding(4, 0, 4, 0);
+ labelAddress.Name = "labelAddress";
+ labelAddress.Size = new Size(43, 15);
+ labelAddress.TabIndex = 3;
+ labelAddress.Text = "Адрес:";
+ //
+ // textBoxAddress
+ //
+ textBoxAddress.Location = new Point(175, 37);
+ textBoxAddress.Margin = new Padding(4, 3, 4, 3);
+ textBoxAddress.Name = "textBoxAddress";
+ textBoxAddress.Size = new Size(252, 23);
+ textBoxAddress.TabIndex = 4;
+ //
+ // dateTimePicker
+ //
+ dateTimePicker.Location = new Point(209, 98);
+ dateTimePicker.Name = "dateTimePicker";
+ dateTimePicker.Size = new Size(218, 23);
+ dateTimePicker.TabIndex = 5;
+ //
+ // labelOpeningDate
+ //
+ labelOpeningDate.AutoSize = true;
+ labelOpeningDate.Location = new Point(14, 104);
+ labelOpeningDate.Margin = new Padding(4, 0, 4, 0);
+ labelOpeningDate.Name = "labelOpeningDate";
+ labelOpeningDate.Size = new Size(90, 15);
+ labelOpeningDate.TabIndex = 6;
+ labelOpeningDate.Text = "Дата открытия:";
+ //
+ // groupBoxFlowers
+ //
+ groupBoxFlowers.Controls.Add(dataGridView);
+ groupBoxFlowers.Location = new Point(4, 135);
+ groupBoxFlowers.Margin = new Padding(4, 3, 4, 3);
+ groupBoxFlowers.Name = "groupBoxFlowers";
+ groupBoxFlowers.Padding = new Padding(4, 3, 4, 3);
+ groupBoxFlowers.Size = new Size(469, 288);
+ groupBoxFlowers.TabIndex = 7;
+ groupBoxFlowers.TabStop = false;
+ groupBoxFlowers.Text = "Цветы";
+ //
+ // dataGridView
+ //
+ dataGridView.AllowUserToAddRows = false;
+ dataGridView.AllowUserToDeleteRows = false;
+ dataGridView.BackgroundColor = SystemColors.ControlLightLight;
+ dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ dataGridView.Columns.AddRange(new DataGridViewColumn[] { ColumnId, ColumnName, ColumnCount });
+ dataGridView.Dock = DockStyle.Left;
+ dataGridView.Location = new Point(4, 19);
+ dataGridView.Margin = new Padding(4, 3, 4, 3);
+ dataGridView.MultiSelect = false;
+ dataGridView.Name = "dataGridView";
+ dataGridView.ReadOnly = true;
+ dataGridView.RowHeadersVisible = false;
+ dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
+ dataGridView.Size = new Size(457, 266);
+ dataGridView.TabIndex = 0;
+ //
+ // ColumnId
+ //
+ ColumnId.HeaderText = "Id";
+ ColumnId.Name = "ColumnId";
+ ColumnId.ReadOnly = true;
+ ColumnId.Visible = false;
+ //
+ // ColumnName
+ //
+ ColumnName.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
+ ColumnName.HeaderText = "Название цветка";
+ ColumnName.Name = "ColumnName";
+ ColumnName.ReadOnly = true;
+ //
+ // ColumnCount
+ //
+ ColumnCount.HeaderText = "Количество";
+ ColumnCount.Name = "ColumnCount";
+ ColumnCount.ReadOnly = true;
+ //
+ // buttonSave
+ //
+ buttonSave.Location = new Point(255, 429);
+ buttonSave.Margin = new Padding(4, 3, 4, 3);
+ buttonSave.Name = "buttonSave";
+ buttonSave.Size = new Size(88, 27);
+ buttonSave.TabIndex = 8;
+ buttonSave.Text = "Сохранить";
+ buttonSave.UseVisualStyleBackColor = true;
+ buttonSave.Click += ButtonSave_Click;
+ //
+ // buttonCancel
+ //
+ buttonCancel.Location = new Point(359, 429);
+ buttonCancel.Margin = new Padding(4, 3, 4, 3);
+ buttonCancel.Name = "buttonCancel";
+ buttonCancel.Size = new Size(88, 27);
+ buttonCancel.TabIndex = 9;
+ buttonCancel.Text = "Отмена";
+ buttonCancel.UseVisualStyleBackColor = true;
+ buttonCancel.Click += ButtonCancel_Click;
+ //
+ // textBoxMaximum
+ //
+ textBoxMaximum.Location = new Point(175, 68);
+ textBoxMaximum.Margin = new Padding(4, 3, 4, 3);
+ textBoxMaximum.Name = "textBoxMaximum";
+ textBoxMaximum.Size = new Size(252, 23);
+ textBoxMaximum.TabIndex = 11;
+ //
+ // label1
+ //
+ label1.Location = new Point(14, 68);
+ label1.Margin = new Padding(4, 0, 4, 0);
+ label1.Name = "label1";
+ label1.Size = new Size(153, 33);
+ label1.TabIndex = 10;
+ label1.Text = "Максимальное количество цветков:";
+ //
+ // FormShop
+ //
+ AutoScaleDimensions = new SizeF(7F, 15F);
+ AutoScaleMode = AutoScaleMode.Font;
+ ClientSize = new Size(478, 465);
+ Controls.Add(textBoxMaximum);
+ Controls.Add(label1);
+ Controls.Add(buttonCancel);
+ Controls.Add(buttonSave);
+ Controls.Add(groupBoxFlowers);
+ Controls.Add(labelOpeningDate);
+ Controls.Add(dateTimePicker);
+ Controls.Add(textBoxAddress);
+ Controls.Add(labelAddress);
+ Controls.Add(textBoxName);
+ Controls.Add(labelName);
+ Name = "FormShop";
+ StartPosition = FormStartPosition.CenterScreen;
+ Text = "Магазин";
+ Load += FormShop_Load;
+ groupBoxFlowers.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
+ ResumeLayout(false);
+ PerformLayout();
+ }
- #endregion
+ #endregion
- private Label labelName;
- private TextBox textBoxName;
- private Label labelAddress;
- private TextBox textBoxAddress;
- private DateTimePicker dateTimePicker;
- private Label labelOpeningDate;
- private GroupBox groupBoxFlowers;
- private DataGridView dataGridView;
- private DataGridViewTextBoxColumn ColumnId;
- private DataGridViewTextBoxColumn ColumnName;
- private DataGridViewTextBoxColumn ColumnCount;
- private Button buttonSave;
- private Button buttonCancel;
- }
+ private Label labelName;
+ private TextBox textBoxName;
+ private Label labelAddress;
+ private TextBox textBoxAddress;
+ private DateTimePicker dateTimePicker;
+ private Label labelOpeningDate;
+ private GroupBox groupBoxFlowers;
+ private DataGridView dataGridView;
+ private DataGridViewTextBoxColumn ColumnId;
+ private DataGridViewTextBoxColumn ColumnName;
+ private DataGridViewTextBoxColumn ColumnCount;
+ private Button buttonSave;
+ private Button buttonCancel;
+ private TextBox textBoxMaximum;
+ private Label label1;
+ }
}
\ No newline at end of file
diff --git a/FlowerShop/FlowerShop/FormShop.cs b/FlowerShop/FlowerShop/FormShop.cs
index 82c4f82..0bbce88 100644
--- a/FlowerShop/FlowerShop/FormShop.cs
+++ b/FlowerShop/FlowerShop/FormShop.cs
@@ -6,120 +6,121 @@ using Microsoft.Extensions.Logging;
namespace FlowerShopView
{
- public partial class FormShop : Form
- {
- private readonly ILogger _logger;
+ public partial class FormShop : Form
+ {
+ private readonly ILogger _logger;
- private readonly IShopLogic _logic;
+ private readonly IShopLogic _logic;
- private int? _id;
+ private int? _id;
- private Dictionary _shopFlowers;
+ private Dictionary _shopFlowers;
- public int Id { set { _id = value; } }
+ public int Id { set { _id = value; } }
- public FormShop(ILogger logger, IShopLogic logic)
- {
- InitializeComponent();
- _logger = logger;
- _logic = logic;
- _shopFlowers = new Dictionary();
- }
+ public FormShop(ILogger logger, IShopLogic logic)
+ {
+ InitializeComponent();
+ _logger = logger;
+ _logic = logic;
+ _shopFlowers = new Dictionary();
+ }
- private void FormShop_Load(object sender, EventArgs e)
- {
- if (_id.HasValue)
- {
- _logger.LogInformation("Shop loading");
- try
- {
- var view = _logic.ReadElement(new ShopSearchModel { Id = _id.Value });
- if (view != null)
- {
- textBoxName.Text = view.ShopName;
- textBoxAddress.Text = view.Address;
- dateTimePicker.Value = view.DateOpening;
- _shopFlowers = view.Flowers ?? new Dictionary();
- LoadData();
- }
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Shop loading error");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- }
+ private void FormShop_Load(object sender, EventArgs e)
+ {
+ if (_id.HasValue)
+ {
+ _logger.LogInformation("Shop loading");
+ try
+ {
+ var view = _logic.ReadElement(new ShopSearchModel { Id = _id.Value });
+ if (view != null)
+ {
+ textBoxName.Text = view.ShopName;
+ textBoxAddress.Text = view.Address;
+ dateTimePicker.Value = view.DateOpening;
+ _shopFlowers = view.ShopFlowers ?? new Dictionary();
+ LoadData();
+ }
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Shop loading error");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
- private void LoadData()
- {
- _logger.LogInformation("Shop flowers loading");
- try
- {
- if (_shopFlowers != null)
- {
- dataGridView.Rows.Clear();
- foreach (var iceCream in _shopFlowers)
- {
- dataGridView.Rows.Add(new object[] { iceCream.Key, iceCream.Value.Item1.FlowerName, iceCream.Value.Item2 });
- }
- }
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Shop flowers loading error");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
+ private void LoadData()
+ {
+ _logger.LogInformation("Shop flowers loading");
+ try
+ {
+ if (_shopFlowers != null)
+ {
+ dataGridView.Rows.Clear();
+ foreach (var iceCream in _shopFlowers)
+ {
+ dataGridView.Rows.Add(new object[] { iceCream.Key, iceCream.Value.Item1.FlowerName, iceCream.Value.Item2 });
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Shop flowers loading error");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
- private void ButtonSave_Click(object sender, EventArgs e)
- {
- if (string.IsNullOrEmpty(textBoxName.Text))
- {
- MessageBox.Show("Заполните название", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- return;
- }
- if (string.IsNullOrEmpty(textBoxAddress.Text))
- {
- MessageBox.Show("Заполните адрес", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- return;
- }
- if (string.IsNullOrEmpty(dateTimePicker.Text))
- {
- MessageBox.Show("Заполните дату", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- return;
- }
- _logger.LogInformation("Shop saving");
- try
- {
- var model = new ShopBindingModel
- {
- Id = _id ?? 0,
- ShopName = textBoxName.Text,
- Address = textBoxAddress.Text,
- DateOpening = dateTimePicker.Value,
- Flowers = _shopFlowers
- };
- var operationResult = _id.HasValue ? _logic.Update(model) : _logic.Create(model);
- if (!operationResult)
- {
- throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
- }
- MessageBox.Show("Сохранение прошло успешно", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
- DialogResult = DialogResult.OK;
- Close();
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Shop saving error");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
+ private void ButtonSave_Click(object sender, EventArgs e)
+ {
+ if (string.IsNullOrEmpty(textBoxName.Text))
+ {
+ MessageBox.Show("Заполните название", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ if (string.IsNullOrEmpty(textBoxAddress.Text))
+ {
+ MessageBox.Show("Заполните адрес", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ if (string.IsNullOrEmpty(dateTimePicker.Text))
+ {
+ MessageBox.Show("Заполните дату", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ _logger.LogInformation("Shop saving");
+ try
+ {
+ var model = new ShopBindingModel
+ {
+ Id = _id ?? 0,
+ ShopName = textBoxName.Text,
+ Address = textBoxAddress.Text,
+ DateOpening = dateTimePicker.Value,
+ ShopFlowers = _shopFlowers,
+ MaximumFlowers = Convert.ToInt32(textBoxMaximum.Text),
+ };
+ var operationResult = _id.HasValue ? _logic.Update(model) : _logic.Create(model);
+ if (!operationResult)
+ {
+ throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
+ }
+ MessageBox.Show("Сохранение прошло успешно", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ DialogResult = DialogResult.OK;
+ Close();
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Shop saving error");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
- private void ButtonCancel_Click(object sender, EventArgs e)
- {
- DialogResult = DialogResult.Cancel;
- Close();
- }
- }
+ private void ButtonCancel_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.Cancel;
+ Close();
+ }
+ }
}
diff --git a/FlowerShop/FlowerShop/FormShops.cs b/FlowerShop/FlowerShop/FormShops.cs
index 5828e21..49929a3 100644
--- a/FlowerShop/FlowerShop/FormShops.cs
+++ b/FlowerShop/FlowerShop/FormShops.cs
@@ -32,7 +32,7 @@ namespace FlowerShopView
dataGridView.DataSource = list;
dataGridView.Columns["Id"].Visible = false;
dataGridView.Columns["ShopName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
- dataGridView.Columns["Flowers"].Visible = false;
+ dataGridView.Columns["ShopFlowers"].Visible = false;
}
_logger.LogInformation("Shops loading");
}
diff --git a/FlowerShop/FlowerShop/Program.cs b/FlowerShop/FlowerShop/Program.cs
index f2d2595..539605d 100644
--- a/FlowerShop/FlowerShop/Program.cs
+++ b/FlowerShop/FlowerShop/Program.cs
@@ -36,10 +36,12 @@ namespace FlowerShopView
services.AddTransient();
services.AddTransient();
services.AddTransient();
+ services.AddTransient();
services.AddTransient();
services.AddTransient();
services.AddTransient();
+ services.AddTransient();
services.AddTransient();
services.AddTransient();
@@ -48,6 +50,10 @@ namespace FlowerShopView
services.AddTransient();
services.AddTransient();
services.AddTransient();
- }
+ services.AddTransient();
+ services.AddTransient();
+ services.AddTransient();
+ services.AddTransient();
+ }
}
}
\ No newline at end of file
diff --git a/FlowerShop/FlowerShopBusinessLogic/BusinessLogics/OrderLogic.cs b/FlowerShop/FlowerShopBusinessLogic/BusinessLogics/OrderLogic.cs
index 12c6b6d..1eb9d59 100644
--- a/FlowerShop/FlowerShopBusinessLogic/BusinessLogics/OrderLogic.cs
+++ b/FlowerShop/FlowerShopBusinessLogic/BusinessLogics/OrderLogic.cs
@@ -4,6 +4,7 @@ using FlowerShopContracts.SearchModels;
using FlowerShopContracts.StoragesContracts;
using FlowerShopContracts.ViewModels;
using FlowerShopDataModels.Enums;
+using FlowerShopDataModels.Models;
using Microsoft.Extensions.Logging;
namespace FlowerShopBusinessLogic.BusinessLogics
@@ -12,10 +13,16 @@ namespace FlowerShopBusinessLogic.BusinessLogics
{
private readonly ILogger _logger;
private readonly IOrderStorage _orderStorage;
- public OrderLogic(ILogger logger, IOrderStorage orderStorage)
+ private readonly IFlowerStorage _flowerStorage;
+ private readonly IShopStorage _shopStorage;
+ private readonly IShopLogic _shopLogic;
+ public OrderLogic(ILogger logger, IOrderStorage orderStorage, IFlowerStorage flowerStorage, IShopStorage shopStorage, IShopLogic shopLogic)
{
_logger = logger;
_orderStorage = orderStorage;
+ _flowerStorage = flowerStorage;
+ _shopStorage = shopStorage;
+ _shopLogic = shopLogic;
}
public List? ReadList(OrderSearchModel? model)
{
@@ -80,17 +87,32 @@ namespace FlowerShopBusinessLogic.BusinessLogics
_logger.LogWarning("Status update to " + orderStatus + " operation failed");
return false;
}
+ if (orderStatus == OrderStatus.Выдан)
+ {
+ var flower = _flowerStorage.GetElement(new FlowerSearchModel() { Id = model.FlowerId } );
+ if (flower == null)
+ {
+ return false;
+ }
+ if (!SupplyFlowers(flower, model.Count))
+ {
+ _logger.LogWarning("Change status operation failed. Flowers delivery operation failed");
+ return false;
+ }
+ }
model.Status = orderStatus;
-
- if (model.Status == OrderStatus.Выдан)
+ if (model.Status == OrderStatus.Готов)
{
model.DateImplement = DateTime.Now;
}
-
+ else
+ {
+ model.DateImplement = element.DateImplement;
+ }
if (_orderStorage.Update(model) == null)
{
model.Status--;
- _logger.LogWarning("Changing status operation faled");
+ _logger.LogWarning("Changing status operation failed");
return false;
}
return true;
@@ -119,5 +141,62 @@ namespace FlowerShopBusinessLogic.BusinessLogics
}
_logger.LogInformation("Order. FlowerId:{EngineId}.Count:{Count}.Sum:{Sum}Id:{Id}", model.FlowerId, model.Count, model.Sum, model.Id);
}
+
+ private bool SupplyFlowers(IFlowerModel flower, int count)
+ {
+ if (count < 0)
+ {
+ _logger.LogWarning("Flower supply operation failed. Count <= 0");
+ return false;
+ }
+ var shopList = _shopStorage.GetFullList();
+ var shopsCapacity = shopList.Sum(x => x.MaximumFlowers);
+ int currentFlowers = shopList.Select(x => x.ShopFlowers.Sum(y => y.Value.Item2)).Sum();
+ int freeSpace = shopsCapacity - currentFlowers;
+
+ if (freeSpace < count)
+ {
+ _logger.LogWarning("Flower supply operation failed. No free space for new flowers");
+ return false;
+ }
+
+ foreach (var shop in shopList)
+ {
+ freeSpace = shop.MaximumFlowers - shop.ShopFlowers.Sum(x => x.Value.Item2);
+ if (freeSpace == 0)
+ {
+ continue;
+ }
+ if (freeSpace >= count)
+ {
+ if (_shopLogic.MakeSupply(new ShopSearchModel() { Id = shop.Id }, flower, count))
+ {
+ count = 0;
+ }
+ else
+ {
+ _logger.LogWarning("Flowers delivery operation failed");
+ return false;
+ }
+ }
+ else
+ {
+ if (_shopLogic.MakeSupply(new ShopSearchModel() { Id = shop.Id }, flower, freeSpace))
+ {
+ count -= freeSpace;
+ }
+ else
+ {
+ _logger.LogWarning("Flowers delivery operation failed");
+ return false;
+ }
+ }
+ if (count == 0)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
}
}
diff --git a/FlowerShop/FlowerShopBusinessLogic/BusinessLogics/ShopLogic.cs b/FlowerShop/FlowerShopBusinessLogic/BusinessLogics/ShopLogic.cs
index 0ee35f5..e35bb76 100644
--- a/FlowerShop/FlowerShopBusinessLogic/BusinessLogics/ShopLogic.cs
+++ b/FlowerShop/FlowerShopBusinessLogic/BusinessLogics/ShopLogic.cs
@@ -100,16 +100,16 @@ namespace FlowerShopBusinessLogic.BusinessLogics
_logger.LogWarning("MakeSupply(GetElement). Element not found");
return false;
}
- if (shop.Flowers.ContainsKey(flower.Id))
+ if (shop.ShopFlowers.ContainsKey(flower.Id))
{
- var shopFlower = shop.Flowers[flower.Id];
+ var shopFlower = shop.ShopFlowers[flower.Id];
shopFlower.Item2 += count;
- shop.Flowers[flower.Id] = shopFlower;
+ shop.ShopFlowers[flower.Id] = shopFlower;
_logger.LogInformation("MakeSupply. Added {count} '{flower}' to '{ShopName}' shop", count, flower.FlowerName, shop.ShopName);
}
else
{
- shop.Flowers.Add(flower.Id, (flower, count));
+ shop.ShopFlowers.Add(flower.Id, (flower, count));
_logger.LogInformation("MakeSupply. Added {count} new '{flower}' to '{ShopName}' shop", count, flower.FlowerName, shop.ShopName);
}
if (_shopStorage.Update(new ShopBindingModel()
@@ -118,7 +118,8 @@ namespace FlowerShopBusinessLogic.BusinessLogics
ShopName = shop.ShopName,
Address = shop.Address,
DateOpening = shop.DateOpening,
- Flowers = shop.Flowers,
+ ShopFlowers = shop.ShopFlowers,
+ MaximumFlowers = shop.MaximumFlowers,
}) == null)
{
_logger.LogWarning("MakeSupply. Update operation failed");
@@ -154,5 +155,10 @@ namespace FlowerShopBusinessLogic.BusinessLogics
throw new InvalidOperationException("Магазин с таким названием уже есть");
}
}
- }
+
+ public bool MakeSale(IFlowerModel model, int count)
+ {
+ return _shopStorage.MakeSale(model, count);
+ }
+ }
}
diff --git a/FlowerShop/FlowerShopContracts/BindingModels/ShopBindingModel.cs b/FlowerShop/FlowerShopContracts/BindingModels/ShopBindingModel.cs
index 3197295..dfd4c23 100644
--- a/FlowerShop/FlowerShopContracts/BindingModels/ShopBindingModel.cs
+++ b/FlowerShop/FlowerShopContracts/BindingModels/ShopBindingModel.cs
@@ -8,10 +8,12 @@ namespace FlowerShopContracts.BindingModels
public string ShopName { get; set; } = string.Empty;
public string Address { get; set; } = string.Empty;
public DateTime DateOpening { get; set; } = DateTime.Now;
- public Dictionary Flowers
+ public Dictionary ShopFlowers
{
get;
set;
} = new();
+
+ public int MaximumFlowers { get; set; }
}
}
diff --git a/FlowerShop/FlowerShopContracts/BusinessLogicsContracts/IShopLogic.cs b/FlowerShop/FlowerShopContracts/BusinessLogicsContracts/IShopLogic.cs
index 7a3ff14..b8e44d3 100644
--- a/FlowerShop/FlowerShopContracts/BusinessLogicsContracts/IShopLogic.cs
+++ b/FlowerShop/FlowerShopContracts/BusinessLogicsContracts/IShopLogic.cs
@@ -13,5 +13,6 @@ namespace FlowerShopContracts.BusinessLogicsContracts
bool Update(ShopBindingModel model);
bool Delete(ShopBindingModel model);
bool MakeSupply(ShopSearchModel shopModel, IFlowerModel flower, int count);
- }
+ bool MakeSale(IFlowerModel model, int count);
+ }
}
diff --git a/FlowerShop/FlowerShopContracts/StoragesContracts/IShopStorage.cs b/FlowerShop/FlowerShopContracts/StoragesContracts/IShopStorage.cs
index 4827bd1..a59a7b5 100644
--- a/FlowerShop/FlowerShopContracts/StoragesContracts/IShopStorage.cs
+++ b/FlowerShop/FlowerShopContracts/StoragesContracts/IShopStorage.cs
@@ -1,6 +1,7 @@
using FlowerShopContracts.BindingModels;
using FlowerShopContracts.SearchModels;
using FlowerShopContracts.ViewModels;
+using FlowerShopDataModels.Models;
namespace FlowerShopContracts.StoragesContracts
{
@@ -12,5 +13,6 @@ namespace FlowerShopContracts.StoragesContracts
ShopViewModel? Insert(ShopBindingModel model);
ShopViewModel? Update(ShopBindingModel model);
ShopViewModel? Delete(ShopBindingModel model);
+ bool MakeSale(IFlowerModel model, int count);
}
}
diff --git a/FlowerShop/FlowerShopContracts/ViewModels/ShopViewModel.cs b/FlowerShop/FlowerShopContracts/ViewModels/ShopViewModel.cs
index 0ff5525..4df47ee 100644
--- a/FlowerShop/FlowerShopContracts/ViewModels/ShopViewModel.cs
+++ b/FlowerShop/FlowerShopContracts/ViewModels/ShopViewModel.cs
@@ -12,10 +12,12 @@ namespace FlowerShopContracts.ViewModels
public string Address { get; set; } = string.Empty;
[DisplayName("Дата открытия")]
public DateTime DateOpening { get; set; } = DateTime.Now;
- public Dictionary Flowers
+ public Dictionary ShopFlowers
{
get;
set;
} = new();
- }
+ [DisplayName("Максимальное количество цветков")]
+ public int MaximumFlowers { get; set; }
+ }
}
diff --git a/FlowerShop/FlowerShopDataModels/Models/IShopModel.cs b/FlowerShop/FlowerShopDataModels/Models/IShopModel.cs
index 1f09b18..abede24 100644
--- a/FlowerShop/FlowerShopDataModels/Models/IShopModel.cs
+++ b/FlowerShop/FlowerShopDataModels/Models/IShopModel.cs
@@ -4,7 +4,8 @@
{
string ShopName { get; }
string Address { get; }
- Dictionary Flowers { get; }
+ Dictionary ShopFlowers { get; }
DateTime DateOpening { get; }
+ int MaximumFlowers { get; }
}
}
\ No newline at end of file
diff --git a/FlowerShop/FlowerShopFileImplement/DataFileSingleton.cs b/FlowerShop/FlowerShopFileImplement/DataFileSingleton.cs
index a3748f5..678896b 100644
--- a/FlowerShop/FlowerShopFileImplement/DataFileSingleton.cs
+++ b/FlowerShop/FlowerShopFileImplement/DataFileSingleton.cs
@@ -9,9 +9,11 @@ namespace FlowerShopFileImplement
private readonly string ComponentFileName = "Component.xml";
private readonly string OrderFileName = "Order.xml";
private readonly string FlowerFileName = "Flower.xml";
- public List Components { get; private set; }
+ private readonly string ShopFileName = "Shop.xml";
+ public List Components { get; private set; }
public List Orders { get; private set; }
public List Flowers { get; private set; }
+ public List Shops { get; private set; }
public static DataFileSingleton GetInstance()
{
if (instance == null)
@@ -23,12 +25,14 @@ namespace FlowerShopFileImplement
public void SaveComponents() => SaveData(Components, ComponentFileName, "Components", x => x.GetXElement);
public void SaveFlowers() => SaveData(Flowers, FlowerFileName, "Flowers", x => x.GetXElement);
public void SaveOrders() => SaveData(Orders, OrderFileName, "Orders", x => x.GetXElement);
- private DataFileSingleton()
+ public void SaveShops() => SaveData(Shops, ShopFileName, "Shops", x => x.GetXElement);
+ private DataFileSingleton()
{
Components = LoadData(ComponentFileName, "Component", x => Component.Create(x)!)!;
Flowers = LoadData(FlowerFileName, "Flower", x => Flower.Create(x)!)!;
Orders = LoadData(OrderFileName, "Order", x => Order.Create(x)!)!;
- }
+ Shops = LoadData(ShopFileName, "Shop", x => Shop.Create(x)!)!;
+ }
private static List? LoadData(string filename, string xmlNodeName, Func selectFunction)
{
if (File.Exists(filename))
diff --git a/FlowerShop/FlowerShopFileImplement/Implements/ShopStorage.cs b/FlowerShop/FlowerShopFileImplement/Implements/ShopStorage.cs
new file mode 100644
index 0000000..5543682
--- /dev/null
+++ b/FlowerShop/FlowerShopFileImplement/Implements/ShopStorage.cs
@@ -0,0 +1,134 @@
+
+using FlowerShopContracts.BindingModels;
+using FlowerShopContracts.SearchModels;
+using FlowerShopContracts.StoragesContracts;
+using FlowerShopContracts.ViewModels;
+using FlowerShopDataModels.Models;
+using FlowerShopFileImplement.Models;
+
+namespace FlowerShopFileImplement.Implements
+{
+ public class ShopStorage : IShopStorage
+ {
+ private readonly DataFileSingleton source;
+
+ public ShopStorage()
+ {
+ source = DataFileSingleton.GetInstance();
+ }
+
+ public List GetFullList()
+ {
+ return source.Shops
+ .Select(x => x.GetViewModel)
+ .ToList();
+ }
+
+ public List GetFilteredList(ShopSearchModel model)
+ {
+ if (string.IsNullOrEmpty(model.ShopName))
+ {
+ return new();
+ }
+ return source.Shops
+ .Where(x => x.ShopName.Contains(model.ShopName))
+ .Select(x => x.GetViewModel)
+ .ToList();
+ }
+
+ public ShopViewModel? GetElement(ShopSearchModel model)
+ {
+ if (string.IsNullOrEmpty(model.ShopName) && !model.Id.HasValue)
+ {
+ return null;
+ }
+ return source.Shops
+ .FirstOrDefault(x => (!string.IsNullOrEmpty(model.ShopName) && x.ShopName == model.ShopName) ||
+ (model.Id.HasValue && x.Id == model.Id))
+ ?.GetViewModel;
+ }
+
+ public ShopViewModel? Insert(ShopBindingModel model)
+ {
+ model.Id = source.Shops.Count > 0 ? source.Shops.Max(x => x.Id) + 1 : 1;
+ var newShop = Shop.Create(model);
+ if (newShop == null)
+ {
+ return null;
+ }
+ source.Shops.Add(newShop);
+ source.SaveShops();
+ return newShop.GetViewModel;
+ }
+
+ public ShopViewModel? Update(ShopBindingModel model)
+ {
+ var shop = source.Shops.FirstOrDefault(x => x.Id == model.Id);
+ if (shop == null)
+ {
+ return null;
+ }
+ shop.Update(model);
+ source.SaveShops();
+ return shop.GetViewModel;
+ }
+
+ public ShopViewModel? Delete(ShopBindingModel model)
+ {
+ var element = source.Shops.FirstOrDefault(x => x.Id == model.Id);
+ if (element != null)
+ {
+ source.Shops.Remove(element);
+ source.SaveShops();
+ return element.GetViewModel;
+ }
+ return null;
+ }
+
+ public bool MakeSale(IFlowerModel model, int count)
+ {
+ // TODO: разобраться
+ var flower = source.Flowers.FirstOrDefault(x => x.Id == model.Id);
+ int countInShops = source.Shops.SelectMany(x => x.ShopFlowers).Sum(y => y.Key == model.Id ? y.Value.Item2 : 0);
+
+ if (flower == null || countInShops < count)
+ {
+ return false;
+ }
+
+ foreach (var shop in source.Shops)
+ {
+ var shopFlowers = shop.ShopFlowers.Where(x => x.Key == model.Id);
+ if (shopFlowers.Any())
+ {
+ var shopFlower = shopFlowers.First();
+ int min = Math.Min(shopFlower.Value.Item2, count);
+ if (min == shopFlower.Value.Item2)
+ {
+ shop.ShopFlowers.Remove(shopFlower.Key);
+ }
+ else
+ {
+ shop.ShopFlowers[shopFlower.Key] = (shopFlower.Value.Item1, shopFlower.Value.Item2 - min);
+ }
+ shop.Update(new ShopBindingModel
+ {
+ Id = shop.Id,
+ ShopName = shop.ShopName,
+ Address = shop.Address,
+ DateOpening = shop.DateOpening,
+ ShopFlowers = shop.ShopFlowers,
+ MaximumFlowers = shop.MaximumFlowers
+ });
+ count -= min;
+ if (count <= 0)
+ {
+ break;
+ }
+ }
+ }
+ source.SaveShops();
+ return true;
+ }
+ }
+}
diff --git a/FlowerShop/FlowerShopFileImplement/Models/Shop.cs b/FlowerShop/FlowerShopFileImplement/Models/Shop.cs
new file mode 100644
index 0000000..8db77b7
--- /dev/null
+++ b/FlowerShop/FlowerShopFileImplement/Models/Shop.cs
@@ -0,0 +1,88 @@
+using FlowerShopContracts.BindingModels;
+using FlowerShopContracts.ViewModels;
+using FlowerShopDataModels.Models;
+using System.Xml.Linq;
+
+namespace FlowerShopFileImplement.Models
+{
+ public class Shop : IShopModel
+ {
+ public int Id { get; private set; }
+ public string ShopName { get; private set; } = string.Empty;
+ public string Address { get; private set; } = string.Empty;
+ public DateTime DateOpening { get; private set; }
+ public Dictionary Flowers { get; private set; } = new();
+ private Dictionary _shopFlowers = null;
+ public Dictionary ShopFlowers
+ {
+ get
+ {
+ if (_shopFlowers == null)
+ {
+ var source = DataFileSingleton.GetInstance();
+ _shopFlowers = Flowers.ToDictionary(x => x.Key,
+ y => ((source.Flowers.FirstOrDefault(z => z.Id == y.Key) as IFlowerModel)!, y.Value));
+ }
+ return _shopFlowers;
+ }
+ }
+ public int MaximumFlowers { get; private set; }
+ public static Shop? Create(ShopBindingModel model)
+ {
+ if (model == null) return null;
+ return new Shop()
+ {
+ Id = model.Id,
+ ShopName = model.ShopName,
+ Address = model.Address,
+ DateOpening = model.DateOpening,
+ Flowers = model.ShopFlowers.ToDictionary(x => x.Key, x => x.Value.Item2),
+ MaximumFlowers = model.MaximumFlowers,
+ };
+ }
+ public static Shop? Create(XElement element)
+ {
+ if (element == null) return null;
+ return new Shop()
+ {
+ Id = Convert.ToInt32(element.Attribute("Id")!.Value),
+ ShopName = element.Element("ShopName")!.Value,
+ Address = element.Element("Address")!.Value,
+ DateOpening = Convert.ToDateTime(element.Element("DateOpening")!.Value),
+ MaximumFlowers = Convert.ToInt32(element.Element("MaximumFlowers")!.Value),
+ Flowers = element.Element("ShopFlowers")!.Elements("ShopFlower")
+ .ToDictionary(x => Convert.ToInt32(x.Element("Key")?.Value), x => Convert.ToInt32(x.Element("Value")?.Value))
+ };
+ }
+ public void Update(ShopBindingModel? model)
+ {
+ if (model == null) return;
+ ShopName = model.ShopName;
+ Address = model.Address;
+ DateOpening = model.DateOpening;
+ MaximumFlowers = model.MaximumFlowers;
+ Flowers = model.ShopFlowers.ToDictionary(x => x.Key, x => x.Value.Item2);
+ _shopFlowers = null;
+ }
+ public ShopViewModel GetViewModel => new()
+ {
+ Id = Id,
+ ShopName = ShopName,
+ Address = Address,
+ DateOpening = DateOpening,
+ MaximumFlowers = MaximumFlowers,
+ ShopFlowers = ShopFlowers,
+ };
+
+ public XElement GetXElement => new("Shop",
+ new XAttribute("Id", Id),
+ new XElement("ShopName", ShopName),
+ new XElement("Address", Address),
+ new XElement("DateOpening", DateOpening.ToString()),
+ new XElement("MaximumFlowers", MaximumFlowers.ToString()),
+ new XElement("ShopFlowers",
+ Flowers.Select(x => new XElement("ShopFlower",
+ new XElement("Key", x.Key),
+ new XElement("Value", x.Value))).ToArray()));
+ }
+}
diff --git a/FlowerShop/FlowerShopListImplement/Implements/ShopStorage.cs b/FlowerShop/FlowerShopListImplement/Implements/ShopStorage.cs
index 3f01ede..a592973 100644
--- a/FlowerShop/FlowerShopListImplement/Implements/ShopStorage.cs
+++ b/FlowerShop/FlowerShopListImplement/Implements/ShopStorage.cs
@@ -2,6 +2,7 @@
using FlowerShopContracts.SearchModels;
using FlowerShopContracts.StoragesContracts;
using FlowerShopContracts.ViewModels;
+using FlowerShopDataModels.Models;
using FlowerShopListImplement.Models;
namespace FlowerShopListImplement.Implements
@@ -105,5 +106,9 @@ namespace FlowerShopListImplement.Implements
}
return null;
}
- }
+ public bool MakeSale(IFlowerModel model, int count)
+ {
+ throw new NotImplementedException();
+ }
+ }
}
diff --git a/FlowerShop/FlowerShopListImplement/Models/Shop.cs b/FlowerShop/FlowerShopListImplement/Models/Shop.cs
index 342b198..cae9d18 100644
--- a/FlowerShop/FlowerShopListImplement/Models/Shop.cs
+++ b/FlowerShop/FlowerShopListImplement/Models/Shop.cs
@@ -10,9 +10,10 @@ namespace FlowerShopListImplement.Models
public string ShopName { get; private set; } = string.Empty;
public string Address { get; private set; } = string.Empty;
public DateTime DateOpening { get; private set; }
- public Dictionary Flowers { get; private set; } = new();
+ public Dictionary ShopFlowers { get; private set; } = new();
+ public int MaximumFlowers { get; private set; }
- public static Shop? Create(ShopBindingModel? model)
+ public static Shop? Create(ShopBindingModel? model)
{
if (model == null)
{
@@ -23,7 +24,9 @@ namespace FlowerShopListImplement.Models
Id = model.Id,
ShopName = model.ShopName,
Address = model.Address,
- DateOpening = model.DateOpening
+ DateOpening = model.DateOpening,
+ ShopFlowers = model.ShopFlowers,
+ MaximumFlowers = model.MaximumFlowers,
};
}
@@ -36,6 +39,8 @@ namespace FlowerShopListImplement.Models
ShopName = model.ShopName;
Address = model.Address;
DateOpening = model.DateOpening;
+ ShopFlowers = model.ShopFlowers;
+ MaximumFlowers = model.MaximumFlowers;
}
public ShopViewModel GetViewModel => new()
@@ -44,7 +49,8 @@ namespace FlowerShopListImplement.Models
ShopName = ShopName,
Address = Address,
DateOpening = DateOpening,
- Flowers = Flowers
+ ShopFlowers = ShopFlowers,
+ MaximumFlowers = MaximumFlowers,
};
}
}