надо протестить

This commit is contained in:
Ino 2023-05-03 16:28:35 +04:00
parent 17bc71d4ff
commit 713e096862
26 changed files with 638 additions and 846 deletions

View File

@ -0,0 +1,35 @@
using IceCreamBusinessLogic.BusinessLogics;
using IceCreamBusinessLogic.MailWorker;
using IceCreamBusinessLogic.OfficePackage.Implements;
using IceCreamBusinessLogic.OfficePackage;
using IceCreamShopContracts.BusinessLogicsContracts;
using IceCreamShopContracts.DI;
using IceCreamBusinessLogic.BusinessLogic;
namespace ConfectioneryBusinessLogic
{
public class ImplementationBusinessLogicExtension : IImplementationBusinessLogicExtension
{
public int Priority => 0;
public void RegisterServices()
{
DependencyManager.Instance.RegisterType<IComponentLogic, ComponentLogic>();
DependencyManager.Instance.RegisterType<IOrderLogic, OrderLogic>();
DependencyManager.Instance.RegisterType<IIceCreamLogic, IceCreamLogic>();
DependencyManager.Instance.RegisterType<IReportLogic, ReportLogic>();
DependencyManager.Instance.RegisterType<IClientLogic, ClientLogic>();
DependencyManager.Instance.RegisterType<IImplementerLogic, ImplementerLogic>();
DependencyManager.Instance.RegisterType<IMessageInfoLogic, MessageInfoLogic>();
DependencyManager.Instance.RegisterType<IWorkProcess, WorkModeling>();
DependencyManager.Instance.RegisterType<IBackUpLogic, BackUpLogic>();
DependencyManager.Instance.RegisterType<IShopLogic, ShopLogic>();
DependencyManager.Instance.RegisterType<AbstractMailWorker, MailKitWorker>(true);
DependencyManager.Instance.RegisterType<AbstractSaveToExcel, SaveToExcel>();
DependencyManager.Instance.RegisterType<AbstractSaveToWord, SaveToWord>();
DependencyManager.Instance.RegisterType<AbstractSaveToPdf, SaveToPdf>();
}
}
}

View File

