From a5416faf4986ca33081d1e701f3d0e48d99d4899 Mon Sep 17 00:00:00 2001 From: shadowik Date: Wed, 14 Jun 2023 14:25:52 +0400 Subject: [PATCH] Final --- .gitignore | 1 + Pizzeria/Pizzeria/DataGridViewExtension.cs | 1 + Pizzeria/Pizzeria/FormComponents.Designer.cs | 35 ++-- Pizzeria/Pizzeria/FormComponents.cs | 16 +- .../Pizzeria/FormImplementers.Designer.cs | 174 +++++++++--------- Pizzeria/Pizzeria/FormLetter.cs | 5 +- Pizzeria/Pizzeria/FormMail.cs | 3 +- Pizzeria/Pizzeria/FormMain.cs | 37 ++-- Pizzeria/Pizzeria/FormShops.Designer.cs | 26 +-- Pizzeria/Pizzeria/FormShops.cs | 15 +- Pizzeria/Pizzeria/Program.cs | 26 +-- .../BusinessLogics/BusinessLogicExtension.cs | 39 ++++ .../PizzeriaBusinessLogic.csproj | 4 + .../Attributes/ColumnAttribute.cs | 7 +- .../PizzeriaContracts/DI/DependencyManager.cs | 4 +- .../DI/IBusinessLogicExtension.cs | 15 ++ .../DI/ServiceProviderLoader.cs | 39 ++++ .../DI/UnityDependencyContainer.cs | 50 +++++ .../PizzeriaContracts.csproj | 1 + .../ViewModels/ComponentViewModel.cs | 2 +- .../ViewModels/ImplementerViewModel.cs | 6 +- .../ViewModels/MessageInfoViewModel.cs | 2 +- .../ViewModels/OrderViewModel.cs | 6 +- .../ViewModels/PizzaViewModel.cs | 2 +- .../ViewModels/ShopViewModel.cs | 14 +- .../ImplementationExtension.cs | 2 + .../PizzeriaDatabaseImplement/Models/Shop.cs | 13 ++ .../ImplementationExtension.cs | 1 + .../Implements/MessageInfoStorage.cs | 5 + .../Models/MessageInfo.cs | 6 + .../PizzeriaFileImplement/Models/Order.cs | 17 ++ .../PizzeriaFileImplement/Models/Pizza.cs | 9 + Pizzeria/PizzeriaFileImplement/Models/Shop.cs | 13 ++ 33 files changed, 391 insertions(+), 205 deletions(-) create mode 100644 Pizzeria/PizzeriaBusinessLogic/BusinessLogics/BusinessLogicExtension.cs create mode 100644 Pizzeria/PizzeriaContracts/DI/IBusinessLogicExtension.cs create mode 100644 Pizzeria/PizzeriaContracts/DI/UnityDependencyContainer.cs diff --git a/.gitignore b/.gitignore index 38a89f9..d8d637d 100644 --- a/.gitignore +++ b/.gitignore @@ -400,4 +400,5 @@ FodyWeavers.xsd /Pizzeria/ImplementationExtensions +BusinessLogicExtensions /BankExecutor \ No newline at end of file diff --git a/Pizzeria/Pizzeria/DataGridViewExtension.cs b/Pizzeria/Pizzeria/DataGridViewExtension.cs index ce7d461..0e6a924 100644 --- a/Pizzeria/Pizzeria/DataGridViewExtension.cs +++ b/Pizzeria/Pizzeria/DataGridViewExtension.cs @@ -45,6 +45,7 @@ namespace PizzeriaView { column.Width = columnAttr.Width; } + column.DefaultCellStyle.Format = columnAttr.Format; } } } diff --git a/Pizzeria/Pizzeria/FormComponents.Designer.cs b/Pizzeria/Pizzeria/FormComponents.Designer.cs index 878ed95..c103da7 100644 --- a/Pizzeria/Pizzeria/FormComponents.Designer.cs +++ b/Pizzeria/Pizzeria/FormComponents.Designer.cs @@ -43,13 +43,12 @@ this.dataGridView.AllowUserToAddRows = false; this.dataGridView.AllowUserToDeleteRows = false; this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dataGridView.Location = new System.Drawing.Point(10, 9); - this.dataGridView.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.dataGridView.Location = new System.Drawing.Point(11, 12); this.dataGridView.Name = "dataGridView"; this.dataGridView.ReadOnly = true; this.dataGridView.RowHeadersWidth = 51; this.dataGridView.RowTemplate.Height = 29; - this.dataGridView.Size = new System.Drawing.Size(516, 320); + this.dataGridView.Size = new System.Drawing.Size(590, 427); this.dataGridView.TabIndex = 0; // // ToolsPanel @@ -58,18 +57,16 @@ this.ToolsPanel.Controls.Add(this.buttonDelete); this.ToolsPanel.Controls.Add(this.buttonEdit); this.ToolsPanel.Controls.Add(this.buttonAdd); - this.ToolsPanel.Location = new System.Drawing.Point(532, 9); - this.ToolsPanel.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.ToolsPanel.Location = new System.Drawing.Point(608, 12); this.ToolsPanel.Name = "ToolsPanel"; - this.ToolsPanel.Size = new System.Drawing.Size(158, 320); + this.ToolsPanel.Size = new System.Drawing.Size(181, 427); this.ToolsPanel.TabIndex = 1; // // buttonUpdate // - this.buttonUpdate.Location = new System.Drawing.Point(27, 154); - this.buttonUpdate.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.buttonUpdate.Location = new System.Drawing.Point(31, 205); this.buttonUpdate.Name = "buttonUpdate"; - this.buttonUpdate.Size = new System.Drawing.Size(110, 27); + this.buttonUpdate.Size = new System.Drawing.Size(126, 36); this.buttonUpdate.TabIndex = 3; this.buttonUpdate.Text = "Обновить"; this.buttonUpdate.UseVisualStyleBackColor = true; @@ -77,10 +74,9 @@ // // buttonDelete // - this.buttonDelete.Location = new System.Drawing.Point(27, 106); - this.buttonDelete.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.buttonDelete.Location = new System.Drawing.Point(31, 141); this.buttonDelete.Name = "buttonDelete"; - this.buttonDelete.Size = new System.Drawing.Size(110, 27); + this.buttonDelete.Size = new System.Drawing.Size(126, 36); this.buttonDelete.TabIndex = 2; this.buttonDelete.Text = "Удалить"; this.buttonDelete.UseVisualStyleBackColor = true; @@ -88,10 +84,9 @@ // // buttonEdit // - this.buttonEdit.Location = new System.Drawing.Point(27, 57); - this.buttonEdit.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.buttonEdit.Location = new System.Drawing.Point(31, 76); this.buttonEdit.Name = "buttonEdit"; - this.buttonEdit.Size = new System.Drawing.Size(110, 27); + this.buttonEdit.Size = new System.Drawing.Size(126, 36); this.buttonEdit.TabIndex = 1; this.buttonEdit.Text = "Изменить"; this.buttonEdit.UseVisualStyleBackColor = true; @@ -99,10 +94,9 @@ // // buttonAdd // - this.buttonAdd.Location = new System.Drawing.Point(27, 12); - this.buttonAdd.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.buttonAdd.Location = new System.Drawing.Point(31, 16); this.buttonAdd.Name = "buttonAdd"; - this.buttonAdd.Size = new System.Drawing.Size(110, 27); + this.buttonAdd.Size = new System.Drawing.Size(126, 36); this.buttonAdd.TabIndex = 0; this.buttonAdd.Text = "Добавить"; this.buttonAdd.UseVisualStyleBackColor = true; @@ -110,12 +104,11 @@ // // FormComponents // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(700, 338); + this.ClientSize = new System.Drawing.Size(800, 451); this.Controls.Add(this.ToolsPanel); this.Controls.Add(this.dataGridView); - this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.Name = "FormComponents"; this.Text = "Ингредиенты"; this.Load += new System.EventHandler(this.FormComponents_Load); diff --git a/Pizzeria/Pizzeria/FormComponents.cs b/Pizzeria/Pizzeria/FormComponents.cs index d4ee42b..f12b217 100644 --- a/Pizzeria/Pizzeria/FormComponents.cs +++ b/Pizzeria/Pizzeria/FormComponents.cs @@ -33,21 +33,13 @@ namespace PizzeriaView { try { - var list = _logic.ReadList(null); - if (list != null) - { - dataGridView.DataSource = list; - dataGridView.Columns["Id"].Visible = false; - dataGridView.Columns["ComponentName"].AutoSizeMode = - DataGridViewAutoSizeColumnMode.Fill; - } - _logger.LogInformation("Загрузка ингридиентов"); + dataGridView.FillAndConfigGrid(_logic.ReadList(null)); + _logger.LogInformation("Загрузка компонентов"); } catch (Exception ex) { - _logger.LogError(ex, "Ошибка загрузки ингридиентов"); - MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, - MessageBoxIcon.Error); + _logger.LogError(ex, "Ошибка загрузки компонентов"); + MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void ButtonAdd_Click(object sender, EventArgs e) diff --git a/Pizzeria/Pizzeria/FormImplementers.Designer.cs b/Pizzeria/Pizzeria/FormImplementers.Designer.cs index 6f744d9..9cbb512 100644 --- a/Pizzeria/Pizzeria/FormImplementers.Designer.cs +++ b/Pizzeria/Pizzeria/FormImplementers.Designer.cs @@ -28,93 +28,93 @@ /// private void InitializeComponent() { - this.ToolsPanel = new System.Windows.Forms.Panel(); - this.buttonRef = new System.Windows.Forms.Button(); - this.buttonDel = new System.Windows.Forms.Button(); - this.buttonUpd = new System.Windows.Forms.Button(); - this.buttonAdd = new System.Windows.Forms.Button(); - this.dataGridView = new System.Windows.Forms.DataGridView(); - this.ToolsPanel.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit(); - this.SuspendLayout(); - // - // ToolsPanel - // - this.ToolsPanel.Controls.Add(this.buttonRef); - this.ToolsPanel.Controls.Add(this.buttonDel); - this.ToolsPanel.Controls.Add(this.buttonUpd); - this.ToolsPanel.Controls.Add(this.buttonAdd); - this.ToolsPanel.Location = new System.Drawing.Point(608, 12); - this.ToolsPanel.Name = "ToolsPanel"; - this.ToolsPanel.Size = new System.Drawing.Size(180, 426); - this.ToolsPanel.TabIndex = 3; - // - // buttonRef - // - this.buttonRef.Location = new System.Drawing.Point(31, 206); - this.buttonRef.Name = "buttonRef"; - this.buttonRef.Size = new System.Drawing.Size(126, 36); - this.buttonRef.TabIndex = 3; - this.buttonRef.Text = "Обновить"; - this.buttonRef.UseVisualStyleBackColor = true; - this.buttonRef.Click += new System.EventHandler(this.buttonRef_Click); - // - // buttonDel - // - this.buttonDel.Location = new System.Drawing.Point(31, 142); - this.buttonDel.Name = "buttonDel"; - this.buttonDel.Size = new System.Drawing.Size(126, 36); - this.buttonDel.TabIndex = 2; - this.buttonDel.Text = "Удалить"; - this.buttonDel.UseVisualStyleBackColor = true; - this.buttonDel.Click += new System.EventHandler(this.buttonDel_Click); - // - // buttonUpd - // - this.buttonUpd.Location = new System.Drawing.Point(31, 76); - this.buttonUpd.Name = "buttonUpd"; - this.buttonUpd.Size = new System.Drawing.Size(126, 36); - this.buttonUpd.TabIndex = 1; - this.buttonUpd.Text = "Изменить"; - this.buttonUpd.UseVisualStyleBackColor = true; - this.buttonUpd.Click += new System.EventHandler(this.buttonUpd_Click); - // - // buttonAdd - // - this.buttonAdd.Location = new System.Drawing.Point(31, 16); - this.buttonAdd.Name = "buttonAdd"; - this.buttonAdd.Size = new System.Drawing.Size(126, 36); - this.buttonAdd.TabIndex = 0; - this.buttonAdd.Text = "Добавить"; - this.buttonAdd.UseVisualStyleBackColor = true; - this.buttonAdd.Click += new System.EventHandler(this.buttonAdd_Click); - // - // dataGridView - // - this.dataGridView.AllowUserToAddRows = false; - this.dataGridView.AllowUserToDeleteRows = false; - this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dataGridView.Location = new System.Drawing.Point(12, 12); - this.dataGridView.Name = "dataGridView"; - this.dataGridView.ReadOnly = true; - this.dataGridView.RowHeadersWidth = 51; - this.dataGridView.RowTemplate.Height = 29; - this.dataGridView.Size = new System.Drawing.Size(590, 426); - this.dataGridView.TabIndex = 2; - // - // FormImplementers - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Controls.Add(this.ToolsPanel); - this.Controls.Add(this.dataGridView); - this.Name = "FormImplementers"; - this.Text = "Исполнители"; - this.Load += new System.EventHandler(this.FormImplementers_Load); - this.ToolsPanel.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit(); - this.ResumeLayout(false); + this.ToolsPanel = new System.Windows.Forms.Panel(); + this.buttonRef = new System.Windows.Forms.Button(); + this.buttonDel = new System.Windows.Forms.Button(); + this.buttonUpd = new System.Windows.Forms.Button(); + this.buttonAdd = new System.Windows.Forms.Button(); + this.dataGridView = new System.Windows.Forms.DataGridView(); + this.ToolsPanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit(); + this.SuspendLayout(); + // + // ToolsPanel + // + this.ToolsPanel.Controls.Add(this.buttonRef); + this.ToolsPanel.Controls.Add(this.buttonDel); + this.ToolsPanel.Controls.Add(this.buttonUpd); + this.ToolsPanel.Controls.Add(this.buttonAdd); + this.ToolsPanel.Location = new System.Drawing.Point(992, 12); + this.ToolsPanel.Name = "ToolsPanel"; + this.ToolsPanel.Size = new System.Drawing.Size(180, 426); + this.ToolsPanel.TabIndex = 3; + // + // buttonRef + // + this.buttonRef.Location = new System.Drawing.Point(31, 206); + this.buttonRef.Name = "buttonRef"; + this.buttonRef.Size = new System.Drawing.Size(126, 36); + this.buttonRef.TabIndex = 3; + this.buttonRef.Text = "Обновить"; + this.buttonRef.UseVisualStyleBackColor = true; + this.buttonRef.Click += new System.EventHandler(this.buttonRef_Click); + // + // buttonDel + // + this.buttonDel.Location = new System.Drawing.Point(31, 142); + this.buttonDel.Name = "buttonDel"; + this.buttonDel.Size = new System.Drawing.Size(126, 36); + this.buttonDel.TabIndex = 2; + this.buttonDel.Text = "Удалить"; + this.buttonDel.UseVisualStyleBackColor = true; + this.buttonDel.Click += new System.EventHandler(this.buttonDel_Click); + // + // buttonUpd + // + this.buttonUpd.Location = new System.Drawing.Point(31, 76); + this.buttonUpd.Name = "buttonUpd"; + this.buttonUpd.Size = new System.Drawing.Size(126, 36); + this.buttonUpd.TabIndex = 1; + this.buttonUpd.Text = "Изменить"; + this.buttonUpd.UseVisualStyleBackColor = true; + this.buttonUpd.Click += new System.EventHandler(this.buttonUpd_Click); + // + // buttonAdd + // + this.buttonAdd.Location = new System.Drawing.Point(31, 16); + this.buttonAdd.Name = "buttonAdd"; + this.buttonAdd.Size = new System.Drawing.Size(126, 36); + this.buttonAdd.TabIndex = 0; + this.buttonAdd.Text = "Добавить"; + this.buttonAdd.UseVisualStyleBackColor = true; + this.buttonAdd.Click += new System.EventHandler(this.buttonAdd_Click); + // + // dataGridView + // + this.dataGridView.AllowUserToAddRows = false; + this.dataGridView.AllowUserToDeleteRows = false; + this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView.Location = new System.Drawing.Point(12, 12); + this.dataGridView.Name = "dataGridView"; + this.dataGridView.ReadOnly = true; + this.dataGridView.RowHeadersWidth = 51; + this.dataGridView.RowTemplate.Height = 29; + this.dataGridView.Size = new System.Drawing.Size(957, 426); + this.dataGridView.TabIndex = 2; + // + // FormImplementers + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1206, 450); + this.Controls.Add(this.ToolsPanel); + this.Controls.Add(this.dataGridView); + this.Name = "FormImplementers"; + this.Text = "Исполнители"; + this.Load += new System.EventHandler(this.FormImplementers_Load); + this.ToolsPanel.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit(); + this.ResumeLayout(false); } diff --git a/Pizzeria/Pizzeria/FormLetter.cs b/Pizzeria/Pizzeria/FormLetter.cs index ab99227..04afdfa 100644 --- a/Pizzeria/Pizzeria/FormLetter.cs +++ b/Pizzeria/Pizzeria/FormLetter.cs @@ -3,6 +3,7 @@ using Pizzeria; using PizzeriaBusinessLogic.MailWorker; using PizzeriaContracts.BindingModels; using PizzeriaContracts.BusinessLogicsContracts; +using PizzeriaContracts.DI; using PizzeriaContracts.SearchModels; using PizzeriaContracts.ViewModels; using System; @@ -109,8 +110,8 @@ namespace PizzeriaView private void buttonReply_Click(object sender, EventArgs e) { - var service = Program.ServiceProvider?.GetService(typeof(FormLetter)); - if (service is FormLetter form) + var service = DependencyManager.Instance.Resolve(); + if (service is FormLetter form) { if(!string.IsNullOrEmpty(model.ReplyMessageId)) { form.messageId = model.ReplyMessageId; diff --git a/Pizzeria/Pizzeria/FormMail.cs b/Pizzeria/Pizzeria/FormMail.cs index 50ce6b8..ac6a067 100644 --- a/Pizzeria/Pizzeria/FormMail.cs +++ b/Pizzeria/Pizzeria/FormMail.cs @@ -4,6 +4,7 @@ using Pizzeria; using PizzeriaBusinessLogic.BusinessLogics; using PizzeriaContracts.BindingModels; using PizzeriaContracts.BusinessLogicsContracts; +using PizzeriaContracts.DI; using PizzeriaContracts.SearchModels; using System; using System.Collections.Generic; @@ -55,7 +56,7 @@ namespace PizzeriaView if (dataGridView.SelectedRows.Count <= 0) return; - var service = Program.ServiceProvider?.GetService(typeof(FormLetter)); + var service = DependencyManager.Instance.Resolve(); if (service is FormLetter form) { string? messageId = dataGridView.SelectedRows[0].Cells["MessageId"].Value.ToString(); diff --git a/Pizzeria/Pizzeria/FormMain.cs b/Pizzeria/Pizzeria/FormMain.cs index f5aae3d..509bbd7 100644 --- a/Pizzeria/Pizzeria/FormMain.cs +++ b/Pizzeria/Pizzeria/FormMain.cs @@ -161,29 +161,21 @@ namespace PizzeriaView private void shopsToolStripMenuItem_Click(object sender, EventArgs e) { - var service = Program.ServiceProvider?.GetService(typeof(FormShops)); - if (service is FormShops form) - { - form.ShowDialog(); - } + var form = DependencyManager.Instance.Resolve(); + form.ShowDialog(); + } private void transactionToolStripMenuItem_Click(object sender, EventArgs e) { - var service = Program.ServiceProvider?.GetService(typeof(FormCreateSupply)); - if (service is FormCreateSupply form) - { - form.ShowDialog(); - } + var form = DependencyManager.Instance.Resolve(); + form.ShowDialog(); } private void SellToolStripMenuItem_Click(object sender, EventArgs e) { - var service = Program.ServiceProvider?.GetService(typeof(FormSellPizza)); - if (service is FormSellPizza form) - { - form.ShowDialog(); - } + var form = DependencyManager.Instance.Resolve(); + form.ShowDialog(); } private void InfoToolStripMenuItem_Click(object sender, EventArgs e) @@ -198,20 +190,15 @@ namespace PizzeriaView private void BusyShopsToolStripMenuItem_Click(object sender, EventArgs e) { - var service = Program.ServiceProvider?.GetService(typeof(FormReportShop)); - if (service is FormReportShop form) - { - form.ShowDialog(); - } + var form = DependencyManager.Instance.Resolve(); + form.ShowDialog(); } private void GroupOrdersToolStripMenuItem_Click(object sender, EventArgs e) { - var service = Program.ServiceProvider?.GetService(typeof(FormReportGroupedOrders)); - if (service is FormReportGroupedOrders form) - { - form.ShowDialog(); - } + var form = DependencyManager.Instance.Resolve(); + form.ShowDialog(); + } private void ClientToolStripMenuItem_Click(object sender, EventArgs e) diff --git a/Pizzeria/Pizzeria/FormShops.Designer.cs b/Pizzeria/Pizzeria/FormShops.Designer.cs index 3af7c45..05cb888 100644 --- a/Pizzeria/Pizzeria/FormShops.Designer.cs +++ b/Pizzeria/Pizzeria/FormShops.Designer.cs @@ -44,16 +44,16 @@ this.ToolsPanel.Controls.Add(this.buttonDel); this.ToolsPanel.Controls.Add(this.buttonUpd); this.ToolsPanel.Controls.Add(this.buttonAdd); - this.ToolsPanel.Location = new System.Drawing.Point(608, 12); + this.ToolsPanel.Location = new System.Drawing.Point(676, 12); this.ToolsPanel.Name = "ToolsPanel"; - this.ToolsPanel.Size = new System.Drawing.Size(180, 426); + this.ToolsPanel.Size = new System.Drawing.Size(180, 406); this.ToolsPanel.TabIndex = 3; // // buttonRef // - this.buttonRef.Location = new System.Drawing.Point(31, 206); + this.buttonRef.Location = new System.Drawing.Point(31, 196); this.buttonRef.Name = "buttonRef"; - this.buttonRef.Size = new System.Drawing.Size(126, 36); + this.buttonRef.Size = new System.Drawing.Size(126, 34); this.buttonRef.TabIndex = 3; this.buttonRef.Text = "Обновить"; this.buttonRef.UseVisualStyleBackColor = true; @@ -61,9 +61,9 @@ // // buttonDel // - this.buttonDel.Location = new System.Drawing.Point(31, 142); + this.buttonDel.Location = new System.Drawing.Point(31, 135); this.buttonDel.Name = "buttonDel"; - this.buttonDel.Size = new System.Drawing.Size(126, 36); + this.buttonDel.Size = new System.Drawing.Size(126, 34); this.buttonDel.TabIndex = 2; this.buttonDel.Text = "Удалить"; this.buttonDel.UseVisualStyleBackColor = true; @@ -71,9 +71,9 @@ // // buttonUpd // - this.buttonUpd.Location = new System.Drawing.Point(31, 76); + this.buttonUpd.Location = new System.Drawing.Point(31, 72); this.buttonUpd.Name = "buttonUpd"; - this.buttonUpd.Size = new System.Drawing.Size(126, 36); + this.buttonUpd.Size = new System.Drawing.Size(126, 34); this.buttonUpd.TabIndex = 1; this.buttonUpd.Text = "Изменить"; this.buttonUpd.UseVisualStyleBackColor = true; @@ -81,9 +81,9 @@ // // buttonAdd // - this.buttonAdd.Location = new System.Drawing.Point(31, 16); + this.buttonAdd.Location = new System.Drawing.Point(31, 15); this.buttonAdd.Name = "buttonAdd"; - this.buttonAdd.Size = new System.Drawing.Size(126, 36); + this.buttonAdd.Size = new System.Drawing.Size(126, 34); this.buttonAdd.TabIndex = 0; this.buttonAdd.Text = "Добавить"; this.buttonAdd.UseVisualStyleBackColor = true; @@ -94,19 +94,19 @@ this.dataGridView.AllowUserToAddRows = false; this.dataGridView.AllowUserToDeleteRows = false; this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dataGridView.Location = new System.Drawing.Point(12, 12); + this.dataGridView.Location = new System.Drawing.Point(12, 11); this.dataGridView.Name = "dataGridView"; this.dataGridView.ReadOnly = true; this.dataGridView.RowHeadersWidth = 51; this.dataGridView.RowTemplate.Height = 29; - this.dataGridView.Size = new System.Drawing.Size(590, 426); + this.dataGridView.Size = new System.Drawing.Size(649, 415); this.dataGridView.TabIndex = 2; // // FormShops // this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); + this.ClientSize = new System.Drawing.Size(868, 429); this.Controls.Add(this.ToolsPanel); this.Controls.Add(this.dataGridView); this.Name = "FormShops"; diff --git a/Pizzeria/Pizzeria/FormShops.cs b/Pizzeria/Pizzeria/FormShops.cs index 4b1bd7c..cdc2ac1 100644 --- a/Pizzeria/Pizzeria/FormShops.cs +++ b/Pizzeria/Pizzeria/FormShops.cs @@ -2,6 +2,7 @@ using Pizzeria; using PizzeriaContracts.BindingModels; using PizzeriaContracts.BusinessLogicsContracts; +using PizzeriaContracts.DI; using System; using System.Collections.Generic; using System.ComponentModel; @@ -32,15 +33,7 @@ namespace PizzeriaView { try { - var list = _logic.ReadList(null); - if (list != null) - { - dataGridView.DataSource = list; - dataGridView.Columns["Id"].Visible = false; - dataGridView.Columns["ShopPizzas"].Visible= false; - dataGridView.Columns["ShopName"].AutoSizeMode = - DataGridViewAutoSizeColumnMode.Fill; - } + dataGridView.FillAndConfigGrid(_logic.ReadList(null)); _logger.LogInformation("Загрузка магазинов"); } catch (Exception ex) @@ -51,7 +44,7 @@ namespace PizzeriaView } private void ButtonAdd_Click(object sender, EventArgs e) { - var service = Program.ServiceProvider?.GetService(typeof(FormShop)); + var service = DependencyManager.Instance.Resolve(); if (service is FormShop form) { if (form.ShowDialog() == DialogResult.OK) @@ -64,7 +57,7 @@ namespace PizzeriaView { if (dataGridView.SelectedRows.Count == 1) { - var service = Program.ServiceProvider?.GetService(typeof(FormShop)); + var service = DependencyManager.Instance.Resolve(); if (service is FormShop form) { form.Id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value); diff --git a/Pizzeria/Pizzeria/Program.cs b/Pizzeria/Pizzeria/Program.cs index eb0c0c5..bbc62e5 100644 --- a/Pizzeria/Pizzeria/Program.cs +++ b/Pizzeria/Pizzeria/Program.cs @@ -45,7 +45,7 @@ namespace Pizzeria }); // todo Delete email to fine work - var timer = new System.Threading.Timer(new TimerCallback(MailCheck!), null, 0, 100000); + //var timer = new System.Threading.Timer(new TimerCallback(MailCheck!), null, 0, 100000); } catch (Exception ex) { @@ -65,22 +65,6 @@ namespace Pizzeria option.AddNLog("nlog.config"); }); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(true); - - DependencyManager.Instance.RegisterType(); - DependencyManager.Instance.RegisterType(); DependencyManager.Instance.RegisterType(); DependencyManager.Instance.RegisterType(); @@ -94,6 +78,14 @@ namespace Pizzeria DependencyManager.Instance.RegisterType(); DependencyManager.Instance.RegisterType(); DependencyManager.Instance.RegisterType(); + + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); } private static void MailCheck(object obj) => DependencyManager.Instance.Resolve()?.MailCheck(); diff --git a/Pizzeria/PizzeriaBusinessLogic/BusinessLogics/BusinessLogicExtension.cs b/Pizzeria/PizzeriaBusinessLogic/BusinessLogics/BusinessLogicExtension.cs new file mode 100644 index 0000000..4eb7d53 --- /dev/null +++ b/Pizzeria/PizzeriaBusinessLogic/BusinessLogics/BusinessLogicExtension.cs @@ -0,0 +1,39 @@ +using PizzeriaBusinessLogic.Implements; +using PizzeriaBusinessLogic.MailWorker; +using PizzeriaBusinessLogic.OfficePackage; +using PizzeriaContracts.BusinessLogicsContracts; +using PizzeriaContracts.DI; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PizzeriaBusinessLogic.BusinessLogics +{ + public class BusinessLogicExtension : IBusinessLogicExtension + { + public int Priority => 0; + + public void RegisterServices() + { + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + + + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(true); + + DependencyManager.Instance.RegisterType(); + } + } +} diff --git a/Pizzeria/PizzeriaBusinessLogic/PizzeriaBusinessLogic.csproj b/Pizzeria/PizzeriaBusinessLogic/PizzeriaBusinessLogic.csproj index c447d6f..d5cc669 100644 --- a/Pizzeria/PizzeriaBusinessLogic/PizzeriaBusinessLogic.csproj +++ b/Pizzeria/PizzeriaBusinessLogic/PizzeriaBusinessLogic.csproj @@ -13,6 +13,10 @@ + + + + diff --git a/Pizzeria/PizzeriaContracts/Attributes/ColumnAttribute.cs b/Pizzeria/PizzeriaContracts/Attributes/ColumnAttribute.cs index 3e1ba95..4b05d67 100644 --- a/Pizzeria/PizzeriaContracts/Attributes/ColumnAttribute.cs +++ b/Pizzeria/PizzeriaContracts/Attributes/ColumnAttribute.cs @@ -13,13 +13,18 @@ public bool IsUseAutoSize { get; private set; } - public ColumnAttribute(string title = "", bool visible = true, int width = 0, GridViewAutoSize gridViewAutoSize = GridViewAutoSize.None, bool isUseAutoSize = false) + public string Format { get; private set; } + + public ColumnAttribute(string title = "", bool visible = true, int width = 0, + GridViewAutoSize gridViewAutoSize = GridViewAutoSize.None, bool isUseAutoSize = false, + string format = "") { Title = title; Visible = visible; Width = width; GridViewAutoSize = gridViewAutoSize; IsUseAutoSize = isUseAutoSize; + Format = format; } } } diff --git a/Pizzeria/PizzeriaContracts/DI/DependencyManager.cs b/Pizzeria/PizzeriaContracts/DI/DependencyManager.cs index 19c4a59..4f4e4be 100644 --- a/Pizzeria/PizzeriaContracts/DI/DependencyManager.cs +++ b/Pizzeria/PizzeriaContracts/DI/DependencyManager.cs @@ -28,12 +28,14 @@ namespace PizzeriaContracts.DI public static void InitDependency() { var ext = ServiceProviderLoader.GetImplementationExtensions(); - if (ext == null) + var extLogic = ServiceProviderLoader.GetBusinessLogicExtensions(); + if (ext == null || extLogic == null) { throw new ArgumentNullException("Отсутствуют компоненты для загрузки зависимостей по модулям"); } // регистрируем зависимости ext.RegisterServices(); + extLogic.RegisterServices(); } /// diff --git a/Pizzeria/PizzeriaContracts/DI/IBusinessLogicExtension.cs b/Pizzeria/PizzeriaContracts/DI/IBusinessLogicExtension.cs new file mode 100644 index 0000000..bf2243c --- /dev/null +++ b/Pizzeria/PizzeriaContracts/DI/IBusinessLogicExtension.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PizzeriaContracts.DI +{ + public interface IBusinessLogicExtension + { + public int Priority { get; } + + public void RegisterServices(); + } +} diff --git a/Pizzeria/PizzeriaContracts/DI/ServiceProviderLoader.cs b/Pizzeria/PizzeriaContracts/DI/ServiceProviderLoader.cs index 80b8801..8720a0f 100644 --- a/Pizzeria/PizzeriaContracts/DI/ServiceProviderLoader.cs +++ b/Pizzeria/PizzeriaContracts/DI/ServiceProviderLoader.cs @@ -42,6 +42,35 @@ namespace PizzeriaContracts.DI return source; } + public static IBusinessLogicExtension? GetBusinessLogicExtensions() + { + IBusinessLogicExtension? source = null; + var files = Directory.GetFiles(TryGetBusinessLogicExtensionsFolder(), "*.dll", SearchOption.AllDirectories); + foreach (var file in files.Distinct()) + { + Assembly asm = Assembly.LoadFrom(file); + foreach (var t in asm.GetExportedTypes()) + { + if (t.IsClass && typeof(IBusinessLogicExtension).IsAssignableFrom(t)) + { + if (source == null) + { + source = (IBusinessLogicExtension)Activator.CreateInstance(t)!; + } + else + { + var newSource = (IBusinessLogicExtension)Activator.CreateInstance(t)!; + if (newSource.Priority > source.Priority) + { + source = newSource; + } + } + } + } + } + return source; + } + private static string TryGetImplementationExtensionsFolder() { var directory = new DirectoryInfo(Directory.GetCurrentDirectory()); @@ -51,5 +80,15 @@ namespace PizzeriaContracts.DI } return $"{directory?.FullName}\\ImplementationExtensions"; } + + private static string TryGetBusinessLogicExtensionsFolder() + { + var directory = new DirectoryInfo(Directory.GetCurrentDirectory()); + while (directory != null && !directory.GetDirectories("BusinessLogicExtensions", SearchOption.AllDirectories).Any(x => x.Name == "BusinessLogicExtensions")) + { + directory = directory.Parent; + } + return $"{directory?.FullName}\\BusinessLogicExtensions"; + } } } diff --git a/Pizzeria/PizzeriaContracts/DI/UnityDependencyContainer.cs b/Pizzeria/PizzeriaContracts/DI/UnityDependencyContainer.cs new file mode 100644 index 0000000..e3158a7 --- /dev/null +++ b/Pizzeria/PizzeriaContracts/DI/UnityDependencyContainer.cs @@ -0,0 +1,50 @@ +using Microsoft.Extensions.Logging; +using Unity; +using Unity.Microsoft.Logging; + +namespace PizzeriaContracts.DI +{ + public class UnityDependencyContainer : IDependencyContainer + { + private readonly UnityContainer _container; + + public UnityDependencyContainer() + { + _container = new UnityContainer(); + } + + public void AddLogging(Action configure) + { + _container.AddExtension(new LoggingExtension(LoggerFactory.Create(configure))); + } + + public void RegisterType(bool isSingle) where U : class, T where T : class + { + if (isSingle) + { + _container.RegisterSingleton(); + } + else + { + _container.RegisterType(); + } + } + + public void RegisterType(bool isSingle) where T : class + { + if (isSingle) + { + _container.RegisterSingleton(); + } + else + { + _container.RegisterType(); + } + } + + public T Resolve() + { + return _container.Resolve(); + } + } +} diff --git a/Pizzeria/PizzeriaContracts/PizzeriaContracts.csproj b/Pizzeria/PizzeriaContracts/PizzeriaContracts.csproj index d9dbbe7..0c974f5 100644 --- a/Pizzeria/PizzeriaContracts/PizzeriaContracts.csproj +++ b/Pizzeria/PizzeriaContracts/PizzeriaContracts.csproj @@ -8,6 +8,7 @@ + diff --git a/Pizzeria/PizzeriaContracts/ViewModels/ComponentViewModel.cs b/Pizzeria/PizzeriaContracts/ViewModels/ComponentViewModel.cs index 78ef9ec..45cfe16 100644 --- a/Pizzeria/PizzeriaContracts/ViewModels/ComponentViewModel.cs +++ b/Pizzeria/PizzeriaContracts/ViewModels/ComponentViewModel.cs @@ -10,7 +10,7 @@ namespace PizzeriaContracts.ViewModels public int Id { get; set; } [Column(title: "Название ингридиента", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)] public string ComponentName { get; set; } = string.Empty; - [Column(title: "Цена", width: 150)] + [Column(title: "Цена", width: 150, format: "c")] public double Cost { get; set; } } } diff --git a/Pizzeria/PizzeriaContracts/ViewModels/ImplementerViewModel.cs b/Pizzeria/PizzeriaContracts/ViewModels/ImplementerViewModel.cs index 7436e02..f059e52 100644 --- a/Pizzeria/PizzeriaContracts/ViewModels/ImplementerViewModel.cs +++ b/Pizzeria/PizzeriaContracts/ViewModels/ImplementerViewModel.cs @@ -14,16 +14,16 @@ namespace PizzeriaContracts.ViewModels [Column(visible: false)] public int Id { get; set; } - [Column(title: "ФИО исполнителя", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)] + [Column(title: "ФИО исполнителя", width: 300)] public string ImplementerFIO { get; set; } = string.Empty; [Column(title: "Пароль", width: 100)] public string Password { get; set; } = string.Empty; - [Column(title: "Стаж работы", width: 60)] + [Column(title: "Стаж работы", width: 100)] public int WorkExperience { get; set; } - [Column(title: "Квалификация", width: 60)] + [Column(title: "Квалификация", width: 100)] public int Qualification { get; set; } } } diff --git a/Pizzeria/PizzeriaContracts/ViewModels/MessageInfoViewModel.cs b/Pizzeria/PizzeriaContracts/ViewModels/MessageInfoViewModel.cs index 4b51eb7..5a4f211 100644 --- a/Pizzeria/PizzeriaContracts/ViewModels/MessageInfoViewModel.cs +++ b/Pizzeria/PizzeriaContracts/ViewModels/MessageInfoViewModel.cs @@ -23,7 +23,7 @@ namespace PizzeriaContracts.ViewModels [Column(title: "Отправитель", width: 150)] public string SenderName { get; set; } = string.Empty; - [Column(title: "Дата письма", width: 120)] + [Column(title: "Дата письма", width: 120, format: "g")] public DateTime DateDelivery { get; set; } [Column(title: "Заголовок", width: 120)] diff --git a/Pizzeria/PizzeriaContracts/ViewModels/OrderViewModel.cs b/Pizzeria/PizzeriaContracts/ViewModels/OrderViewModel.cs index 0ebb043..6d42d61 100644 --- a/Pizzeria/PizzeriaContracts/ViewModels/OrderViewModel.cs +++ b/Pizzeria/PizzeriaContracts/ViewModels/OrderViewModel.cs @@ -34,16 +34,16 @@ namespace PizzeriaContracts.ViewModels [Column(title: "Количество", width: 100)] public int Count { get; set; } - [Column(title: "Сумма", width: 120)] + [Column(title: "Сумма", width: 120, format: "c")] public double Sum { get; set; } [Column(title: "Статус", width: 70)] public OrderStatus Status { get; set; } = OrderStatus.Неизвестен; - [Column(title: "Дата создания", width: 120)] + [Column(title: "Дата создания", width: 120, format: "g")] public DateTime DateCreate { get; set; } = DateTime.Now; - [Column(title: "Дата выполнения", width: 120)] + [Column(title: "Дата выполнения", width: 120, format: "g")] public DateTime? DateImplement { get; set; } } } diff --git a/Pizzeria/PizzeriaContracts/ViewModels/PizzaViewModel.cs b/Pizzeria/PizzeriaContracts/ViewModels/PizzaViewModel.cs index 00de876..d89670c 100644 --- a/Pizzeria/PizzeriaContracts/ViewModels/PizzaViewModel.cs +++ b/Pizzeria/PizzeriaContracts/ViewModels/PizzaViewModel.cs @@ -12,7 +12,7 @@ namespace PizzeriaContracts.ViewModels [Column(title: "Название пиццы", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)] public string PizzaName { get; set; } = string.Empty; - [Column(title: "Цена", width: 70)] + [Column(title: "Цена", width: 70, format: "c2")] public double Price { get; set; } [Column(visible: false)] diff --git a/Pizzeria/PizzeriaContracts/ViewModels/ShopViewModel.cs b/Pizzeria/PizzeriaContracts/ViewModels/ShopViewModel.cs index d14e944..9ff832f 100644 --- a/Pizzeria/PizzeriaContracts/ViewModels/ShopViewModel.cs +++ b/Pizzeria/PizzeriaContracts/ViewModels/ShopViewModel.cs @@ -1,4 +1,5 @@ -using PizzeriaDataModels.Models; +using PizzeriaContracts.Attributes; +using PizzeriaDataModels.Models; using System; using System.Collections.Generic; using System.ComponentModel; @@ -10,15 +11,18 @@ namespace PizzeriaContracts.ViewModels { public class ShopViewModel : IShopModel { + [Column(visible: false)] public int Id { get; set; } - [DisplayName("Название")] + [Column(title: "Магазин", width: 200)] public string ShopName { get; set; } = string.Empty; - [DisplayName("Адрес")] + [Column(title: "Адрес", width: 100)] public string Adress { get; set; } = string.Empty; - [DisplayName("Дата открытия")] + [Column(title: "Дата открытия", width: 100, format: "d")] public DateTime OpeningDate { get; set; } + + [Column(visible: false)] public Dictionary ShopPizzas { get; set; } = new(); - [DisplayName("Вместимость")] + [Column(title: "Вместимость", width: 100)] public int PizzaMaxCount { get; set; } } } diff --git a/Pizzeria/PizzeriaDatabaseImplement/ImplementationExtension.cs b/Pizzeria/PizzeriaDatabaseImplement/ImplementationExtension.cs index 4b9d41f..3bc96b6 100644 --- a/Pizzeria/PizzeriaDatabaseImplement/ImplementationExtension.cs +++ b/Pizzeria/PizzeriaDatabaseImplement/ImplementationExtension.cs @@ -19,6 +19,8 @@ namespace PizzeriaDatabaseImplement DependencyManager.Instance.RegisterType(); DependencyManager.Instance.RegisterType(); DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); DependencyManager.Instance.RegisterType(); DependencyManager.Instance.RegisterType(); diff --git a/Pizzeria/PizzeriaDatabaseImplement/Models/Shop.cs b/Pizzeria/PizzeriaDatabaseImplement/Models/Shop.cs index f9123bd..0780fc3 100644 --- a/Pizzeria/PizzeriaDatabaseImplement/Models/Shop.cs +++ b/Pizzeria/PizzeriaDatabaseImplement/Models/Shop.cs @@ -3,22 +3,35 @@ using PizzeriaContracts.ViewModels; using PizzeriaDataModels.Models; using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; +using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace PizzeriaDatabaseImplement.Models { + [DataContract] public class Shop : IShopModel { + [DataMember] public int Id { get; set; } + + [DataMember] + [Required] public string ShopName { get; set; } = String.Empty; + [DataMember] + [Required] public string Adress { get; set; } = String.Empty; + [DataMember] + [Required] public DateTime OpeningDate { get; set; } + [DataMember] + [Required] public int PizzaMaxCount { get; set; } private Dictionary? _shopPizzas = null; diff --git a/Pizzeria/PizzeriaFileImplement/ImplementationExtension.cs b/Pizzeria/PizzeriaFileImplement/ImplementationExtension.cs index f4ced5e..ea59b64 100644 --- a/Pizzeria/PizzeriaFileImplement/ImplementationExtension.cs +++ b/Pizzeria/PizzeriaFileImplement/ImplementationExtension.cs @@ -20,6 +20,7 @@ namespace PizzeriaFileImplement DependencyManager.Instance.RegisterType(); DependencyManager.Instance.RegisterType(); DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); DependencyManager.Instance.RegisterType(); DependencyManager.Instance.RegisterType(); } diff --git a/Pizzeria/PizzeriaFileImplement/Implements/MessageInfoStorage.cs b/Pizzeria/PizzeriaFileImplement/Implements/MessageInfoStorage.cs index ac89183..45861ac 100644 --- a/Pizzeria/PizzeriaFileImplement/Implements/MessageInfoStorage.cs +++ b/Pizzeria/PizzeriaFileImplement/Implements/MessageInfoStorage.cs @@ -49,5 +49,10 @@ namespace PizzeriaFileImplement.Implements source.SaveMessageInfos(); return newMessage.GetViewModel; } + + public MessageInfoViewModel? Update(MessageInfoBindingModel model) + { + throw new NotImplementedException(); + } } } diff --git a/Pizzeria/PizzeriaFileImplement/Models/MessageInfo.cs b/Pizzeria/PizzeriaFileImplement/Models/MessageInfo.cs index 7214eb1..b1162d6 100644 --- a/Pizzeria/PizzeriaFileImplement/Models/MessageInfo.cs +++ b/Pizzeria/PizzeriaFileImplement/Models/MessageInfo.cs @@ -85,5 +85,11 @@ namespace PizzeriaFileImplement.Models new XElement("DateDelivery", DateDelivery.ToString()), new XElement("Subject", Subject), new XElement("Body", Body)); + + public bool IsReaded => throw new NotImplementedException(); + + public string? ReplyMessageId => throw new NotImplementedException(); + + public bool IsReply => throw new NotImplementedException(); } } diff --git a/Pizzeria/PizzeriaFileImplement/Models/Order.cs b/Pizzeria/PizzeriaFileImplement/Models/Order.cs index f11d7ae..2b98415 100644 --- a/Pizzeria/PizzeriaFileImplement/Models/Order.cs +++ b/Pizzeria/PizzeriaFileImplement/Models/Order.cs @@ -3,18 +3,35 @@ using PizzeriaDataModels.Models; using PizzeriaContracts.BindingModels; using PizzeriaContracts.ViewModels; using System.Xml.Linq; +using System.Runtime.Serialization; namespace PizzeriaFileImplement.Models { + [DataContract] public class Order : IOrderModel { + [DataMember] public int Id { get; private set; } + + [DataMember] public int ClientId { get; private set; } + + [DataMember] public int PizzaId { get; private set; } + + [DataMember] public int Count { get; private set; } + + [DataMember] public double Sum { get; private set; } + + [DataMember] public OrderStatus Status { get; private set; } = OrderStatus.Неизвестен; + + [DataMember] public DateTime DateCreate { get; private set; } = DateTime.Now; + + [DataMember] public DateTime? DateImplement { get; private set; } public static Order? Create(OrderBindingModel? model) { diff --git a/Pizzeria/PizzeriaFileImplement/Models/Pizza.cs b/Pizzeria/PizzeriaFileImplement/Models/Pizza.cs index d1e1cfa..56aca72 100644 --- a/Pizzeria/PizzeriaFileImplement/Models/Pizza.cs +++ b/Pizzeria/PizzeriaFileImplement/Models/Pizza.cs @@ -1,17 +1,26 @@ using PizzeriaContracts.BindingModels; using PizzeriaContracts.ViewModels; using PizzeriaDataModels.Models; +using System.Runtime.Serialization; using System.Xml.Linq; namespace PizzeriaFileImplement.Models { + [DataContract] public class Pizza : IPizzaModel { + [DataMember] public int Id { get; private set; } + + [DataMember] public string PizzaName { get; private set; } = string.Empty; + + [DataMember] public double Price { get; private set; } public Dictionary Components { get; private set; } = new(); private Dictionary? _pizzaComponents = null; + + [DataMember] public Dictionary PizzaComponents { get diff --git a/Pizzeria/PizzeriaFileImplement/Models/Shop.cs b/Pizzeria/PizzeriaFileImplement/Models/Shop.cs index 16310cf..0c4353a 100644 --- a/Pizzeria/PizzeriaFileImplement/Models/Shop.cs +++ b/Pizzeria/PizzeriaFileImplement/Models/Shop.cs @@ -7,17 +7,28 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Linq; +using System.Runtime.Serialization; namespace PizzeriaFileImplement.Models { + [DataContract] public class Shop : IShopModel { + [DataMember] public int Id { get; private set; } + + [DataMember] public string ShopName { get; private set; } = string.Empty; + + [DataMember] public string Adress { get; private set; } = string.Empty; + + [DataMember] public DateTime OpeningDate { get; private set; } public Dictionary Pizzas { get; private set; } = new(); private Dictionary? _shopPizzas = null; + + [DataMember] public Dictionary ShopPizzas { get { if (_shopPizzas == null) @@ -28,6 +39,8 @@ namespace PizzeriaFileImplement.Models return _shopPizzas; } } + + [DataMember] public int PizzaMaxCount { get; private set; } public static Shop? Create(ShopBindingModel? model) {