@ -31,6 +31,7 @@ namespace IceCreamShopView
{ {
column.HeaderText = columnAttr.Title; column.HeaderText = columnAttr.Title;
column.Visible = columnAttr.Visible; column.Visible = columnAttr.Visible;
column.DefaultCellStyle.Format = columnAttr.Format;
if (columnAttr.IsUseAutoSize) if (columnAttr.IsUseAutoSize)
{ {
column.AutoSizeMode = (DataGridViewAutoSizeColumnMode)Enum.Parse(typeof(DataGridViewAutoSizeColumnMode), columnAttr.GridViewAutoSize.ToString()); column.AutoSizeMode = (DataGridViewAutoSizeColumnMode)Enum.Parse(typeof(DataGridViewAutoSizeColumnMode), columnAttr.GridViewAutoSize.ToString());

View File

@ -1,470 +1,273 @@
namespace IceCreamShopView namespace IceCreamShopView
{ {
partial class FormMain partial class FormMain
{ {
/// <summary> /// <summary>
/// Required designer variable. /// Required designer variable.
/// </summary> /// </summary>
private System.ComponentModel.IContainer components = null; private System.ComponentModel.IContainer components = null;
/// <summary> /// <summary>
/// Clean up any resources being used. /// Clean up any resources being used.
/// </summary> /// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing && (components != null)) if (disposing && (components != null))
{ {
components.Dispose(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }
#region Windows Form Designer generated code #region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
buttonUpdate = new Button();
buttonSetToFinish = new Button();
buttonCreateOrder = new Button();
dataGridView = new DataGridView();
menuStrip = new MenuStrip();
справочникиToolStripMenuItem = new ToolStripMenuItem();
компонентыToolStripMenuItem = new ToolStripMenuItem();
мороженоеToolStripMenuItem = new ToolStripMenuItem();
клиентыToolStripMenuItem = new ToolStripMenuItem();
ImplementersToolStripMenuItem = new ToolStripMenuItem();
отчетыToolStripMenuItem = new ToolStripMenuItem();
iceCreamComponentsToolStripMenuItem = new ToolStripMenuItem();
iceCreamToolStripMenuItem = new ToolStripMenuItem();
ordersToolStripMenuItem = new ToolStripMenuItem();
DoWorkToolStripMenuItem = new ToolStripMenuItem();
MailToolStripMenuItem = new ToolStripMenuItem();
createBackupToolStripMenuItem = new ToolStripMenuItem();
((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
menuStrip.SuspendLayout();
SuspendLayout();
//
// buttonUpdate
//
buttonUpdate.Location = new Point(1081, 112);
buttonUpdate.Margin = new Padding(3, 2, 3, 2);
buttonUpdate.Name = "buttonUpdate";
buttonUpdate.Size = new Size(170, 37);
buttonUpdate.TabIndex = 13;
buttonUpdate.Text = "Обновить";
buttonUpdate.UseVisualStyleBackColor = true;
buttonUpdate.Click += buttonUpdate_Click;
//
// buttonSetToFinish
//
buttonSetToFinish.Location = new Point(1081, 70);
buttonSetToFinish.Margin = new Padding(3, 2, 3, 2);
buttonSetToFinish.Name = "buttonSetToFinish";
buttonSetToFinish.Size = new Size(170, 37);
buttonSetToFinish.TabIndex = 12;
buttonSetToFinish.Text = "Заказ выдан";
buttonSetToFinish.UseVisualStyleBackColor = true;
buttonSetToFinish.Click += buttonSetToFinish_Click;
//
// buttonCreateOrder
//
buttonCreateOrder.Location = new Point(1081, 29);
buttonCreateOrder.Margin = new Padding(3, 2, 3, 2);
buttonCreateOrder.Name = "buttonCreateOrder";
buttonCreateOrder.Size = new Size(170, 37);
buttonCreateOrder.TabIndex = 9;
buttonCreateOrder.Text = "Создать заказ";
buttonCreateOrder.UseVisualStyleBackColor = true;
buttonCreateOrder.Click += buttonCreateOrder_Click;
//
// dataGridView
//
dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridView.Location = new Point(12, 26);
dataGridView.Margin = new Padding(3, 2, 3, 2);
dataGridView.Name = "dataGridView";
dataGridView.RowHeadersWidth = 51;
dataGridView.RowTemplate.Height = 29;
dataGridView.Size = new Size(1063, 305);
dataGridView.TabIndex = 8;
//
// menuStrip
//
menuStrip.ImageScalingSize = new Size(20, 20);
menuStrip.Items.AddRange(new ToolStripItem[] { справочникиToolStripMenuItem, отчетыToolStripMenuItem, DoWorkToolStripMenuItem, MailToolStripMenuItem, createBackupToolStripMenuItem });
menuStrip.Location = new Point(0, 0);
menuStrip.Name = "menuStrip";
menuStrip.Padding = new Padding(5, 2, 0, 2);
menuStrip.Size = new Size(1261, 24);
menuStrip.TabIndex = 7;
menuStrip.Text = "Справочники";
//
// справочникиToolStripMenuItem
//
справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { компонентыToolStripMenuItem, мороженоеToolStripMenuItem, клиентыToolStripMenuItem, ImplementersToolStripMenuItem });
справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem";
справочникиToolStripMenuItem.Size = new Size(94, 20);
справочникиToolStripMenuItem.Text = "Справочники";
//
// компонентыToolStripMenuItem
//
компонентыToolStripMenuItem.Name = омпонентыToolStripMenuItem";
компонентыToolStripMenuItem.Size = new Size(149, 22);
компонентыToolStripMenuItem.Text = "Компоненты";
компонентыToolStripMenuItem.Click += компонентыToolStripMenuItem_Click;
//
// мороженоеToolStripMenuItem
//
мороженоеToolStripMenuItem.Name = ороженоеToolStripMenuItem";
мороженоеToolStripMenuItem.Size = new Size(149, 22);
мороженоеToolStripMenuItem.Text = "Мороженое";
мороженоеToolStripMenuItem.Click += мороженоеToolStripMenuItem_Click;
//
// клиентыToolStripMenuItem
//
клиентыToolStripMenuItem.Name = "клиентыToolStripMenuItem";
клиентыToolStripMenuItem.Size = new Size(149, 22);
клиентыToolStripMenuItem.Text = "Клиенты";
клиентыToolStripMenuItem.Click += клиентыToolStripMenuItem_Click;
//
// ImplementersToolStripMenuItem
//
ImplementersToolStripMenuItem.Name = "ImplementersToolStripMenuItem";
ImplementersToolStripMenuItem.Size = new Size(149, 22);
ImplementersToolStripMenuItem.Text = "Исполнители";
ImplementersToolStripMenuItem.Click += ImplementersToolStripMenuItem_Click;
//
// отчетыToolStripMenuItem
//
отчетыToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { iceCreamComponentsToolStripMenuItem, iceCreamToolStripMenuItem, ordersToolStripMenuItem });
отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem";
отчетыToolStripMenuItem.Size = new Size(60, 20);
отчетыToolStripMenuItem.Text = "Отчеты";
//
// iceCreamComponentsToolStripMenuItem
//
iceCreamComponentsToolStripMenuItem.Name = "iceCreamComponentsToolStripMenuItem";
iceCreamComponentsToolStripMenuItem.Size = new Size(238, 22);
iceCreamComponentsToolStripMenuItem.Text = "Список мороженых";
iceCreamComponentsToolStripMenuItem.Click += IceCreamsToolStripMenuItem_Click;
//
// iceCreamToolStripMenuItem
//
iceCreamToolStripMenuItem.Name = "iceCreamToolStripMenuItem";
iceCreamToolStripMenuItem.Size = new Size(238, 22);
iceCreamToolStripMenuItem.Text = "Мороженые с компонентами";
iceCreamToolStripMenuItem.Click += IceCreamComponentsToolStripMenuItem_Click;
//
// ordersToolStripMenuItem
//
ordersToolStripMenuItem.Name = "ordersToolStripMenuItem";
ordersToolStripMenuItem.Size = new Size(238, 22);
ordersToolStripMenuItem.Text = "Список заказов";
ordersToolStripMenuItem.Click += OrdersToolStripMenuItem_Click;
//
// DoWorkToolStripMenuItem
//
DoWorkToolStripMenuItem.Name = "DoWorkToolStripMenuItem";
DoWorkToolStripMenuItem.Size = new Size(92, 20);
DoWorkToolStripMenuItem.Text = "Запуск работ";
DoWorkToolStripMenuItem.Click += DoWorkToolStripMenuItem_Click;
//
// MailToolStripMenuItem
//
MailToolStripMenuItem.Name = "MailToolStripMenuItem";
MailToolStripMenuItem.Size = new Size(62, 20);
MailToolStripMenuItem.Text = "Письма";
MailToolStripMenuItem.Click += MailToolStripMenuItem_Click;
//
// createBackupToolStripMenuItem
//
createBackupToolStripMenuItem.Name = "createBackupToolStripMenuItem";
createBackupToolStripMenuItem.Size = new Size(97, 20);
createBackupToolStripMenuItem.Text = "Создать бекап";
createBackupToolStripMenuItem.Click += createBackupToolStripMenuItem_Click;
//
// FormMain
//
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(1261, 347);
Controls.Add(buttonUpdate);
Controls.Add(buttonSetToFinish);
Controls.Add(buttonCreateOrder);
Controls.Add(dataGridView);
Controls.Add(menuStrip);
Name = "FormMain";
Text = "Магазин мороженого";
Load += FormMain_Load;
((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
menuStrip.ResumeLayout(false);
menuStrip.PerformLayout();
ResumeLayout(false);
PerformLayout();
}
/// <summary> /// <summary>
/// Required method for Designer support - do not modify /// Required method for Designer support - do not modify
/// the contents of this method with the code editor. /// the contents of this method with the code editor.
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
this.buttonUpdate = new System.Windows.Forms.Button(); buttonUpdate = new Button();
this.buttonSetToFinish = new System.Windows.Forms.Button(); buttonSetToFinish = new Button();
this.buttonCreateOrder = new System.Windows.Forms.Button(); buttonCreateOrder = new Button();
this.dataGridView = new System.Windows.Forms.DataGridView(); dataGridView = new DataGridView();
this.menuStrip = new System.Windows.Forms.MenuStrip(); menuStrip = new MenuStrip();
this.справочникиToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); справочникиToolStripMenuItem = new ToolStripMenuItem();
this.компонентыToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); компонентыToolStripMenuItem = new ToolStripMenuItem();
this.мороженоеToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); мороженоеToolStripMenuItem = new ToolStripMenuItem();
this.клиентыToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); клиентыToolStripMenuItem = new ToolStripMenuItem();
this.ImplementersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); ImplementersToolStripMenuItem = new ToolStripMenuItem();
this.магазиныToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); магазиныToolStripMenuItem = new ToolStripMenuItem();
this.отчетыToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); отчетыToolStripMenuItem = new ToolStripMenuItem();
this.iceCreamComponentsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); iceCreamComponentsToolStripMenuItem = new ToolStripMenuItem();
this.iceCreamToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); iceCreamToolStripMenuItem = new ToolStripMenuItem();
this.ordersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); ordersToolStripMenuItem = new ToolStripMenuItem();
this.listShopsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); listShopsToolStripMenuItem = new ToolStripMenuItem();
this.shopWorkloadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); shopWorkloadToolStripMenuItem = new ToolStripMenuItem();
this.ordersByDateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); ordersByDateToolStripMenuItem = new ToolStripMenuItem();
this.DoWorkToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); DoWorkToolStripMenuItem = new ToolStripMenuItem();
this.buttonSupplyShop = new System.Windows.Forms.Button(); MailToolStripMenuItem = new ToolStripMenuItem();
this.SellIceCreamButton = new System.Windows.Forms.Button(); createBackupToolStripMenuItem = new ToolStripMenuItem();
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit(); buttonSupplyShop = new Button();
this.menuStrip.SuspendLayout(); SellIceCreamButton = new Button();
this.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
menuStrip.SuspendLayout();
SuspendLayout();
// //
// buttonUpdate // buttonUpdate
// //
this.buttonUpdate.Location = new System.Drawing.Point(1231, 392); buttonUpdate.Location = new Point(1081, 112);
this.buttonUpdate.Name = "buttonUpdate"; buttonUpdate.Margin = new Padding(3, 2, 3, 2);
this.buttonUpdate.Size = new System.Drawing.Size(194, 49); buttonUpdate.Name = "buttonUpdate";
this.buttonUpdate.TabIndex = 13; buttonUpdate.Size = new Size(170, 37);
this.buttonUpdate.Text = "Обновить"; buttonUpdate.TabIndex = 13;
this.buttonUpdate.UseVisualStyleBackColor = true; buttonUpdate.Text = "Обновить";
this.buttonUpdate.Click += new System.EventHandler(this.buttonUpdate_Click); buttonUpdate.UseVisualStyleBackColor = true;
buttonUpdate.Click += buttonUpdate_Click;
// //
// buttonSetToFinish // buttonSetToFinish
// //
this.buttonSetToFinish.Location = new System.Drawing.Point(1231, 90); buttonSetToFinish.Location = new Point(1081, 70);
this.buttonSetToFinish.Name = "buttonSetToFinish"; buttonSetToFinish.Margin = new Padding(3, 2, 3, 2);
this.buttonSetToFinish.Size = new System.Drawing.Size(194, 49); buttonSetToFinish.Name = "buttonSetToFinish";
this.buttonSetToFinish.TabIndex = 12; buttonSetToFinish.Size = new Size(170, 37);
this.buttonSetToFinish.Text = "Заказ выдан"; buttonSetToFinish.TabIndex = 12;
this.buttonSetToFinish.UseVisualStyleBackColor = true; buttonSetToFinish.Text = "Заказ выдан";
this.buttonSetToFinish.Click += new System.EventHandler(this.buttonSetToFinish_Click); buttonSetToFinish.UseVisualStyleBackColor = true;
buttonSetToFinish.Click += buttonSetToFinish_Click;
// //
// buttonCreateOrder // buttonCreateOrder
// //
this.buttonCreateOrder.Location = new System.Drawing.Point(1231, 35); buttonCreateOrder.Location = new Point(1081, 29);
this.buttonCreateOrder.Name = "buttonCreateOrder"; buttonCreateOrder.Margin = new Padding(3, 2, 3, 2);
this.buttonCreateOrder.Size = new System.Drawing.Size(194, 49); buttonCreateOrder.Name = "buttonCreateOrder";
this.buttonCreateOrder.TabIndex = 9; buttonCreateOrder.Size = new Size(170, 37);
this.buttonCreateOrder.Text = "Создать заказ"; buttonCreateOrder.TabIndex = 9;
this.buttonCreateOrder.UseVisualStyleBackColor = true; buttonCreateOrder.Text = "Создать заказ";
this.buttonCreateOrder.Click += new System.EventHandler(this.buttonCreateOrder_Click); buttonCreateOrder.UseVisualStyleBackColor = true;
buttonCreateOrder.Click += buttonCreateOrder_Click;
// //
// dataGridView // dataGridView
// //
this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView.Location = new System.Drawing.Point(14, 35); dataGridView.Location = new Point(12, 26);
this.dataGridView.Name = "dataGridView"; dataGridView.Margin = new Padding(3, 2, 3, 2);
this.dataGridView.RowHeadersWidth = 51; dataGridView.Name = "dataGridView";
this.dataGridView.RowTemplate.Height = 29; dataGridView.RowHeadersWidth = 51;
this.dataGridView.Size = new System.Drawing.Size(1202, 407); dataGridView.RowTemplate.Height = 29;
this.dataGridView.TabIndex = 8; dataGridView.Size = new Size(1063, 305);
dataGridView.TabIndex = 8;
// //
// menuStrip // menuStrip
// //
this.menuStrip.ImageScalingSize = new System.Drawing.Size(20, 20); menuStrip.ImageScalingSize = new Size(20, 20);
this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { menuStrip.Items.AddRange(new ToolStripItem[] { справочникиToolStripMenuItem, отчетыToolStripMenuItem, DoWorkToolStripMenuItem, MailToolStripMenuItem, createBackupToolStripMenuItem });
this.справочникиToolStripMenuItem, menuStrip.Location = new Point(0, 0);
this.отчетыToolStripMenuItem, menuStrip.Name = "menuStrip";
this.DoWorkToolStripMenuItem}); menuStrip.Padding = new Padding(5, 2, 0, 2);
this.menuStrip.Location = new System.Drawing.Point(0, 0); menuStrip.Size = new Size(1261, 24);
this.menuStrip.Name = "menuStrip"; menuStrip.TabIndex = 7;
this.menuStrip.Padding = new System.Windows.Forms.Padding(6, 3, 0, 3); menuStrip.Text = "Справочники";
this.menuStrip.Size = new System.Drawing.Size(1433, 30);
this.menuStrip.TabIndex = 7;
this.menuStrip.Text = "Справочники";
// //
// справочникиToolStripMenuItem // справочникиToolStripMenuItem
// //
this.справочникиToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { компонентыToolStripMenuItem, мороженоеToolStripMenuItem, клиентыToolStripMenuItem, ImplementersToolStripMenuItem, магазиныToolStripMenuItem });
this.компонентыToolStripMenuItem, справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem";
this.мороженоеToolStripMenuItem, справочникиToolStripMenuItem.Size = new Size(94, 20);
this.клиентыToolStripMenuItem, справочникиToolStripMenuItem.Text = "Справочники";
this.ImplementersToolStripMenuItem,
this.магазиныToolStripMenuItem});
this.справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem";
this.справочникиToolStripMenuItem.Size = new System.Drawing.Size(117, 24);
this.справочникиToolStripMenuItem.Text = "Справочники";
// //
// компонентыToolStripMenuItem // компонентыToolStripMenuItem
// //
this.компонентыToolStripMenuItem.Name = омпонентыToolStripMenuItem"; компонентыToolStripMenuItem.Name = омпонентыToolStripMenuItem";
this.компонентыToolStripMenuItem.Size = new System.Drawing.Size(185, 26); компонентыToolStripMenuItem.Size = new Size(149, 22);
this.компонентыToolStripMenuItem.Text = "Компоненты"; компонентыToolStripMenuItem.Text = "Компоненты";
this.компонентыToolStripMenuItem.Click += new System.EventHandler(this.компонентыToolStripMenuItem_Click); компонентыToolStripMenuItem.Click += компонентыToolStripMenuItem_Click;
// //
// мороженоеToolStripMenuItem // мороженоеToolStripMenuItem
// //
this.мороженоеToolStripMenuItem.Name = ороженоеToolStripMenuItem"; мороженоеToolStripMenuItem.Name = ороженоеToolStripMenuItem";
this.мороженоеToolStripMenuItem.Size = new System.Drawing.Size(185, 26); мороженоеToolStripMenuItem.Size = new Size(149, 22);
this.мороженоеToolStripMenuItem.Text = "Мороженое"; мороженоеToolStripMenuItem.Text = "Мороженое";
this.мороженоеToolStripMenuItem.Click += new System.EventHandler(this.мороженоеToolStripMenuItem_Click); мороженоеToolStripMenuItem.Click += мороженоеToolStripMenuItem_Click;
// //
// клиентыToolStripMenuItem // клиентыToolStripMenuItem
// //
this.клиентыToolStripMenuItem.Name = "клиентыToolStripMenuItem"; клиентыToolStripMenuItem.Name = "клиентыToolStripMenuItem";
this.клиентыToolStripMenuItem.Size = new System.Drawing.Size(185, 26); клиентыToolStripMenuItem.Size = new Size(149, 22);
this.клиентыToolStripMenuItem.Text = "Клиенты"; клиентыToolStripMenuItem.Text = "Клиенты";
this.клиентыToolStripMenuItem.Click += new System.EventHandler(this.клиентыToolStripMenuItem_Click); клиентыToolStripMenuItem.Click += клиентыToolStripMenuItem_Click;
// //
// ImplementersToolStripMenuItem // ImplementersToolStripMenuItem
// //
this.ImplementersToolStripMenuItem.Name = "ImplementersToolStripMenuItem"; ImplementersToolStripMenuItem.Name = "ImplementersToolStripMenuItem";
this.ImplementersToolStripMenuItem.Size = new System.Drawing.Size(185, 26); ImplementersToolStripMenuItem.Size = new Size(149, 22);
this.ImplementersToolStripMenuItem.Text = "Исполнители"; ImplementersToolStripMenuItem.Text = "Исполнители";
this.ImplementersToolStripMenuItem.Click += new System.EventHandler(this.ImplementersToolStripMenuItem_Click); ImplementersToolStripMenuItem.Click += ImplementersToolStripMenuItem_Click;
// //
// магазиныToolStripMenuItem // магазиныToolStripMenuItem
// //
this.магазиныToolStripMenuItem.Name = агазиныToolStripMenuItem"; магазиныToolStripMenuItem.Name = агазиныToolStripMenuItem";
this.магазиныToolStripMenuItem.Size = new System.Drawing.Size(185, 26); магазиныToolStripMenuItem.Size = new Size(149, 22);
this.магазиныToolStripMenuItem.Text = "Магазины"; магазиныToolStripMenuItem.Text = "Магазины";
this.магазиныToolStripMenuItem.Click += new System.EventHandler(this.магазиныToolStripMenuItem_Click); магазиныToolStripMenuItem.Click += магазиныToolStripMenuItem_Click;
// //
// отчетыToolStripMenuItem // отчетыToolStripMenuItem
// //
this.отчетыToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { отчетыToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { iceCreamComponentsToolStripMenuItem, iceCreamToolStripMenuItem, ordersToolStripMenuItem, listShopsToolStripMenuItem, shopWorkloadToolStripMenuItem, ordersByDateToolStripMenuItem });
this.iceCreamComponentsToolStripMenuItem, отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem";
this.iceCreamToolStripMenuItem, отчетыToolStripMenuItem.Size = new Size(60, 20);
this.ordersToolStripMenuItem, отчетыToolStripMenuItem.Text = "Отчеты";
this.listShopsToolStripMenuItem,
this.shopWorkloadToolStripMenuItem,
this.ordersByDateToolStripMenuItem});
this.отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem";
this.отчетыToolStripMenuItem.Size = new System.Drawing.Size(73, 24);
this.отчетыToolStripMenuItem.Text = "Отчеты";
// //
// iceCreamComponentsToolStripMenuItem // iceCreamComponentsToolStripMenuItem
// //
this.iceCreamComponentsToolStripMenuItem.Name = "iceCreamComponentsToolStripMenuItem"; iceCreamComponentsToolStripMenuItem.Name = "iceCreamComponentsToolStripMenuItem";
this.iceCreamComponentsToolStripMenuItem.Size = new System.Drawing.Size(299, 26); iceCreamComponentsToolStripMenuItem.Size = new Size(238, 22);
this.iceCreamComponentsToolStripMenuItem.Text = "Список мороженых"; iceCreamComponentsToolStripMenuItem.Text = "Список мороженых";
this.iceCreamComponentsToolStripMenuItem.Click += new System.EventHandler(this.IceCreamsToolStripMenuItem_Click); iceCreamComponentsToolStripMenuItem.Click += IceCreamsToolStripMenuItem_Click;
// //
// iceCreamToolStripMenuItem // iceCreamToolStripMenuItem
// //
this.iceCreamToolStripMenuItem.Name = "iceCreamToolStripMenuItem"; iceCreamToolStripMenuItem.Name = "iceCreamToolStripMenuItem";
this.iceCreamToolStripMenuItem.Size = new System.Drawing.Size(299, 26); iceCreamToolStripMenuItem.Size = new Size(238, 22);
this.iceCreamToolStripMenuItem.Text = "Мороженые с компонентами"; iceCreamToolStripMenuItem.Text = "Мороженые с компонентами";
this.iceCreamToolStripMenuItem.Click += new System.EventHandler(this.IceCreamComponentsToolStripMenuItem_Click); iceCreamToolStripMenuItem.Click += IceCreamComponentsToolStripMenuItem_Click;
// //
// ordersToolStripMenuItem // ordersToolStripMenuItem
// //
this.ordersToolStripMenuItem.Name = "ordersToolStripMenuItem"; ordersToolStripMenuItem.Name = "ordersToolStripMenuItem";
this.ordersToolStripMenuItem.Size = new System.Drawing.Size(299, 26); ordersToolStripMenuItem.Size = new Size(238, 22);
this.ordersToolStripMenuItem.Text = "Список заказов"; ordersToolStripMenuItem.Text = "Список заказов";
this.ordersToolStripMenuItem.Click += new System.EventHandler(this.OrdersToolStripMenuItem_Click); ordersToolStripMenuItem.Click += OrdersToolStripMenuItem_Click;
// //
// listShopsToolStripMenuItem // listShopsToolStripMenuItem
// //
this.listShopsToolStripMenuItem.Name = "listShopsToolStripMenuItem"; listShopsToolStripMenuItem.Name = "listShopsToolStripMenuItem";
this.listShopsToolStripMenuItem.Size = new System.Drawing.Size(299, 26); listShopsToolStripMenuItem.Size = new Size(238, 22);
this.listShopsToolStripMenuItem.Text = "Список магазинов"; listShopsToolStripMenuItem.Text = "Список магазинов";
this.listShopsToolStripMenuItem.Click += new System.EventHandler(this.listShopsToolStripMenuItem_Click); listShopsToolStripMenuItem.Click += listShopsToolStripMenuItem_Click;
// //
// shopWorkloadToolStripMenuItem // shopWorkloadToolStripMenuItem
// //
this.shopWorkloadToolStripMenuItem.Name = "shopWorkloadToolStripMenuItem"; shopWorkloadToolStripMenuItem.Name = "shopWorkloadToolStripMenuItem";
this.shopWorkloadToolStripMenuItem.Size = new System.Drawing.Size(299, 26); shopWorkloadToolStripMenuItem.Size = new Size(238, 22);
this.shopWorkloadToolStripMenuItem.Text = "Загруженность магазинов"; shopWorkloadToolStripMenuItem.Text = "Загруженность магазинов";
this.shopWorkloadToolStripMenuItem.Click += new System.EventHandler(this.shopWorkloadToolStripMenuItem_Click); shopWorkloadToolStripMenuItem.Click += shopWorkloadToolStripMenuItem_Click;
// //
// ordersByDateToolStripMenuItem // ordersByDateToolStripMenuItem
// //
this.ordersByDateToolStripMenuItem.Name = "ordersByDateToolStripMenuItem"; ordersByDateToolStripMenuItem.Name = "ordersByDateToolStripMenuItem";
this.ordersByDateToolStripMenuItem.Size = new System.Drawing.Size(299, 26); ordersByDateToolStripMenuItem.Size = new Size(238, 22);
this.ordersByDateToolStripMenuItem.Text = "Заказы по дате"; ordersByDateToolStripMenuItem.Text = "Заказы по дате";
this.ordersByDateToolStripMenuItem.Click += new System.EventHandler(this.ordersByDateToolStripMenuItem_Click); ordersByDateToolStripMenuItem.Click += ordersByDateToolStripMenuItem_Click;
// //
// DoWorkToolStripMenuItem // DoWorkToolStripMenuItem
// //
this.DoWorkToolStripMenuItem.Name = "DoWorkToolStripMenuItem"; DoWorkToolStripMenuItem.Name = "DoWorkToolStripMenuItem";
this.DoWorkToolStripMenuItem.Size = new System.Drawing.Size(114, 24); DoWorkToolStripMenuItem.Size = new Size(92, 20);
this.DoWorkToolStripMenuItem.Text = "Запуск работ"; DoWorkToolStripMenuItem.Text = "Запуск работ";
this.DoWorkToolStripMenuItem.Click += new System.EventHandler(this.DoWorkToolStripMenuItem_Click); DoWorkToolStripMenuItem.Click += DoWorkToolStripMenuItem_Click;
//
// MailToolStripMenuItem
//
MailToolStripMenuItem.Name = "MailToolStripMenuItem";
MailToolStripMenuItem.Size = new Size(62, 20);
MailToolStripMenuItem.Text = "Письма";
MailToolStripMenuItem.Click += MailToolStripMenuItem_Click;
//
// createBackupToolStripMenuItem
//
createBackupToolStripMenuItem.Name = "createBackupToolStripMenuItem";
createBackupToolStripMenuItem.Size = new Size(97, 20);
createBackupToolStripMenuItem.Text = "Создать бекап";
createBackupToolStripMenuItem.Click += createBackupToolStripMenuItem_Click;
// //
// buttonSupplyShop // buttonSupplyShop
// //
this.buttonSupplyShop.Location = new System.Drawing.Point(1231, 292); buttonSupplyShop.Location = new Point(1081, 243);
this.buttonSupplyShop.Name = "buttonSupplyShop"; buttonSupplyShop.Margin = new Padding(3, 2, 3, 2);
this.buttonSupplyShop.Size = new System.Drawing.Size(194, 44); buttonSupplyShop.Name = "buttonSupplyShop";
this.buttonSupplyShop.TabIndex = 14; buttonSupplyShop.Size = new Size(170, 37);
this.buttonSupplyShop.Text = "Пополнение магазина"; buttonSupplyShop.TabIndex = 14;
this.buttonSupplyShop.UseVisualStyleBackColor = true; buttonSupplyShop.Text = "Пополнение магазина";
this.buttonSupplyShop.Click += new System.EventHandler(this.buttonSupplyShop_Click); buttonSupplyShop.UseVisualStyleBackColor = true;
buttonSupplyShop.Click += new System.EventHandler(this.buttonSupplyShop_Click);
// //
// SellIceCreamButton // SellIceCreamButton
// //
this.SellIceCreamButton.Location = new System.Drawing.Point(1231, 248); SellIceCreamButton.Location = new Point(1081, 284);
this.SellIceCreamButton.Name = "SellIceCreamButton"; SellIceCreamButton.Margin = new Padding(3, 2, 3, 2);
this.SellIceCreamButton.Size = new System.Drawing.Size(194, 40); SellIceCreamButton.Name = "SellIceCreamButton";
this.SellIceCreamButton.TabIndex = 15; SellIceCreamButton.Size = new Size(170, 37);
this.SellIceCreamButton.Text = "Продажа мороженого"; SellIceCreamButton.TabIndex = 15;
this.SellIceCreamButton.UseVisualStyleBackColor = true; SellIceCreamButton.Text = "Продажа мороженого";
this.SellIceCreamButton.Click += new System.EventHandler(this.SellIceCreamButton_Click); SellIceCreamButton.UseVisualStyleBackColor = true;
SellIceCreamButton.Click += new System.EventHandler(this.SellIceCreamButton_Click);
// //
// FormMain // FormMain
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F); AutoScaleDimensions = new SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1433, 467); ClientSize = new Size(1261, 347);
this.Controls.Add(this.SellIceCreamButton); Controls.Add(SellIceCreamButton);
this.Controls.Add(this.buttonSupplyShop); Controls.Add(buttonSupplyShop);
this.Controls.Add(this.buttonUpdate); Controls.Add(buttonUpdate);
this.Controls.Add(this.buttonSetToFinish); Controls.Add(buttonSetToFinish);
this.Controls.Add(this.buttonCreateOrder); Controls.Add(buttonCreateOrder);
this.Controls.Add(this.dataGridView); Controls.Add(dataGridView);
this.Controls.Add(this.menuStrip); Controls.Add(menuStrip);
this.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5); Name = "FormMain";
this.Name = "FormMain"; Text = "Магазин мороженого";
this.Text = "Магазин мороженого"; Load += FormMain_Load;
this.Load += new System.EventHandler(this.FormMain_Load); ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit(); menuStrip.ResumeLayout(false);
this.menuStrip.ResumeLayout(false); menuStrip.PerformLayout();
this.menuStrip.PerformLayout(); ResumeLayout(false);
this.ResumeLayout(false); PerformLayout();
this.PerformLayout();
} }
#endregion #endregion
private Button buttonUpdate;
private Button buttonSetToFinish;
private Button buttonCreateOrder;
private DataGridView dataGridView;
private MenuStrip menuStrip;
private ToolStripMenuItem справочникиToolStripMenuItem;
private ToolStripMenuItem компонентыToolStripMenuItem;
private ToolStripMenuItem мороженоеToolStripMenuItem;
private ToolStripMenuItem отчетыToolStripMenuItem;
private ToolStripMenuItem iceCreamComponentsToolStripMenuItem;
private ToolStripMenuItem iceCreamToolStripMenuItem;
private ToolStripMenuItem ordersToolStripMenuItem;
private ToolStripMenuItem клиентыToolStripMenuItem;
private ToolStripMenuItem ImplementersToolStripMenuItem;
private ToolStripMenuItem DoWorkToolStripMenuItem;
private ToolStripMenuItem MailToolStripMenuItem;
private ToolStripMenuItem createBackupToolStripMenuItem;
}
private Button buttonUpdate; private Button buttonUpdate;
private Button buttonSetToFinish; private Button buttonSetToFinish;
private Button buttonCreateOrder; private Button buttonCreateOrder;
@ -480,11 +283,13 @@
private ToolStripMenuItem клиентыToolStripMenuItem; private ToolStripMenuItem клиентыToolStripMenuItem;
private ToolStripMenuItem ImplementersToolStripMenuItem; private ToolStripMenuItem ImplementersToolStripMenuItem;
private ToolStripMenuItem DoWorkToolStripMenuItem; private ToolStripMenuItem DoWorkToolStripMenuItem;
private ToolStripMenuItem MailToolStripMenuItem;
private ToolStripMenuItem createBackupToolStripMenuItem;
private ToolStripMenuItem магазиныToolStripMenuItem; private ToolStripMenuItem магазиныToolStripMenuItem;
private Button buttonSupplyShop;
private Button SellIceCreamButton;
private ToolStripMenuItem listShopsToolStripMenuItem; private ToolStripMenuItem listShopsToolStripMenuItem;
private ToolStripMenuItem shopWorkloadToolStripMenuItem; private ToolStripMenuItem shopWorkloadToolStripMenuItem;
private ToolStripMenuItem ordersByDateToolStripMenuItem; private ToolStripMenuItem ordersByDateToolStripMenuItem;
private Button buttonSupplyShop;
private Button SellIceCreamButton;
} }
} }

View File

@ -1,225 +1,196 @@
using AbstractIceCreamShopDataModels.Enums; using IceCreamShop;
using ConfectioneryBusinessLogic;
using IceCreamBusinessLogic.BusinessLogics;
using IceCreamShop;
using IceCreamShopContracts.BindingModels; using IceCreamShopContracts.BindingModels;
using IceCreamShopContracts.BusinessLogicsContracts; using IceCreamShopContracts.BusinessLogicsContracts;
using IceCreamShopContracts.DI; using IceCreamShopContracts.DI;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace IceCreamShopView namespace IceCreamShopView
{ {
public partial class FormMain : Form public partial class FormMain : Form
{ {
private readonly ILogger _logger; private readonly ILogger _logger;
private readonly IOrderLogic _orderLogic; private readonly IOrderLogic _orderLogic;
private readonly IReportLogic _reportLogic; private readonly IReportLogic _reportLogic;
private readonly IWorkProcess _workProcess; private readonly IWorkProcess _workProcess;
private readonly IBackUpLogic _backUpLogic; private readonly IBackUpLogic _backUpLogic;
public FormMain(ILogger<FormMain> logger, IOrderLogic orderLogic, IReportLogic reportLogic, IWorkProcess workProcess, IBackUpLogic backUpLogic)
{
InitializeComponent();
_logger = logger;
_orderLogic = orderLogic;
_reportLogic = reportLogic;
_workProcess = workProcess;
_backUpLogic = backUpLogic;
}
private void FormMain_Load(object sender, EventArgs e) public FormMain(ILogger<FormMain> logger, IOrderLogic orderLogic, IReportLogic reportLogic, IWorkProcess workProcess, IBackUpLogic backUpLogic)
{
LoadData();
}
private void LoadData()
{
_logger.LogInformation("Загрузка заказов");
try
{
dataGridView.FillAndConfigGrid(_orderLogic.ReadList(null));
_logger.LogInformation("Загрузка заказов");
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка загрузки заказов");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void компонентыToolStripMenuItem_Click(object sender, EventArgs e)
{
var form = DependencyManager.Instance.Resolve<FormComponents>();
form.ShowDialog();
}
private void мороженоеToolStripMenuItem_Click(object sender, EventArgs e)
{
var form = DependencyManager.Instance.Resolve<FormIceCreams>();
form.ShowDialog();
}
private void buttonCreateOrder_Click(object sender, EventArgs e)
{
var form = DependencyManager.Instance.Resolve<FormCreateOrder>();
form.ShowDialog();
LoadData();
}
private void магазиныToolStripMenuItem_Click(object sender, EventArgs e)
{ {
var service = Program.ServiceProvider?.GetService(typeof(FormShops)); InitializeComponent();
if (service is FormShops form) _logger = logger;
_orderLogic = orderLogic;
_reportLogic = reportLogic;
_workProcess = workProcess;
_backUpLogic = backUpLogic;
}
private void FormMain_Load(object sender, EventArgs e)
{
LoadData();
}
private void LoadData()
{
_logger.LogInformation("Загрузка заказов");
try
{ {
form.ShowDialog(); dataGridView.FillAndConfigGrid(_orderLogic.ReadList(null));
_logger.LogInformation("Загрузка заказов");
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка загрузки заказов");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
} }
private void buttonSetToWork_Click(object sender, EventArgs e) private void компонентыToolStripMenuItem_Click(object sender, EventArgs e)
{ {
if (dataGridView.SelectedRows.Count == 1) var form = DependencyManager.Instance.Resolve<FormComponents>();
{ form.ShowDialog();
int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value); }
_logger.LogInformation("Заказ №{id}. Меняется статус на 'В работе'", id);
try private void мороженоеToolStripMenuItem_Click(object sender, EventArgs e)
{ {
var operationResult = _orderLogic.TakeOrderInWork(new OrderBindingModel var form = DependencyManager.Instance.Resolve<FormIceCreams>();
{ form.ShowDialog();
Id = id, }
});
if (!operationResult)
{
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
}
LoadData();
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка передачи заказа в работу");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
private void buttonSetToDone_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("Ошибка при сохранении. Дополнительная информация в логах.");
}
LoadData();
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка отметки о готовности заказа");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void buttonCreateOrder_Click(object sender, EventArgs e) private void buttonCreateOrder_Click(object sender, EventArgs e)
{ {
var service = Program.ServiceProvider?.GetService(typeof(FormCreateOrder)); var form = DependencyManager.Instance.Resolve<FormCreateOrder>();
if (service is FormCreateOrder form) form.ShowDialog();
LoadData();
}
private void магазиныToolStripMenuItem_Click(object sender, EventArgs e)
{
var form = DependencyManager.Instance.Resolve<FormShops>();
form.ShowDialog();
}
private void buttonSetToWork_Click(object sender, EventArgs e)
{
if (dataGridView.SelectedRows.Count == 1)
{ {
form.ShowDialog(); int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
LoadData(); _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 buttonSetToFinish_Click(object sender, EventArgs e) private void buttonSetToDone_Click(object sender, EventArgs e)
{ {
if (dataGridView.SelectedRows.Count == 1) if (dataGridView.SelectedRows.Count == 1)
{ {
int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value); int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
_logger.LogInformation("Заказ №{id}. Меняется статус на 'Выдан'", id); _logger.LogInformation("Заказ №{id}. Меняется статус на 'Готов'", id);
try try
{ {
var operationResult = _orderLogic.FinishOrder(new OrderBindingModel var operationResult = _orderLogic.DeliveryOrder(new OrderBindingModel
{ {
Id = id, Id = id,
}); });
if (!operationResult) if (!operationResult)
{ {
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах."); throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
} }
_logger.LogInformation("Заказ №{id} выдан", id); LoadData();
LoadData(); }
} catch (Exception ex)
catch (Exception ex) {
{ _logger.LogError(ex, "Ошибка отметки о готовности заказа");
_logger.LogError(ex, "Ошибка отметки о выдачи заказа"); MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); }
} }
} }
}
private void buttonUpdate_Click(object sender, EventArgs e) private void buttonSetToFinish_Click(object sender, EventArgs e)
{ {
LoadData(); 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("Ошибка при сохранении. Дополнительная информация в логах.");
}
_logger.LogInformation("Заказ №{id} выдан", id);
LoadData();
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка отметки о выдачи заказа");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void IceCreamsToolStripMenuItem_Click(object sender, EventArgs e) private void buttonUpdate_Click(object sender, EventArgs e)
{ {
using var dialog = new SaveFileDialog { Filter = "docx|*.docx" }; LoadData();
if (dialog.ShowDialog() == DialogResult.OK) }
{
_reportLogic.SaveIceCreamsToWordFile(new ReportBindingModel { FileName = dialog.FileName });
MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
private void IceCreamComponentsToolStripMenuItem_Click(object sender, EventArgs e) private void IceCreamsToolStripMenuItem_Click(object sender, EventArgs e)
{ {
var form = DependencyManager.Instance.Resolve<FormReportProductComponents>(); using var dialog = new SaveFileDialog { Filter = "docx|*.docx" };
form.ShowDialog(); if (dialog.ShowDialog() == DialogResult.OK)
} {
_reportLogic.SaveIceCreamsToWordFile(new ReportBindingModel { FileName = dialog.FileName });
MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
private void OrdersToolStripMenuItem_Click(object sender, EventArgs e) private void IceCreamComponentsToolStripMenuItem_Click(object sender, EventArgs e)
{ {
var form = DependencyManager.Instance.Resolve<FormReportOrders>(); var form = DependencyManager.Instance.Resolve<FormReportProductComponents>();
form.ShowDialog(); form.ShowDialog();
} }
private void OrdersToolStripMenuItem_Click(object sender, EventArgs e)
{
var form = DependencyManager.Instance.Resolve<FormReportOrders>();
form.ShowDialog();
}
private void клиентыToolStripMenuItem_Click(object sender, EventArgs e)
{
var form = DependencyManager.Instance.Resolve<FormClients>();
form.ShowDialog();
}
private void клиентыToolStripMenuItem_Click(object sender, EventArgs e)
{
var form = DependencyManager.Instance.Resolve<FormClients>();
form.ShowDialog();
}
private void buttonSupplyShop_Click(object sender, EventArgs e) private void buttonSupplyShop_Click(object sender, EventArgs e)
{ {
var service = Program.ServiceProvider?.GetService(typeof(FormShopSupply)); var form = DependencyManager.Instance.Resolve<FormShopSupply>();
if (service is FormShopSupply form) form.ShowDialog();
{
form.ShowDialog();
}
} }
private void SellIceCreamButton_Click(object sender, EventArgs e) private void SellIceCreamButton_Click(object sender, EventArgs e)
{ {
var service = Program.ServiceProvider?.GetService(typeof(FormSellIceCream)); var form = DependencyManager.Instance.Resolve<FormSellIceCream>();
form.ShowDialog();
if (service is FormSellIceCream form)
{
form.ShowDialog();
}
} }
private void listShopsToolStripMenuItem_Click(object sender, EventArgs e) private void listShopsToolStripMenuItem_Click(object sender, EventArgs e)
@ -237,75 +208,60 @@ namespace IceCreamShopView
private void shopWorkloadToolStripMenuItem_Click(object sender, EventArgs e) private void shopWorkloadToolStripMenuItem_Click(object sender, EventArgs e)
{ {
var service = Program.ServiceProvider?.GetService(typeof(FormReportShopWorkload)); var form = DependencyManager.Instance.Resolve<FormReportShopWorkload>();
if (service is FormReportShopWorkload form) form.ShowDialog();
{ }
form.ShowDialog();
} private void ImplementersToolStripMenuItem_Click(object sender, EventArgs e)
{
var form = DependencyManager.Instance.Resolve<FormImplementers>();
form.ShowDialog();
} }
private void ordersByDateToolStripMenuItem_Click(object sender, EventArgs e) private void ordersByDateToolStripMenuItem_Click(object sender, EventArgs e)
{ {
var service = Program.ServiceProvider?.GetService(typeof(FormReportDateOrders)); var form = DependencyManager.Instance.Resolve<FormReportDateOrders>();
if (service is FormReportDateOrders form) form.ShowDialog();
{
form.ShowDialog();
}
} }
private void клиентыToolStripMenuItem_Click(object sender, EventArgs e) private void DoWorkToolStripMenuItem_Click(object sender, EventArgs e)
{ {
var service = Program.ServiceProvider?.GetService(typeof(FormClients)); _workProcess.DoWork(
if (service is FormClients form) DependencyManager.Instance.Resolve<IImplementerLogic>(),
{ _orderLogic);
form.ShowDialog(); MessageBox.Show("Процесс обработки запущен", "Сообщение",
} MessageBoxButtons.OK, MessageBoxIcon.Information);
} }
private void ImplementersToolStripMenuItem_Click(object sender, EventArgs e) private void MailToolStripMenuItem_Click(object sender, EventArgs e)
{ {
var form = DependencyManager.Instance.Resolve<FormImplementers>(); var form = DependencyManager.Instance.Resolve<FormViewMail>();
form.ShowDialog(); form.ShowDialog();
} }
private void DoWorkToolStripMenuItem_Click(object sender, EventArgs e) private void createBackupToolStripMenuItem_Click(object sender, EventArgs e)
{ {
_workProcess.DoWork( try
DependencyManager.Instance.Resolve<IImplementerLogic>(), {
_orderLogic); if (_backUpLogic != null)
MessageBox.Show("Процесс обработки запущен", "Сообщение", {
MessageBoxButtons.OK, MessageBoxIcon.Information); var fbd = new FolderBrowserDialog();
} if (fbd.ShowDialog() == DialogResult.OK)
{
private void MailToolStripMenuItem_Click(object sender, EventArgs e) _backUpLogic.CreateBackUp(new BackUpSaveBinidngModel
{ {
var form = DependencyManager.Instance.Resolve<FormViewMail>(); FolderName = fbd.SelectedPath
form.ShowDialog(); });
} MessageBox.Show("Бекап создан", "Сообщение",
MessageBoxButtons.OK, MessageBoxIcon.Information);
private void createBackupToolStripMenuItem_Click(object sender, EventArgs e) }
{ }
try }
{ catch (Exception ex)
if (_backUpLogic != null) {
{ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
var fbd = new FolderBrowserDialog(); MessageBoxIcon.Error);
if (fbd.ShowDialog() == DialogResult.OK) }
{ }
_backUpLogic.CreateBackUp(new BackUpSaveBinidngModel }
{
FolderName = fbd.SelectedPath
});
MessageBox.Show("Бекап создан", "Сообщение",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
} }

View File

@ -11,6 +11,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using IceCreamShopContracts.DI;
namespace IceCreamShopView namespace IceCreamShopView
{ {
@ -33,36 +34,23 @@ namespace IceCreamShopView
{ {
try try
{ {
var list = _logic.ReadList(null); dataGridView.FillAndConfigGrid(_logic.ReadList(null));
if (list != null)
{
dataGridView.DataSource = list;
dataGridView.Columns["Id"].Visible = false;
dataGridView.Columns["Name"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView.Columns["ShopIceCreams"].Visible = false;
}
_logger.LogInformation("Загрузка магазинов"); _logger.LogInformation("Загрузка магазинов");
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, "Ошибка загрузки магазинов"); _logger.LogError(ex, "Ошибка загрузки магазинов");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
MessageBoxIcon.Error);
} }
} }
private void buttonAdd_Click(object sender, EventArgs e) private void buttonAdd_Click(object sender, EventArgs e)
{ {
var service = Program.ServiceProvider?.GetService(typeof(FormShop)); var form = DependencyManager.Instance.Resolve<FormShop>();
if (form.ShowDialog() == DialogResult.OK)
if (service is FormShop form)
{ {
if (form.ShowDialog() == DialogResult.OK) LoadData();
{
LoadData();
}
} }
} }
@ -70,12 +58,10 @@ namespace IceCreamShopView
{ {
if (dataGridView.SelectedRows.Count == 1) if (dataGridView.SelectedRows.Count == 1)
{ {
var service = Program.ServiceProvider?.GetService(typeof(FormShop)); var service = DependencyManager.Instance.Resolve<FormShop>();
if (service is FormShop form) if (service is FormShop form)
{ {
form.Id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value); form.Id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
if (form.ShowDialog() == DialogResult.OK) if (form.ShowDialog() == DialogResult.OK)
{ {
LoadData(); LoadData();
@ -88,11 +74,12 @@ namespace IceCreamShopView
{ {
if (dataGridView.SelectedRows.Count == 1) if (dataGridView.SelectedRows.Count == 1)
{ {
if (MessageBox.Show("Удалить магазин?", "Вопрос", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) if (MessageBox.Show("Удалить запись?", "Вопрос",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{ {
int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value); int id =
Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
_logger.LogInformation("Удаление магазина"); _logger.LogInformation("Удаление магазина");
try try
{ {
if (!_logic.Delete(new ShopBindingModel if (!_logic.Delete(new ShopBindingModel
@ -102,13 +89,13 @@ namespace IceCreamShopView
{ {
throw new Exception("Ошибка при удалении. Дополнительная информация в логах."); throw new Exception("Ошибка при удалении. Дополнительная информация в логах.");
} }
LoadData(); LoadData();
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, "Ошибка удаления изделия"); _logger.LogError(ex, "Ошибка удаления магазина");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(ex.Message, "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
} }
} }

View File

@ -1,5 +1,6 @@
using IceCreamShop; using IceCreamShop;
using IceCreamShopContracts.BusinessLogicsContracts; using IceCreamShopContracts.BusinessLogicsContracts;
using IceCreamShopContracts.DI;
using IceCreamShopContracts.ViewModels; using IceCreamShopContracts.ViewModels;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@ -27,21 +28,25 @@ namespace IceCreamShopView
private bool MailLoad() private bool MailLoad()
{ {
try try
{ {
dataGridView.FillAndConfigGrid(_logic.ReadList(null)); dataGridView.FillAndConfigGrid(_logic.ReadList(new()
_logger.LogInformation("Загрузка списка писем"); {
labelInfoPages.Text = $"{currentPage} страница"; Page = currentPage,
return true; PageSize = pageSize,
} }));
catch (Exception ex) _logger.LogInformation("Загрузка списка писем");
{ labelInfoPages.Text = $"{currentPage} страница";
_logger.LogError(ex, "Ошибка загрузки писем"); return true;
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, }
MessageBoxIcon.Error); catch (Exception ex)
return false; {
} _logger.LogError(ex, "Ошибка загрузки писем");
} MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
MessageBoxIcon.Error);
return false;
}
}
private void ButtonPrevPage_Click(object sender, EventArgs e) private void ButtonPrevPage_Click(object sender, EventArgs e)
{ {
@ -75,13 +80,10 @@ namespace IceCreamShopView
private void dataGridView_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) private void dataGridView_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{ {
var service = Program.ServiceProvider?.GetService(typeof(FormReplyMail)); var form = DependencyManager.Instance.Resolve<FormReplyMail>();
if (service is FormReplyMail form) form.MessageId = (string)dataGridView.Rows[e.RowIndex].Cells["MessageId"].Value;
{ form.ShowDialog();
form.MessageId = (string)dataGridView.Rows[e.RowIndex].Cells["MessageId"].Value; MailLoad();
form.ShowDialog(); }
MailLoad();
}
}
} }
} }

View File

@ -58,37 +58,29 @@ namespace IceCreamShop
{ {
option.SetMinimumLevel(LogLevel.Information); option.SetMinimumLevel(LogLevel.Information);
option.AddNLog("nlog.config"); option.AddNLog("nlog.config");
}); });
DependencyManager.Instance.RegisterType<IClientLogic, ClientLogic>(); DependencyManager.Instance.RegisterType<FormClients>();
DependencyManager.Instance.RegisterType<IImplementerLogic, ImplementerLogic>(); DependencyManager.Instance.RegisterType<FormComponent>();
DependencyManager.Instance.RegisterType<IComponentLogic, ComponentLogic>(); DependencyManager.Instance.RegisterType<FormComponents>();
DependencyManager.Instance.RegisterType<IOrderLogic, OrderLogic>(); DependencyManager.Instance.RegisterType<FormCreateOrder>();
DependencyManager.Instance.RegisterType<IIceCreamLogic, IceCreamLogic>(); DependencyManager.Instance.RegisterType<FormIceCream>();
DependencyManager.Instance.RegisterType<IReportLogic, ReportLogic>(); DependencyManager.Instance.RegisterType<FormIceCreamComponent>();
DependencyManager.Instance.RegisterType<IWorkProcess, WorkModeling>(); DependencyManager.Instance.RegisterType<FormIceCreams>();
DependencyManager.Instance.RegisterType<IMessageInfoLogic, MessageInfoLogic>(); DependencyManager.Instance.RegisterType<FormImplementer>();
DependencyManager.Instance.RegisterType<FormImplementers>();
DependencyManager.Instance.RegisterType<AbstractMailWorker, MailKitWorker>(); DependencyManager.Instance.RegisterType<FormMain>();
DependencyManager.Instance.RegisterType<FormReplyMail>();
DependencyManager.Instance.RegisterType<AbstractSaveToExcel, SaveToExcel>(); DependencyManager.Instance.RegisterType<FormReportDateOrders>();
DependencyManager.Instance.RegisterType<AbstractSaveToWord, SaveToWord>(); DependencyManager.Instance.RegisterType<FormReportOrders>();
DependencyManager.Instance.RegisterType<AbstractSaveToPdf, SaveToPdf>(); DependencyManager.Instance.RegisterType<FormReportProductComponents>();
DependencyManager.Instance.RegisterType<FormReportShopWorkload>();
DependencyManager.Instance.RegisterType<FormMain>(); DependencyManager.Instance.RegisterType<FormSellIceCream>();
DependencyManager.Instance.RegisterType<FormImplementer>(); DependencyManager.Instance.RegisterType<FormShop>();
DependencyManager.Instance.RegisterType<FormImplementers>(); DependencyManager.Instance.RegisterType<FormShops>();
DependencyManager.Instance.RegisterType<FormClients>(); DependencyManager.Instance.RegisterType<FormShopSupply>();
DependencyManager.Instance.RegisterType<FormComponent>(); DependencyManager.Instance.RegisterType<FormViewMail>();
DependencyManager.Instance.RegisterType<FormComponents>(); }
DependencyManager.Instance.RegisterType<FormCreateOrder>(); private static void MailCheck(object obj) => DependencyManager.Instance.Resolve<AbstractMailWorker>()?.MailCheck();
DependencyManager.Instance.RegisterType<FormIceCream>();
DependencyManager.Instance.RegisterType<FormIceCreamComponent>();
DependencyManager.Instance.RegisterType<FormIceCreams>();
DependencyManager.Instance.RegisterType<FormReportProductComponents>();
DependencyManager.Instance.RegisterType<FormReportOrders>();
DependencyManager.Instance.RegisterType<FormViewMail>();
}
private static void MailCheck(object obj) => DependencyManager.Instance.Resolve<AbstractMailWorker>()?.MailCheck();
} }
} }

View File

@ -13,13 +13,16 @@
public bool IsUseAutoSize { get; private set; } 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; Title = title;
Visible = visible; Visible = visible;
Width = width; Width = width;
GridViewAutoSize = gridViewAutoSize; GridViewAutoSize = gridViewAutoSize;
IsUseAutoSize = isUseAutoSize; IsUseAutoSize = isUseAutoSize;
Format = format;
} }
} }
} }

View File

@ -16,11 +16,10 @@ namespace IceCreamShopContracts.BindingModels
public DateTime DateDelivery { get; set; } public DateTime DateDelivery { get; set; }
public int Id => throw new NotImplementedException(); public bool HasRead { get; set; }
}
public bool HasRead { get; set; } public string? Reply { get; set; }
public string? Reply { get; set; } public int Id => throw new NotImplementedException();
} }
} }

View File

@ -22,13 +22,16 @@ namespace IceCreamShopContracts.DI
/// </summary> /// </summary>
public static void InitDependency() public static void InitDependency()
{ {
var ext = ServiceProviderLoader.GetImplementationExtensions(); var extList = ServiceProviderLoader.GetImplementationExtensions();
if (ext == null) foreach (var ext in extList)
{ {
throw new ArgumentNullException("Отсутствуют компоненты для загрузки зависимостей по модулям"); if (ext == null)
{
throw new ArgumentNullException("Отсутствуют компоненты для загрузки зависимостей по модулям");
}
// регистрируем зависимости
ext.RegisterServices();
} }
// регистрируем зависимости
ext.RegisterServices();
} }
/// <summary> /// <summary>

View File

@ -0,0 +1,9 @@

namespace IceCreamShopContracts.DI
{
/// <summary>
/// Интерфейс для индентификации и отделения загрузки бизнес-логики от загрузки хранилищ
/// </summary>
/// <seealso cref="IceCreamShopContracts.DI.IImplementationExtension" />
public interface IImplementationBusinessLogicExtension : IImplementationExtension { }
}

View File

@ -8,33 +8,41 @@ namespace IceCreamShopContracts.DI
/// Загрузка всех классов-реализаций IImplementationExtension /// Загрузка всех классов-реализаций IImplementationExtension
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public static IImplementationExtension? GetImplementationExtensions() public static List<IImplementationExtension?> GetImplementationExtensions()
{ {
IImplementationExtension? source = null; Type[] handledTypes =
{
typeof(IImplementationBusinessLogicExtension),
typeof(IImplementationExtension)
};
var result = handledTypes.Select(x => (IImplementationExtension?)null).ToList();
var files = Directory.GetFiles(TryGetImplementationExtensionsFolder(), "*.dll", SearchOption.AllDirectories); var files = Directory.GetFiles(TryGetImplementationExtensionsFolder(), "*.dll", SearchOption.AllDirectories);
foreach (var file in files.Distinct()) foreach (var file in files.Distinct())
{ {
Assembly asm = Assembly.LoadFrom(file); Assembly asm = Assembly.LoadFrom(file);
foreach (var t in asm.GetExportedTypes()) foreach (var t in asm.GetExportedTypes())
{ {
if (t.IsClass && typeof(IImplementationExtension).IsAssignableFrom(t)) for (var i = 0; i < handledTypes.Length; i++)
{ {
if (source == null) if (t.IsClass && handledTypes[i].IsAssignableFrom(t))
{ {
source = (IImplementationExtension)Activator.CreateInstance(t)!; if (result[i] == null)
}
else
{
var newSource = (IImplementationExtension)Activator.CreateInstance(t)!;
if (newSource.Priority > source.Priority)
{ {
source = newSource; result[i] = (IImplementationExtension)Activator.CreateInstance(t)!;
}
else
{
var newSource = (IImplementationExtension)Activator.CreateInstance(t)!;
if (newSource.Priority > result[i].Priority)
{
result[i] = newSource;
}
} }
} }
} }
} }
} }
return source; return result;
} }
private static string TryGetImplementationExtensionsFolder() private static string TryGetImplementationExtensionsFolder()

View File

@ -17,8 +17,8 @@ namespace IceCreamShopContracts.ViewModels
[Column("Название компонента", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)] [Column("Название компонента", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
public string ComponentName { get; set; } = string.Empty; public string ComponentName { get; set; } = string.Empty;
[Column("Цена", width: 80)] [Column("Цена", width: 80, format: "0.00")]
public double Cost { get; set; } public double Cost { get; set; }
} }
} }

View File

@ -17,8 +17,8 @@ namespace IceCreamShopContracts.ViewModels
[Column("Название мороженого", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)] [Column("Название мороженого", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
public string IceCreamName { get; set; } = string.Empty; public string IceCreamName { get; set; } = string.Empty;
[Column("Цена", width: 100)] [Column("Цена", width: 100, format: "0.00")]
public double Price { get; set; } public double Price { get; set; }
[Column(visible: false)] [Column(visible: false)]
public Dictionary<int, (IComponentModel, int)> IceCreamComponents { get; set; } = new(); public Dictionary<int, (IComponentModel, int)> IceCreamComponents { get; set; } = new();

View File

@ -5,34 +5,32 @@ namespace IceCreamShopContracts.ViewModels
{ {
public class MessageInfoViewModel : IMessageInfoModel public class MessageInfoViewModel : IMessageInfoModel
{ {
[Column(visible: false)] [Column(visible: false)]
public string MessageId { get; set; } = string.Empty; public string MessageId { get; set; } = string.Empty;
[Column(visible: false)] [Column(visible: false)]
public int? ClientId { get; set; } public int? ClientId { get; set; }
[Column("Отправитель", gridViewAutoSize: GridViewAutoSize.DisplayedCells, isUseAutoSize: true)] [Column("Отправитель", gridViewAutoSize: GridViewAutoSize.DisplayedCells, isUseAutoSize: true)]
public string SenderName { get; set; } = string.Empty; public string SenderName { get; set; } = string.Empty;
[Column("Дата письма", width: 100)] [Column("Дата письма", width: 100, format: "D")]
public DateTime DateDelivery { get; set; } public DateTime DateDelivery { get; set; }
[Column("Заголовок", width: 150)] [Column("Заголовок", width: 150)]
public string Subject { get; set; } = string.Empty; public string Subject { get; set; } = string.Empty;
[Column("Текст", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)] [Column("Текст", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
public string Body { get; set; } = string.Empty;
[Column(visible: false)]
public int Id => throw new NotImplementedException();
}
[DisplayName("Текст")]
public string Body { get; set; } = string.Empty; public string Body { get; set; } = string.Empty;
[DisplayName("Прочитано")] [Column(visible: false)]
public bool HasRead { get; set; }
[DisplayName("Ответ")] public int Id => throw new NotImplementedException();
public string? Reply { get; set; }
} [Column("Прочитано", gridViewAutoSize: GridViewAutoSize.AllCellsExceptHeader, isUseAutoSize: true)]
public bool HasRead { get; set; }
[Column("Ответ", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
public string? Reply { get; set; }
}
} }

View File

@ -42,10 +42,10 @@ namespace IceCreamShopContracts.ViewModels
[Column("Статус", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)] [Column("Статус", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)]
public OrderStatus Status { get; set; } = OrderStatus.Неизвестен; public OrderStatus Status { get; set; } = OrderStatus.Неизвестен;
[Column("Дата создания", width: 100)] [Column("Дата создания", width: 100, format: "D")]
public DateTime DateCreate { get; set; } = DateTime.Now; public DateTime DateCreate { get; set; } = DateTime.Now;
[Column("Дата выполнения", width: 100)] [Column("Дата выполнения", width: 100, format: "D")]
public DateTime? DateImplement { get; set; } public DateTime? DateImplement { get; set; }
} }
} }

View File

@ -1,4 +1,6 @@
using AbstractIceCreamShopDataModels.Models; using AbstractIceCreamShopDataModels.Models;
using IceCreamShopContracts.Attributes;
using IceCreamShopContracts.Attributes;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
@ -10,14 +12,19 @@ namespace IceCreamShopContracts.ViewModels
{ {
public class ShopViewModel : IShopModel public class ShopViewModel : IShopModel
{ {
[Column(visible: false)]
public int Id { get; set; } public int Id { get; set; }
[DisplayName("Название магазина")]
[Column("Название магазина", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)]
public string Name { get; set; } = string.Empty; public string Name { get; set; } = string.Empty;
[DisplayName("Адрес")]
[Column("Адрес", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
public string Adress { get; set; } = string.Empty; public string Adress { get; set; } = string.Empty;
[DisplayName("Дата открытия")]
[Column("Дата открытия", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true, format: "f")]
public DateTime OpeningDate { get; set; } public DateTime OpeningDate { get; set; }
[DisplayName("Вместимость магазина")]
[Column("Вместимость магазина", gridViewAutoSize: GridViewAutoSize.DisplayedCells, isUseAutoSize: true)]
public int IceCreamMaxCount { get; set; } public int IceCreamMaxCount { get; set; }
public Dictionary<int, (IIceCreamModel, int)> ShopIceCreams { get; set; } = new(); public Dictionary<int, (IIceCreamModel, int)> ShopIceCreams { get; set; } = new();

View File

@ -13,21 +13,29 @@ namespace IceCreamShopDatabaseImplement.Models
[DataMember] [DataMember]
public string MessageId { get; private set; } = string.Empty; public string MessageId { get; private set; } = string.Empty;
[DataMember]
public int? ClientId { get; private set; } public int? ClientId { get; private set; }
[DataMember]
public string SenderName { get; private set; } = string.Empty; public string SenderName { get; private set; } = string.Empty;
[DataMember]
public DateTime DateDelivery { get; private set; } = DateTime.Now; public DateTime DateDelivery { get; private set; } = DateTime.Now;
[DataMember]
public string Subject { get; private set; } = string.Empty; public string Subject { get; private set; } = string.Empty;
[DataMember]
public string Body { get; private set; } = string.Empty; public string Body { get; private set; } = string.Empty;
[DataMember]
public Client? Client { get; private set; } public Client? Client { get; private set; }
public bool HasRead { get; private set; } [DataMember]
public bool HasRead { get; private set; }
public string? Reply { get; private set; } [DataMember]
public string? Reply { get; private set; }
public static MessageInfo? Create(MessageInfoBindingModel model) public static MessageInfo? Create(MessageInfoBindingModel model)
{ {
@ -61,6 +69,8 @@ namespace IceCreamShopDatabaseImplement.Models
public MessageInfoViewModel GetViewModel => new() public MessageInfoViewModel GetViewModel => new()
{ {
Body = Body, Body = Body,
Reply = Reply,
HasRead = HasRead,
Subject = Subject, Subject = Subject,
ClientId = ClientId, ClientId = ClientId,
MessageId = MessageId, MessageId = MessageId,
@ -70,14 +80,4 @@ namespace IceCreamShopDatabaseImplement.Models
public int Id => throw new NotImplementedException(); public int Id => throw new NotImplementedException();
} }
Body = Body,
Reply = Reply,
HasRead = HasRead,
Subject = Subject,
ClientId = ClientId,
MessageId = MessageId,
SenderName = SenderName,
DateDelivery = DateDelivery,
};
}
} }

View File

@ -16,6 +16,7 @@ namespace IceCreamShopFileImplement
DependencyManager.Instance.RegisterType<IMessageInfoStorage, MessageInfoStorage>(); DependencyManager.Instance.RegisterType<IMessageInfoStorage, MessageInfoStorage>();
DependencyManager.Instance.RegisterType<IOrderStorage, OrderStorage>(); DependencyManager.Instance.RegisterType<IOrderStorage, OrderStorage>();
DependencyManager.Instance.RegisterType<IIceCreamStorage, IceCreamStorage>(); DependencyManager.Instance.RegisterType<IIceCreamStorage, IceCreamStorage>();
DependencyManager.Instance.RegisterType<IShopStorage, ShopStorage>();
DependencyManager.Instance.RegisterType<IBackUpInfo, BackUpInfo>(); DependencyManager.Instance.RegisterType<IBackUpInfo, BackUpInfo>();
} }
} }

View File

@ -27,9 +27,11 @@ namespace IceCreamShopFileImplement.Models
[DataMember] [DataMember]
public string Body { get; private set; } = string.Empty; public string Body { get; private set; } = string.Empty;
public bool HasRead { get; private set; } [DataMember]
public bool HasRead { get; private set; }
public string? Reply { get; private set; } [DataMember]
public string? Reply { get; private set; }
public static MessageInfo? Create(MessageInfoBindingModel model) public static MessageInfo? Create(MessageInfoBindingModel model)
{ {
@ -39,15 +41,15 @@ namespace IceCreamShopFileImplement.Models
} }
return new() return new()
{ {
Body = model.Body, Body = model.Body,
Reply = model.Reply, Reply = model.Reply,
HasRead = model.HasRead, HasRead = model.HasRead,
Subject = model.Subject, Subject = model.Subject,
ClientId = model.ClientId, ClientId = model.ClientId,
MessageId = model.MessageId, MessageId = model.MessageId,
SenderName = model.SenderName, SenderName = model.SenderName,
DateDelivery = model.DateDelivery, DateDelivery = model.DateDelivery,
}; };
} }
public static MessageInfo? Create(XElement element) public static MessageInfo? Create(XElement element)
@ -58,15 +60,15 @@ namespace IceCreamShopFileImplement.Models
} }
return new() return new()
{ {
Body = element.Attribute("Body")!.Value, Body = element.Attribute("Body")!.Value,
Reply = element.Attribute("Reply")!.Value, Reply = element.Attribute("Reply")!.Value,
HasRead = Convert.ToBoolean(element.Attribute("HasRead")!.Value), HasRead = Convert.ToBoolean(element.Attribute("HasRead")!.Value),
Subject = element.Attribute("Subject")!.Value, Subject = element.Attribute("Subject")!.Value,
ClientId = Convert.ToInt32(element.Attribute("ClientId")!.Value), ClientId = Convert.ToInt32(element.Attribute("ClientId")!.Value),
MessageId = element.Attribute("MessageId")!.Value, MessageId = element.Attribute("MessageId")!.Value,
SenderName = element.Attribute("SenderName")!.Value, SenderName = element.Attribute("SenderName")!.Value,
DateDelivery = Convert.ToDateTime(element.Attribute("DateDelivery")!.Value), DateDelivery = Convert.ToDateTime(element.Attribute("DateDelivery")!.Value),
}; };
} }
public void Update(MessageInfoBindingModel model) public void Update(MessageInfoBindingModel model)
@ -91,19 +93,10 @@ namespace IceCreamShopFileImplement.Models
DateDelivery = DateDelivery, DateDelivery = DateDelivery,
}; };
public XElement GetXElement => new("MessageInfo",
new XAttribute("Body", Body),
new XAttribute("Reply", Reply),
new XAttribute("HasRead", HasRead),
new XAttribute("Subject", Subject),
new XAttribute("ClientId", ClientId),
new XAttribute("MessageId", MessageId),
new XAttribute("SenderName", SenderName),
new XAttribute("DateDelivery", DateDelivery)
);
}
public XElement GetXElement => new("MessageInfo", public XElement GetXElement => new("MessageInfo",
new XAttribute("Body", Body), new XAttribute("Body", Body),
new XAttribute("Reply", Reply),
new XAttribute("HasRead", HasRead),
new XAttribute("Subject", Subject), new XAttribute("Subject", Subject),
new XAttribute("ClientId", ClientId), new XAttribute("ClientId", ClientId),
new XAttribute("MessageId", MessageId), new XAttribute("MessageId", MessageId),
@ -111,6 +104,6 @@ namespace IceCreamShopFileImplement.Models
new XAttribute("DateDelivery", DateDelivery) new XAttribute("DateDelivery", DateDelivery)
); );
public int Id => throw new NotImplementedException(); public int Id => throw new NotImplementedException();
} }
} }

View File

@ -2,7 +2,6 @@
using IceCreamShopContracts.SearchModels; using IceCreamShopContracts.SearchModels;
using IceCreamShopContracts.StoragesContracts; using IceCreamShopContracts.StoragesContracts;
using IceCreamShopContracts.ViewModels; using IceCreamShopContracts.ViewModels;
using IceCreamShopContracts.StoragesContracts;
using IceCreamShopListImplement.Models; using IceCreamShopListImplement.Models;
namespace IceCreamShopListImplement.Implements namespace IceCreamShopListImplement.Implements

View File

@ -16,8 +16,8 @@ namespace IceCreamShopListImplement
DependencyManager.Instance.RegisterType<IMessageInfoStorage, MessageInfoStorage>(); DependencyManager.Instance.RegisterType<IMessageInfoStorage, MessageInfoStorage>();
DependencyManager.Instance.RegisterType<IOrderStorage, OrderStorage>(); DependencyManager.Instance.RegisterType<IOrderStorage, OrderStorage>();
DependencyManager.Instance.RegisterType<IIceCreamStorage, IceCreamStorage>(); DependencyManager.Instance.RegisterType<IIceCreamStorage, IceCreamStorage>();
DependencyManager.Instance.RegisterType<IShopStorage, ShopStorage>();
DependencyManager.Instance.RegisterType<IBackUpInfo, BackUpInfo>(); DependencyManager.Instance.RegisterType<IBackUpInfo, BackUpInfo>();
} }
} }
} }

View File

@ -26,9 +26,11 @@ namespace IceCreamShopListImplement.Models
[DataMember] [DataMember]
public string Body { get; private set; } = string.Empty; public string Body { get; private set; } = string.Empty;
public bool HasRead { get; private set; } [DataMember]
public bool HasRead { get; private set; }
public string? Reply { get; private set; } [DataMember]
public string? Reply { get; private set; }
public static MessageInfo? Create(MessageInfoBindingModel model) public static MessageInfo? Create(MessageInfoBindingModel model)
{ {
@ -38,15 +40,15 @@ namespace IceCreamShopListImplement.Models
} }
return new() return new()
{ {
Body = model.Body, Body = model.Body,
Reply = model.Reply, Reply = model.Reply,
HasRead = model.HasRead, HasRead = model.HasRead,
Subject = model.Subject, Subject = model.Subject,
ClientId = model.ClientId, ClientId = model.ClientId,
MessageId = model.MessageId, MessageId = model.MessageId,
SenderName = model.SenderName, SenderName = model.SenderName,
DateDelivery = model.DateDelivery, DateDelivery = model.DateDelivery,
}; };
} }
public void Update(MessageInfoBindingModel model) public void Update(MessageInfoBindingModel model)
@ -62,6 +64,8 @@ namespace IceCreamShopListImplement.Models
public MessageInfoViewModel GetViewModel => new() public MessageInfoViewModel GetViewModel => new()
{ {
Body = Body, Body = Body,
Reply = Reply,
HasRead = HasRead,
Subject = Subject, Subject = Subject,
ClientId = ClientId, ClientId = ClientId,
MessageId = MessageId, MessageId = MessageId,
@ -71,14 +75,4 @@ namespace IceCreamShopListImplement.Models
public int Id => throw new NotImplementedException(); public int Id => throw new NotImplementedException();
} }
Body = Body,
Reply = Reply,
HasRead = HasRead,
Subject = Subject,
ClientId = ClientId,
MessageId = MessageId,
SenderName = SenderName,
DateDelivery = DateDelivery,
};
}
} }