diff --git a/PlumbingRepair/FormCreateOrder.Designer.cs b/PlumbingRepair/FormCreateOrder.Designer.cs index ac7fc6c..0ed6a89 100644 --- a/PlumbingRepair/FormCreateOrder.Designer.cs +++ b/PlumbingRepair/FormCreateOrder.Designer.cs @@ -28,104 +28,111 @@ /// private void InitializeComponent() { - WorkNameLabel = new Label(); - CountLabel = new Label(); - SumLabel = new Label(); - WorkComboBox = new ComboBox(); - CountTextBox = new TextBox(); - SumTextBox = new TextBox(); - ButtonCancel = new Button(); - SaveButton = new Button(); - SuspendLayout(); + this.WorkNameLabel = new System.Windows.Forms.Label(); + this.CountLabel = new System.Windows.Forms.Label(); + this.SumLabel = new System.Windows.Forms.Label(); + this.WorkComboBox = new System.Windows.Forms.ComboBox(); + this.CountTextBox = new System.Windows.Forms.TextBox(); + this.SumTextBox = new System.Windows.Forms.TextBox(); + this.ButtonCancel = new System.Windows.Forms.Button(); + this.SaveButton = new System.Windows.Forms.Button(); + this.SuspendLayout(); // // WorkNameLabel // - WorkNameLabel.AutoSize = true; - WorkNameLabel.Location = new Point(12, 9); - WorkNameLabel.Name = "WorkNameLabel"; - WorkNameLabel.Size = new Size(51, 15); - WorkNameLabel.TabIndex = 0; - WorkNameLabel.Text = "Работа: "; + this.WorkNameLabel.AutoSize = true; + this.WorkNameLabel.Location = new System.Drawing.Point(14, 12); + this.WorkNameLabel.Name = "WorkNameLabel"; + this.WorkNameLabel.Size = new System.Drawing.Size(75, 20); + this.WorkNameLabel.TabIndex = 0; + this.WorkNameLabel.Text = "Изделие: "; // // CountLabel // - CountLabel.AutoSize = true; - CountLabel.Location = new Point(12, 40); - CountLabel.Name = "CountLabel"; - CountLabel.Size = new Size(78, 15); - CountLabel.TabIndex = 1; - CountLabel.Text = "Количество: "; + this.CountLabel.AutoSize = true; + this.CountLabel.Location = new System.Drawing.Point(14, 53); + this.CountLabel.Name = "CountLabel"; + this.CountLabel.Size = new System.Drawing.Size(97, 20); + this.CountLabel.TabIndex = 1; + this.CountLabel.Text = "Количество: "; // // SumLabel // - SumLabel.AutoSize = true; - SumLabel.Location = new Point(12, 72); - SumLabel.Name = "SumLabel"; - SumLabel.Size = new Size(51, 15); - SumLabel.TabIndex = 2; - SumLabel.Text = "Сумма: "; + this.SumLabel.AutoSize = true; + this.SumLabel.Location = new System.Drawing.Point(14, 96); + this.SumLabel.Name = "SumLabel"; + this.SumLabel.Size = new System.Drawing.Size(62, 20); + this.SumLabel.TabIndex = 2; + this.SumLabel.Text = "Сумма: "; // // WorkComboBox // - WorkComboBox.FormattingEnabled = true; - WorkComboBox.Location = new Point(93, 6); - WorkComboBox.Name = "WorkComboBox"; - WorkComboBox.Size = new Size(201, 23); - WorkComboBox.TabIndex = 3; - WorkComboBox.SelectedIndexChanged += WorkComboBox_SelectedIndexChanged; + this.WorkComboBox.FormattingEnabled = true; + this.WorkComboBox.Location = new System.Drawing.Point(106, 8); + this.WorkComboBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.WorkComboBox.Name = "WorkComboBox"; + this.WorkComboBox.Size = new System.Drawing.Size(229, 28); + this.WorkComboBox.TabIndex = 3; + this.WorkComboBox.SelectedIndexChanged += new System.EventHandler(this.WorkComboBox_SelectedIndexChanged); // // CountTextBox // - CountTextBox.Location = new Point(93, 37); - CountTextBox.Name = "CountTextBox"; - CountTextBox.Size = new Size(201, 23); - CountTextBox.TabIndex = 4; - CountTextBox.TextChanged += CountTextBox_TextChanged; + this.CountTextBox.Location = new System.Drawing.Point(106, 49); + this.CountTextBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.CountTextBox.Name = "CountTextBox"; + this.CountTextBox.Size = new System.Drawing.Size(229, 27); + this.CountTextBox.TabIndex = 4; + this.CountTextBox.TextChanged += new System.EventHandler(this.CountTextBox_TextChanged); // // SumTextBox // - SumTextBox.Location = new Point(93, 69); - SumTextBox.Name = "SumTextBox"; - SumTextBox.Size = new Size(201, 23); - SumTextBox.TabIndex = 5; + this.SumTextBox.Location = new System.Drawing.Point(106, 92); + this.SumTextBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.SumTextBox.Name = "SumTextBox"; + this.SumTextBox.Size = new System.Drawing.Size(229, 27); + this.SumTextBox.TabIndex = 5; // // ButtonCancel // - ButtonCancel.Location = new Point(231, 98); - ButtonCancel.Name = "ButtonCancel"; - ButtonCancel.Size = new Size(75, 23); - ButtonCancel.TabIndex = 6; - ButtonCancel.Text = "Отменить"; - ButtonCancel.UseVisualStyleBackColor = true; - ButtonCancel.Click += ButtonCancel_Click; + this.ButtonCancel.Location = new System.Drawing.Point(250, 151); + this.ButtonCancel.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.ButtonCancel.Name = "ButtonCancel"; + this.ButtonCancel.Size = new System.Drawing.Size(86, 31); + this.ButtonCancel.TabIndex = 6; + this.ButtonCancel.Text = "Отменить"; + this.ButtonCancel.UseVisualStyleBackColor = true; + this.ButtonCancel.Click += new System.EventHandler(this.ButtonCancel_Click); // // SaveButton // - SaveButton.Location = new Point(140, 98); - SaveButton.Name = "SaveButton"; - SaveButton.Size = new Size(85, 23); - SaveButton.TabIndex = 7; - SaveButton.Text = "Сохранить"; - SaveButton.UseVisualStyleBackColor = true; - SaveButton.Click += SaveButton_Click; + this.SaveButton.Location = new System.Drawing.Point(147, 151); + this.SaveButton.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.SaveButton.Name = "SaveButton"; + this.SaveButton.Size = new System.Drawing.Size(97, 31); + this.SaveButton.TabIndex = 7; + this.SaveButton.Text = "Сохранить"; + this.SaveButton.UseVisualStyleBackColor = true; + this.SaveButton.Click += new System.EventHandler(this.SaveButton_Click); // // FormCreateOrder // - AutoScaleDimensions = new SizeF(7F, 15F); - AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(309, 139); - Controls.Add(SaveButton); - Controls.Add(ButtonCancel); - Controls.Add(SumTextBox); - Controls.Add(CountTextBox); - Controls.Add(WorkComboBox); - Controls.Add(SumLabel); - Controls.Add(CountLabel); - Controls.Add(WorkNameLabel); - Name = "FormCreateOrder"; - Text = "Заказ"; - ResumeLayout(false); - PerformLayout(); + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(353, 204); + this.Controls.Add(this.SaveButton); + this.Controls.Add(this.ButtonCancel); + this.Controls.Add(this.SumTextBox); + this.Controls.Add(this.CountTextBox); + this.Controls.Add(this.WorkComboBox); + this.Controls.Add(this.SumLabel); + this.Controls.Add(this.CountLabel); + this.Controls.Add(this.WorkNameLabel); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.Name = "FormCreateOrder"; + this.Text = "Заказ"; + this.ResumeLayout(false); + this.PerformLayout(); + } #endregion diff --git a/PlumbingRepair/FormCreateOrder.cs b/PlumbingRepair/FormCreateOrder.cs index 6899b89..fb46c74 100644 --- a/PlumbingRepair/FormCreateOrder.cs +++ b/PlumbingRepair/FormCreateOrder.cs @@ -10,21 +10,19 @@ namespace PlumbingRepair private readonly ILogger _logger; private readonly IWorkLogic _logicW; private readonly IOrderLogic _logicO; - private readonly IClientLogic _logicC; - public FormCreateOrder(ILogger logger, IWorkLogic logicW, IOrderLogic logicO, IClientLogic logicC) + public FormCreateOrder(ILogger logger, IWorkLogic logicW, IOrderLogic logicO) { InitializeComponent(); _logger = logger; _logicW = logicW; _logicO = logicO; - _logicC = logicC; LoadData(); } private void LoadData() { - _logger.LogInformation("Загрузка работ для заказа"); + _logger.LogInformation("Загрузка изделий для заказа"); try { @@ -40,7 +38,7 @@ namespace PlumbingRepair } catch (Exception ex) { - _logger.LogError(ex, "Ошибка загрузки списка работ"); + _logger.LogError(ex, "Ошибка загрузки списка изделий"); MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } @@ -95,7 +93,7 @@ namespace PlumbingRepair if (WorkComboBox.SelectedValue == null) { - MessageBox.Show("Выберите работа", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show("Выберите изделие", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } diff --git a/PlumbingRepair/FormMain.Designer.cs b/PlumbingRepair/FormMain.Designer.cs index 100f154..1b475cf 100644 --- a/PlumbingRepair/FormMain.Designer.cs +++ b/PlumbingRepair/FormMain.Designer.cs @@ -1,235 +1,215 @@ namespace PlumbingRepair { - partial class FormMain - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; + partial class FormMain + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } - #region Windows Form Designer generated code + #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - MenuStrip = new MenuStrip(); - СправочникиToolStripMenuItem = new ToolStripMenuItem(); - РаботыToolStripMenuItem = new ToolStripMenuItem(); - КомпонентыToolStripMenuItem = new ToolStripMenuItem(); - КлиентыToolStripMenuItem = new ToolStripMenuItem(); - отчетыToolStripMenuItem = new ToolStripMenuItem(); - WorksToolStripMenuItem = new ToolStripMenuItem(); - WorkComponentToolStripMenuItem = new ToolStripMenuItem(); - OrdersToolStripMenuItem = new ToolStripMenuItem(); - запускРаботToolStripMenuItem = new ToolStripMenuItem(); - DataGridView = new DataGridView(); - CreateOrderButton = new Button(); - TakeOrderInWorkButton = new Button(); - OrderReadyButton = new Button(); - IssuedOrderButton = new Button(); - UpdateListButton = new Button(); - исполнителиToolStripMenuItem = new ToolStripMenuItem(); - MenuStrip.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)DataGridView).BeginInit(); - SuspendLayout(); - // - // MenuStrip - // - MenuStrip.ImageScalingSize = new Size(20, 20); - MenuStrip.Items.AddRange(new ToolStripItem[] { СправочникиToolStripMenuItem, отчетыToolStripMenuItem, запускРаботToolStripMenuItem }); - MenuStrip.Location = new Point(0, 0); - MenuStrip.Name = "MenuStrip"; - MenuStrip.Size = new Size(865, 24); - MenuStrip.TabIndex = 0; - MenuStrip.Text = "menuStrip1"; - // - // СправочникиToolStripMenuItem - // - СправочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { РаботыToolStripMenuItem, КомпонентыToolStripMenuItem, КлиентыToolStripMenuItem, исполнителиToolStripMenuItem }); - СправочникиToolStripMenuItem.Name = "СправочникиToolStripMenuItem"; - СправочникиToolStripMenuItem.Size = new Size(94, 20); - СправочникиToolStripMenuItem.Text = "Cправочники"; - // - // РаботыToolStripMenuItem - // - РаботыToolStripMenuItem.Name = "РаботыToolStripMenuItem"; - РаботыToolStripMenuItem.Size = new Size(180, 22); - РаботыToolStripMenuItem.Text = "Работы"; - РаботыToolStripMenuItem.Click += РаботыToolStripMenuItem_Click; - // - // КомпонентыToolStripMenuItem - // - КомпонентыToolStripMenuItem.Name = "КомпонентыToolStripMenuItem"; - КомпонентыToolStripMenuItem.Size = new Size(180, 22); - КомпонентыToolStripMenuItem.Text = "Компоненты"; - КомпонентыToolStripMenuItem.Click += КомпонентыToolStripMenuItem_Click; - // - // КлиентыToolStripMenuItem - // - КлиентыToolStripMenuItem.Name = "КлиентыToolStripMenuItem"; - КлиентыToolStripMenuItem.Size = new Size(180, 22); - КлиентыToolStripMenuItem.Text = "Клиенты"; - КлиентыToolStripMenuItem.Click += КлиентыToolStripMenuItem_Click; - // - // отчетыToolStripMenuItem - // - отчетыToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { WorksToolStripMenuItem, WorkComponentToolStripMenuItem, OrdersToolStripMenuItem }); - отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem"; - отчетыToolStripMenuItem.Size = new Size(60, 20); - отчетыToolStripMenuItem.Text = "Отчеты"; - // - // WorksToolStripMenuItem - // - WorksToolStripMenuItem.Name = "WorksToolStripMenuItem"; - WorksToolStripMenuItem.Size = new Size(211, 22); - WorksToolStripMenuItem.Text = "Список работ"; - WorksToolStripMenuItem.Click += WorksToolStripMenuItem_Click; - // - // WorkComponentToolStripMenuItem - // - WorkComponentToolStripMenuItem.Name = "WorkComponentToolStripMenuItem"; - WorkComponentToolStripMenuItem.Size = new Size(211, 22); - WorkComponentToolStripMenuItem.Text = "Работы по компонентам"; - WorkComponentToolStripMenuItem.Click += WorkComponentToolStripMenuItem_Click; - // - // OrdersToolStripMenuItem - // - OrdersToolStripMenuItem.Name = "OrdersToolStripMenuItem"; - OrdersToolStripMenuItem.Size = new Size(211, 22); - OrdersToolStripMenuItem.Text = "Список заказов"; - OrdersToolStripMenuItem.Click += OrdersToolStripMenuItem_Click; - // - // запускРаботToolStripMenuItem - // - запускРаботToolStripMenuItem.Name = "запускРаботToolStripMenuItem"; - запускРаботToolStripMenuItem.Size = new Size(92, 20); - запускРаботToolStripMenuItem.Text = "Запуск Работ"; - запускРаботToolStripMenuItem.Click += запускРаботToolStripMenuItem_Click; - // - // DataGridView - // - DataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; - DataGridView.Location = new Point(0, 27); - DataGridView.Name = "DataGridView"; - DataGridView.RowHeadersWidth = 51; - DataGridView.RowTemplate.Height = 25; - DataGridView.Size = new Size(722, 421); - DataGridView.TabIndex = 1; - // - // CreateOrderButton - // - CreateOrderButton.Location = new Point(728, 28); - CreateOrderButton.Name = "CreateOrderButton"; - CreateOrderButton.Size = new Size(125, 33); - CreateOrderButton.TabIndex = 2; - CreateOrderButton.Text = "Создать заказ"; - CreateOrderButton.UseVisualStyleBackColor = true; - CreateOrderButton.Click += CreateOrderButton_Click; - // - // TakeOrderInWorkButton - // - TakeOrderInWorkButton.Location = new Point(728, 83); - TakeOrderInWorkButton.Name = "TakeOrderInWorkButton"; - TakeOrderInWorkButton.Size = new Size(125, 39); - TakeOrderInWorkButton.TabIndex = 3; - TakeOrderInWorkButton.Text = "Отдать на выполнение"; - TakeOrderInWorkButton.UseVisualStyleBackColor = true; - TakeOrderInWorkButton.Click += TakeOrderInWorkButton_Click; - // - // OrderReadyButton - // - OrderReadyButton.Location = new Point(728, 146); - OrderReadyButton.Name = "OrderReadyButton"; - OrderReadyButton.Size = new Size(125, 33); - OrderReadyButton.TabIndex = 4; - OrderReadyButton.Text = "Заказ готов"; - OrderReadyButton.UseVisualStyleBackColor = true; - OrderReadyButton.Click += OrderReadyButton_Click; - // - // IssuedOrderButton - // - IssuedOrderButton.Location = new Point(728, 204); - IssuedOrderButton.Name = "IssuedOrderButton"; - IssuedOrderButton.Size = new Size(125, 33); - IssuedOrderButton.TabIndex = 5; - IssuedOrderButton.Text = "Заказ выдан"; - IssuedOrderButton.UseVisualStyleBackColor = true; - IssuedOrderButton.Click += IssuedOrderButton_Click; - // - // UpdateListButton - // - UpdateListButton.Location = new Point(728, 262); - UpdateListButton.Name = "UpdateListButton"; - UpdateListButton.Size = new Size(125, 33); - UpdateListButton.TabIndex = 6; - UpdateListButton.Text = "Обновить список"; - UpdateListButton.UseVisualStyleBackColor = true; - UpdateListButton.Click += UpdateListButton_Click; - // - // исполнителиToolStripMenuItem - // - исполнителиToolStripMenuItem.Name = "исполнителиToolStripMenuItem"; - исполнителиToolStripMenuItem.Size = new Size(180, 22); - исполнителиToolStripMenuItem.Text = "Исполнители"; - исполнителиToolStripMenuItem.Click += исполнителиToolStripMenuItem_Click; - // - // FormMain - // - AutoScaleDimensions = new SizeF(7F, 15F); - AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(865, 450); - Controls.Add(UpdateListButton); - Controls.Add(IssuedOrderButton); - Controls.Add(OrderReadyButton); - Controls.Add(TakeOrderInWorkButton); - Controls.Add(CreateOrderButton); - Controls.Add(DataGridView); - Controls.Add(MenuStrip); - MainMenuStrip = MenuStrip; - Name = "FormMain"; - Text = "Ремонт сантехники"; - Load += FormMain_Load; - MenuStrip.ResumeLayout(false); - MenuStrip.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)DataGridView).EndInit(); - ResumeLayout(false); - PerformLayout(); - } + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + MenuStrip = new MenuStrip(); + СправочникиToolStripMenuItem = new ToolStripMenuItem(); + ИзделияToolStripMenuItem = new ToolStripMenuItem(); + КомпонентыToolStripMenuItem = new ToolStripMenuItem(); + КлиентыToolStripMenuItem = new ToolStripMenuItem(); + исполнителиToolStripMenuItem = new ToolStripMenuItem(); + отчетыToolStripMenuItem = new ToolStripMenuItem(); + WorksToolStripMenuItem = new ToolStripMenuItem(); + WorkComponentToolStripMenuItem = new ToolStripMenuItem(); + OrdersToolStripMenuItem = new ToolStripMenuItem(); + запускРаботToolStripMenuItem = new ToolStripMenuItem(); + CreateOrderButton = new Button(); + IssuedOrderButton = new Button(); + UpdateListButton = new Button(); + DataGridView = new DataGridView(); + MenuStrip.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)DataGridView).BeginInit(); + SuspendLayout(); + // + // MenuStrip + // + MenuStrip.ImageScalingSize = new Size(20, 20); + MenuStrip.Items.AddRange(new ToolStripItem[] { СправочникиToolStripMenuItem, отчетыToolStripMenuItem, запускРаботToolStripMenuItem }); + MenuStrip.Location = new Point(0, 0); + MenuStrip.Name = "MenuStrip"; + MenuStrip.Padding = new Padding(7, 3, 0, 3); + MenuStrip.Size = new Size(989, 30); + MenuStrip.TabIndex = 0; + MenuStrip.Text = "menuStrip1"; + // + // СправочникиToolStripMenuItem + // + СправочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { ИзделияToolStripMenuItem, КомпонентыToolStripMenuItem, КлиентыToolStripMenuItem, исполнителиToolStripMenuItem }); + СправочникиToolStripMenuItem.Name = "СправочникиToolStripMenuItem"; + СправочникиToolStripMenuItem.Size = new Size(117, 24); + СправочникиToolStripMenuItem.Text = "Cправочники"; + // + // ИзделияToolStripMenuItem + // + ИзделияToolStripMenuItem.Name = "ИзделияToolStripMenuItem"; + ИзделияToolStripMenuItem.Size = new Size(185, 26); + ИзделияToolStripMenuItem.Text = "Изделия"; + ИзделияToolStripMenuItem.Click += ИзделияToolStripMenuItem_Click; + // + // КомпонентыToolStripMenuItem + // + КомпонентыToolStripMenuItem.Name = "КомпонентыToolStripMenuItem"; + КомпонентыToolStripMenuItem.Size = new Size(185, 26); + КомпонентыToolStripMenuItem.Text = "Компоненты"; + КомпонентыToolStripMenuItem.Click += КомпонентыToolStripMenuItem_Click; + // + // КлиентыToolStripMenuItem + // + КлиентыToolStripMenuItem.Name = "КлиентыToolStripMenuItem"; + КлиентыToolStripMenuItem.Size = new Size(185, 26); + КлиентыToolStripMenuItem.Text = "Клиенты"; + КлиентыToolStripMenuItem.Click += КлиентыToolStripMenuItem_Click; + // + // исполнителиToolStripMenuItem + // + исполнителиToolStripMenuItem.Name = "исполнителиToolStripMenuItem"; + исполнителиToolStripMenuItem.Size = new Size(185, 26); + исполнителиToolStripMenuItem.Text = "Исполнители"; + исполнителиToolStripMenuItem.Click += исполнителиToolStripMenuItem_Click; + // + // отчетыToolStripMenuItem + // + отчетыToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { WorksToolStripMenuItem, WorkComponentToolStripMenuItem, OrdersToolStripMenuItem }); + отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem"; + отчетыToolStripMenuItem.Size = new Size(73, 24); + отчетыToolStripMenuItem.Text = "Отчеты"; + // + // WorksToolStripMenuItem + // + WorksToolStripMenuItem.Name = "WorksToolStripMenuItem"; + WorksToolStripMenuItem.Size = new Size(273, 26); + WorksToolStripMenuItem.Text = "Список изделий"; + WorksToolStripMenuItem.Click += WorksToolStripMenuItem_Click; + // + // WorkComponentToolStripMenuItem + // + WorkComponentToolStripMenuItem.Name = "WorkComponentToolStripMenuItem"; + WorkComponentToolStripMenuItem.Size = new Size(273, 26); + WorkComponentToolStripMenuItem.Text = "Изделия по компонентам"; + WorkComponentToolStripMenuItem.Click += WorkComponentToolStripMenuItem_Click; + // + // OrdersToolStripMenuItem + // + OrdersToolStripMenuItem.Name = "OrdersToolStripMenuItem"; + OrdersToolStripMenuItem.Size = new Size(273, 26); + OrdersToolStripMenuItem.Text = "Список заказов"; + OrdersToolStripMenuItem.Click += OrdersToolStripMenuItem_Click; + // + // запускРаботToolStripMenuItem + // + запускРаботToolStripMenuItem.Name = "запускРаботToolStripMenuItem"; + запускРаботToolStripMenuItem.Size = new Size(114, 24); + запускРаботToolStripMenuItem.Text = "Запуск работ"; + запускРаботToolStripMenuItem.Click += запускРаботToolStripMenuItem_Click; + // + // CreateOrderButton + // + CreateOrderButton.Location = new Point(832, 37); + CreateOrderButton.Margin = new Padding(3, 4, 3, 4); + CreateOrderButton.Name = "CreateOrderButton"; + CreateOrderButton.Size = new Size(143, 44); + CreateOrderButton.TabIndex = 2; + CreateOrderButton.Text = "Создать заказ"; + CreateOrderButton.UseVisualStyleBackColor = true; + CreateOrderButton.Click += CreateOrderButton_Click; + // + // IssuedOrderButton + // + IssuedOrderButton.Location = new Point(831, 149); + IssuedOrderButton.Margin = new Padding(3, 4, 3, 4); + IssuedOrderButton.Name = "IssuedOrderButton"; + IssuedOrderButton.Size = new Size(143, 44); + IssuedOrderButton.TabIndex = 5; + IssuedOrderButton.Text = "Заказ выдан"; + IssuedOrderButton.UseVisualStyleBackColor = true; + IssuedOrderButton.Click += IssuedOrderButton_Click; + // + // UpdateListButton + // + UpdateListButton.Location = new Point(831, 269); + UpdateListButton.Margin = new Padding(3, 4, 3, 4); + UpdateListButton.Name = "UpdateListButton"; + UpdateListButton.Size = new Size(143, 44); + UpdateListButton.TabIndex = 6; + UpdateListButton.Text = "Обновить список"; + UpdateListButton.UseVisualStyleBackColor = true; + UpdateListButton.Click += UpdateListButton_Click; + // + // DataGridView + // + DataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + DataGridView.Location = new Point(0, 36); + DataGridView.Margin = new Padding(3, 4, 3, 4); + DataGridView.Name = "DataGridView"; + DataGridView.RowHeadersWidth = 51; + DataGridView.RowTemplate.Height = 25; + DataGridView.Size = new Size(825, 561); + DataGridView.TabIndex = 1; + // + // FormMain + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(989, 600); + Controls.Add(UpdateListButton); + Controls.Add(IssuedOrderButton); + Controls.Add(CreateOrderButton); + Controls.Add(DataGridView); + Controls.Add(MenuStrip); + MainMenuStrip = MenuStrip; + Margin = new Padding(3, 4, 3, 4); + Name = "FormMain"; + Text = "Ремонт сантехники"; + Load += FormMain_Load; + MenuStrip.ResumeLayout(false); + MenuStrip.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)DataGridView).EndInit(); + ResumeLayout(false); + PerformLayout(); + } - #endregion + #endregion - private MenuStrip MenuStrip; - private ToolStripMenuItem СправочникиToolStripMenuItem; - private ToolStripMenuItem РаботыToolStripMenuItem; - private ToolStripMenuItem КомпонентыToolStripMenuItem; - private ToolStripMenuItem КлиентыToolStripMenuItem; - private DataGridView DataGridView; - private Button CreateOrderButton; - private Button TakeOrderInWorkButton; - private Button OrderReadyButton; - private Button IssuedOrderButton; - private Button UpdateListButton; - private ToolStripMenuItem отчетыToolStripMenuItem; - private ToolStripMenuItem WorksToolStripMenuItem; - private ToolStripMenuItem WorkComponentToolStripMenuItem; - private ToolStripMenuItem OrdersToolStripMenuItem; - private ToolStripMenuItem запускРаботToolStripMenuItem; - private ToolStripMenuItem исполнителиToolStripMenuItem; - } + private MenuStrip MenuStrip; + private ToolStripMenuItem СправочникиToolStripMenuItem; + private ToolStripMenuItem ИзделияToolStripMenuItem; + private ToolStripMenuItem КомпонентыToolStripMenuItem; + private ToolStripMenuItem КлиентыToolStripMenuItem; + private Button CreateOrderButton; + private Button IssuedOrderButton; + private Button UpdateListButton; + private ToolStripMenuItem отчетыToolStripMenuItem; + private ToolStripMenuItem WorksToolStripMenuItem; + private ToolStripMenuItem WorkComponentToolStripMenuItem; + private ToolStripMenuItem OrdersToolStripMenuItem; + private ToolStripMenuItem исполнителиToolStripMenuItem; + private ToolStripMenuItem запускРаботToolStripMenuItem; + private DataGridView DataGridView; + } } \ No newline at end of file diff --git a/PlumbingRepair/FormMain.cs b/PlumbingRepair/FormMain.cs index 6b65a2b..8931aa8 100644 --- a/PlumbingRepair/FormMain.cs +++ b/PlumbingRepair/FormMain.cs @@ -7,247 +7,171 @@ using System.Windows.Forms; namespace PlumbingRepair { - public partial class FormMain : Form - { - private readonly ILogger _logger; - private readonly IOrderLogic _orderLogic; + public partial class FormMain : Form + { + private readonly ILogger _logger; + private readonly IOrderLogic _orderLogic; - private readonly IReportLogic _reportLogic; - private readonly IWorkProcess _workProcess; - public FormMain(ILogger logger, IOrderLogic orderLogic, IReportLogic reportLogic, IWorkProcess workProcess) - { - InitializeComponent(); - _logger = logger; - _orderLogic = orderLogic; - _reportLogic = reportLogic; - _workProcess = workProcess; - } + private readonly IReportLogic _reportLogic; + private readonly IWorkProcess _workProcess; + public FormMain(ILogger logger, IWorkProcess workProcess, IOrderLogic orderLogic, IReportLogic reportLogic) + { + InitializeComponent(); + _logger = logger; + _orderLogic = orderLogic; + _reportLogic = reportLogic; + _workProcess = workProcess; + } - private void FormMain_Load(object sender, EventArgs e) - { - LoadData(); - } + private void FormMain_Load(object sender, EventArgs e) + { + LoadData(); + } - private void LoadData() - { - _logger.LogInformation("Загрузка заказов"); + private void LoadData() + { + _logger.LogInformation("Загрузка заказов"); - try - { - var list = _orderLogic.ReadList(null); + try + { + var list = _orderLogic.ReadList(null); - if (list != null) - { - DataGridView.DataSource = list; - DataGridView.Columns["WorkId"].Visible = false; - DataGridView.Columns["ClientId"].Visible = false; - DataGridView.Columns["DateImplement"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - } + if (list != null) + { + DataGridView.DataSource = list; + DataGridView.Columns["WorkId"].Visible = false; + DataGridView.Columns["ClientId"].Visible = false; + DataGridView.Columns["ImplementerId"].Visible = false; + } - _logger.LogInformation("Загрузка заказов"); - } - catch (Exception ex) - { - _logger.LogError(ex, "Ошибка загрузки заказов"); - MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } + _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 service = Program.ServiceProvider?.GetService(typeof(FormComponents)); + private void КомпонентыToolStripMenuItem_Click(object sender, EventArgs e) + { + var service = Program.ServiceProvider?.GetService(typeof(FormComponents)); - if (service is FormComponents form) - { - form.ShowDialog(); - } - } + if (service is FormComponents form) + { + form.ShowDialog(); + } + } - private void РаботыToolStripMenuItem_Click(object sender, EventArgs e) - { - var service = Program.ServiceProvider?.GetService(typeof(FormWorks)); + private void ИзделияToolStripMenuItem_Click(object sender, EventArgs e) + { + var service = Program.ServiceProvider?.GetService(typeof(FormWorks)); - if (service is FormWorks form) - { - form.ShowDialog(); - } - } - private void КлиентыToolStripMenuItem_Click(object sender, EventArgs e) - { - var service = Program.ServiceProvider?.GetService(typeof(FormClients)); - if (service is FormClients form) - { - form.ShowDialog(); - } - } + if (service is FormWorks form) + { + form.ShowDialog(); + } + } + private void КлиентыToolStripMenuItem_Click(object sender, EventArgs e) + { + var service = Program.ServiceProvider?.GetService(typeof(FormClients)); + if (service is FormClients form) + { + form.ShowDialog(); + } + } - private void CreateOrderButton_Click(object sender, EventArgs e) - { - var service = Program.ServiceProvider?.GetService(typeof(FormCreateOrder)); + private void CreateOrderButton_Click(object sender, EventArgs e) + { + var service = Program.ServiceProvider?.GetService(typeof(FormCreateOrder)); - if (service is FormCreateOrder form) - { - form.ShowDialog(); - LoadData(); - } - } + if (service is FormCreateOrder form) + { + form.ShowDialog(); + LoadData(); + } + } - private void TakeOrderInWorkButton_Click(object sender, EventArgs e) - { - if (DataGridView.SelectedRows.Count == 1) - { - int id = Convert.ToInt32(DataGridView.SelectedRows[0].Cells["Id"].Value); - _logger.LogInformation("Заказ №{id}. Меняется статус на 'В работе'", id); + private void IssuedOrderButton_Click(object sender, EventArgs e) + { + if (DataGridView.SelectedRows.Count == 1) + { + int id = Convert.ToInt32(DataGridView.SelectedRows[0].Cells["Id"].Value); + _logger.LogInformation("Заказ №{id}. Меняется статус на 'Выдан'", id); - try - { - var operationResult = _orderLogic.TakeOrderInWork(new OrderBindingModel - { - Id = id, - WorkId = Convert.ToInt32(DataGridView.SelectedRows[0].Cells["WorkId"].Value), - WorkName = DataGridView.SelectedRows[0].Cells["WorkName"].Value.ToString(), - Status = Enum.Parse(DataGridView.SelectedRows[0].Cells["Status"].Value.ToString()), - Count = Convert.ToInt32(DataGridView.SelectedRows[0].Cells["Count"].Value), - Sum = double.Parse(DataGridView.SelectedRows[0].Cells["Sum"].Value.ToString()), - DateCreate = DateTime.Parse(DataGridView.SelectedRows[0].Cells["DateCreate"].Value.ToString()) - }); + try + { + var operationResult = _orderLogic.DeliveryOrder(new OrderBindingModel + { + Id = id + }); - if (!operationResult) - { - throw new Exception("Ошибка при сохранении. Дополнительная информация в логах."); - } + if (!operationResult) + { + throw new Exception("Ошибка при сохранении. Дополнительная информация в логах."); + } - LoadData(); - } - catch (Exception ex) - { - _logger.LogError(ex, "Ошибка передачи заказа в работу"); - MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - } + _logger.LogInformation("Заказ №{id} выдан", id); + LoadData(); + } + catch (Exception ex) + { + _logger.LogError(ex, "Ошибка отметки о выдачи заказа"); + MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } - private void IssuedOrderButton_Click(object sender, EventArgs e) - { - if (DataGridView.SelectedRows.Count == 1) - { - int id = Convert.ToInt32(DataGridView.SelectedRows[0].Cells["Id"].Value); - _logger.LogInformation("Заказ №{id}. Меняется статус на 'Готов'", id); + private void UpdateListButton_Click(object sender, EventArgs e) + { + LoadData(); + } - try - { - var operationResult = _orderLogic.FinishOrder(new OrderBindingModel - { - Id = id, - WorkId = Convert.ToInt32(DataGridView.SelectedRows[0].Cells["WorkId"].Value), - WorkName = DataGridView.SelectedRows[0].Cells["WorkName"].Value.ToString(), - Status = Enum.Parse(DataGridView.SelectedRows[0].Cells["Status"].Value.ToString()), - Count = Convert.ToInt32(DataGridView.SelectedRows[0].Cells["Count"].Value), - Sum = double.Parse(DataGridView.SelectedRows[0].Cells["Sum"].Value.ToString()), - DateCreate = DateTime.Parse(DataGridView.SelectedRows[0].Cells["DateCreate"].Value.ToString()) - }); + private void WorksToolStripMenuItem_Click(object sender, EventArgs e) + { + using var dialog = new SaveFileDialog { Filter = "docx|*.docx" }; + if (dialog.ShowDialog() == DialogResult.OK) + { + _reportLogic.SaveWorksToWordFile(new ReportBindingModel + { + FileName = dialog.FileName + }); + MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } - if (!operationResult) - { - throw new Exception("Ошибка при сохранении. Дополнительная информация в логах."); - } + private void WorkComponentToolStripMenuItem_Click(object sender, EventArgs e) + { + var service = Program.ServiceProvider?.GetService(typeof(FormReportWorkComponents)); + if (service is FormReportWorkComponents form) + { + form.ShowDialog(); + } + } - LoadData(); - } - catch (Exception ex) - { - _logger.LogError(ex, "Ошибка отметки о готовности заказа"); - MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - } + private void OrdersToolStripMenuItem_Click(object sender, EventArgs e) + { + var service = Program.ServiceProvider?.GetService(typeof(FormReportOrders)); + if (service is FormReportOrders form) + { + form.ShowDialog(); + } + } - private void OrderReadyButton_Click(object sender, EventArgs e) - { - if (DataGridView.SelectedRows.Count == 1) - { - int id = Convert.ToInt32(DataGridView.SelectedRows[0].Cells["Id"].Value); - _logger.LogInformation("Заказ №{id}. Меняется статус на 'Выдан'", id); + private void запускРаботToolStripMenuItem_Click(object sender, EventArgs e) + { + _workProcess.DoWork((Program.ServiceProvider?.GetService(typeof(IImplementerLogic)) as IImplementerLogic)!, _orderLogic); + MessageBox.Show("Процесс обработки запущен", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); + } - try - { - var operationResult = _orderLogic.DeliveryOrder(new OrderBindingModel - { - Id = id, - WorkId = Convert.ToInt32(DataGridView.SelectedRows[0].Cells["WorkId"].Value), - WorkName = DataGridView.SelectedRows[0].Cells["WorkName"].Value.ToString(), - Status = Enum.Parse(DataGridView.SelectedRows[0].Cells["Status"].Value.ToString()), - Count = Convert.ToInt32(DataGridView.SelectedRows[0].Cells["Count"].Value), - Sum = double.Parse(DataGridView.SelectedRows[0].Cells["Sum"].Value.ToString()), - DateCreate = DateTime.Parse(DataGridView.SelectedRows[0].Cells["DateCreate"].Value.ToString()) - }); + private void исполнителиToolStripMenuItem_Click(object sender, EventArgs e) + { + var service = Program.ServiceProvider?.GetService(typeof(FormImplementers)); - 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 UpdateListButton_Click(object sender, EventArgs e) - { - LoadData(); - } - - private void WorksToolStripMenuItem_Click(object sender, EventArgs e) - { - using var dialog = new SaveFileDialog { Filter = "docx|*.docx" }; - if (dialog.ShowDialog() == DialogResult.OK) - { - _reportLogic.SaveWorksToWordFile(new ReportBindingModel - { - FileName = dialog.FileName - }); - MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - } - - private void WorkComponentToolStripMenuItem_Click(object sender, EventArgs e) - { - var service = Program.ServiceProvider?.GetService(typeof(FormReportWorkComponents)); - if (service is FormReportWorkComponents form) - { - form.ShowDialog(); - } - } - - private void OrdersToolStripMenuItem_Click(object sender, EventArgs e) - { - var service = Program.ServiceProvider?.GetService(typeof(FormReportOrders)); - if (service is FormReportOrders form) - { - form.ShowDialog(); - } - } - - private void запускРаботToolStripMenuItem_Click(object sender, EventArgs e) - { - _workProcess.DoWork((Program.ServiceProvider?.GetService(typeof(IImplementerLogic)) as IImplementerLogic)!, _orderLogic); - MessageBox.Show("Процесс обработки запущен", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - - private void исполнителиToolStripMenuItem_Click(object sender, EventArgs e) - { - var service = Program.ServiceProvider?.GetService(typeof(FormImplementers)); - - if (service is FormImplementers form) - { - form.ShowDialog(); - } - } - } + if (service is FormImplementers form) + { + form.ShowDialog(); + } + } + } } diff --git a/PlumbingRepair/FormReportWorkComponents.Designer.cs b/PlumbingRepair/FormReportWorkComponents.Designer.cs index 69792b9..57df7e0 100644 --- a/PlumbingRepair/FormReportWorkComponents.Designer.cs +++ b/PlumbingRepair/FormReportWorkComponents.Designer.cs @@ -62,7 +62,7 @@ // work // this.work.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; - this.work.HeaderText = "Работа"; + this.work.HeaderText = "Изделие"; this.work.Name = "work"; // // component @@ -83,7 +83,7 @@ this.Controls.Add(this.dataGridView); this.Controls.Add(this.ButtonSave); this.Name = "FormReportWorkComponents"; - this.Text = "Работы по компонентам"; + this.Text = "Изделия по компонентам"; this.Load += new System.EventHandler(this.FormReportWorkComponents_Load); ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit(); this.ResumeLayout(false); diff --git a/PlumbingRepair/FormReportWorkComponents.cs b/PlumbingRepair/FormReportWorkComponents.cs index ef9c0ad..f6ba407 100644 --- a/PlumbingRepair/FormReportWorkComponents.cs +++ b/PlumbingRepair/FormReportWorkComponents.cs @@ -32,13 +32,13 @@ namespace PlumbingRepair { FileName = dialog.FileName }); - _logger.LogInformation("Сохранение списка работ по компонентам"); + _logger.LogInformation("Сохранение списка изделий по компонентам"); MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { - _logger.LogError(ex, "Ошибка сохранения списка работ по компонентам"); + _logger.LogError(ex, "Ошибка сохранения списка изделий по компонентам"); MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } @@ -65,11 +65,11 @@ namespace PlumbingRepair dataGridView.Rows.Add(Array.Empty()); } } - _logger.LogInformation("Загрузки списка работ по компонентам"); + _logger.LogInformation("Загрузки списка изделий по компонентам"); } catch (Exception ex) { - _logger.LogError(ex, "Ошибка загрузки списка работ по компонентам"); + _logger.LogError(ex, "Ошибка загрузки списка изделий по компонентам"); MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } diff --git a/PlumbingRepair/FormWork.Designer.cs b/PlumbingRepair/FormWork.Designer.cs index ed11d04..a6164e8 100644 --- a/PlumbingRepair/FormWork.Designer.cs +++ b/PlumbingRepair/FormWork.Designer.cs @@ -223,7 +223,7 @@ this.Controls.Add(this.PriceLabel); this.Controls.Add(this.WorkNameLabel); this.Name = "FormWork"; - this.Text = "Работа"; + this.Text = "Изделие"; this.ComponentsGroupBox.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.DataGridView)).EndInit(); this.ResumeLayout(false); diff --git a/PlumbingRepair/FormWork.cs b/PlumbingRepair/FormWork.cs index d08f8da..2d1092c 100644 --- a/PlumbingRepair/FormWork.cs +++ b/PlumbingRepair/FormWork.cs @@ -29,7 +29,7 @@ namespace PlumbingRepair { if (_id.HasValue) { - _logger.LogInformation("Загрузка работы"); + _logger.LogInformation("Загрузка изделия"); try { @@ -48,14 +48,14 @@ namespace PlumbingRepair } catch (Exception ex) { - _logger.LogError(ex, "Ошибка загрузки работы"); + _logger.LogError(ex, "Ошибка загрузки изделия"); MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void LoadData() { - _logger.LogInformation("Загрузка компонент работы"); + _logger.LogInformation("Загрузка компонент изделия"); try { @@ -71,7 +71,7 @@ namespace PlumbingRepair } catch (Exception ex) { - _logger.LogError(ex, "Ошибка загрузки компонент работы"); + _logger.LogError(ex, "Ошибка загрузки компонент изделия"); MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } @@ -178,7 +178,7 @@ namespace PlumbingRepair return; } - _logger.LogInformation("Сохранение работы"); + _logger.LogInformation("Сохранение изделия"); try { @@ -203,7 +203,7 @@ namespace PlumbingRepair } catch (Exception ex) { - _logger.LogError(ex, "Ошибка сохранения работы"); + _logger.LogError(ex, "Ошибка сохранения изделия"); MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } diff --git a/PlumbingRepair/FormWorkComponent.Designer.cs b/PlumbingRepair/FormWorkComponent.Designer.cs index 6daa4aa..b8c2e98 100644 --- a/PlumbingRepair/FormWorkComponent.Designer.cs +++ b/PlumbingRepair/FormWorkComponent.Designer.cs @@ -106,7 +106,7 @@ this.Controls.Add(this.ComponentSelectLabel); this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.Name = "FormWorkComponent"; - this.Text = "Компонент работы"; + this.Text = "Компонент изделия"; this.ResumeLayout(false); this.PerformLayout(); diff --git a/PlumbingRepair/FormWorks.Designer.cs b/PlumbingRepair/FormWorks.Designer.cs index 42a41a2..e966303 100644 --- a/PlumbingRepair/FormWorks.Designer.cs +++ b/PlumbingRepair/FormWorks.Designer.cs @@ -103,7 +103,7 @@ this.Controls.Add(this.DataGridView); this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.Name = "FormWorks"; - this.Text = "Работы"; + this.Text = "Изделия"; this.Load += new System.EventHandler(this.FormComponents_Load); ((System.ComponentModel.ISupportInitialize)(this.DataGridView)).EndInit(); this.ResumeLayout(false); diff --git a/PlumbingRepair/FormWorks.cs b/PlumbingRepair/FormWorks.cs index 171dc66..5cbebac 100644 --- a/PlumbingRepair/FormWorks.cs +++ b/PlumbingRepair/FormWorks.cs @@ -35,12 +35,12 @@ namespace PlumbingRepair DataGridView.Columns["WorkComponents"].Visible = false; } - _logger.LogInformation("Загрузка работ"); + _logger.LogInformation("Загрузка изделий"); } catch (Exception ex) { - _logger.LogError(ex, "Ошибка загрузки работ"); + _logger.LogError(ex, "Ошибка загрузки изделий"); MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } @@ -81,7 +81,7 @@ namespace PlumbingRepair if (MessageBox.Show("Удалить запись?", "Вопрос", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { int id = Convert.ToInt32(DataGridView.SelectedRows[0].Cells["Id"].Value); - _logger.LogInformation("Удаление работы"); + _logger.LogInformation("Удаление изделия"); try { @@ -97,7 +97,7 @@ namespace PlumbingRepair } catch (Exception ex) { - _logger.LogError(ex, "Ошибка удаления работы"); + _logger.LogError(ex, "Ошибка удаления изделия"); MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } diff --git a/PlumbingRepair/PlumbingRepair.csproj b/PlumbingRepair/PlumbingRepair.csproj index 4b959e7..e1d3bc5 100644 --- a/PlumbingRepair/PlumbingRepair.csproj +++ b/PlumbingRepair/PlumbingRepair.csproj @@ -13,6 +13,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive + @@ -26,4 +27,10 @@ + + + Always + + + \ No newline at end of file diff --git a/PlumbingRepair/Program.cs b/PlumbingRepair/Program.cs index 36bc9dc..5fa1c75 100644 --- a/PlumbingRepair/Program.cs +++ b/PlumbingRepair/Program.cs @@ -39,12 +39,15 @@ namespace PlumbingRepair services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -57,6 +60,8 @@ namespace PlumbingRepair services.AddTransient(); services.AddTransient(); services.AddTransient(); - } + services.AddTransient(); + services.AddTransient(); + } } } \ No newline at end of file diff --git a/PlumbingRepair/ReportOrders.rdlc b/PlumbingRepair/ReportOrders.rdlc index 6a23a7c..e376033 100644 --- a/PlumbingRepair/ReportOrders.rdlc +++ b/PlumbingRepair/ReportOrders.rdlc @@ -212,7 +212,7 @@ - Работа + Изделие diff --git a/PlumbingRepairBusinessLogic/OfficePackage/AbstractSaveToPdf.cs b/PlumbingRepairBusinessLogic/OfficePackage/AbstractSaveToPdf.cs index edbce97..76c8250 100644 --- a/PlumbingRepairBusinessLogic/OfficePackage/AbstractSaveToPdf.cs +++ b/PlumbingRepairBusinessLogic/OfficePackage/AbstractSaveToPdf.cs @@ -23,7 +23,7 @@ namespace PlumbingRepairBusinessLogic.OfficePackage CreateTable(new List { "2cm", "3cm", "6cm", "2cm", "3cm" }); CreateRow(new PdfRowParameters { - Texts = new List { "Номер", "Дата создания", "Работа", "Статус", "Стоимость" }, + Texts = new List { "Номер", "Дата создания", "Изделие", "Статус", "Стоимость" }, Style = "NormalTitle", ParagraphAlignment = PdfParagraphAlignmentType.Center }); diff --git a/PlumbingRepairClientApp/Views/Home/Create.cshtml b/PlumbingRepairClientApp/Views/Home/Create.cshtml index 5b987f0..c5c4335 100644 --- a/PlumbingRepairClientApp/Views/Home/Create.cshtml +++ b/PlumbingRepairClientApp/Views/Home/Create.cshtml @@ -6,7 +6,7 @@
-
Работа:
+
Изделие:
diff --git a/PlumbingRepairClientApp/Views/Home/Index.cshtml b/PlumbingRepairClientApp/Views/Home/Index.cshtml index f6a089e..2c5abee 100644 --- a/PlumbingRepairClientApp/Views/Home/Index.cshtml +++ b/PlumbingRepairClientApp/Views/Home/Index.cshtml @@ -24,7 +24,7 @@ Номер - Работа + Изделие Дата создания diff --git a/PlumbingRepairDataModels/Models/IOrderModel.cs b/PlumbingRepairDataModels/Models/IOrderModel.cs index 113b612..683a9b3 100644 --- a/PlumbingRepairDataModels/Models/IOrderModel.cs +++ b/PlumbingRepairDataModels/Models/IOrderModel.cs @@ -6,7 +6,8 @@ namespace PlumbingRepairDataModels.Models { int WorkId { get; } int ClientId { get; } - string WorkName { get; } + int? ImplementerId { get; } + string WorkName { get; } int Count { get; } double Sum { get; } OrderStatus Status { get; } diff --git a/PlumbingRepairDatabaseImplement/Implements/ImplementerStorage.cs b/PlumbingRepairDatabaseImplement/Implements/ImplementerStorage.cs new file mode 100644 index 0000000..744e8b8 --- /dev/null +++ b/PlumbingRepairDatabaseImplement/Implements/ImplementerStorage.cs @@ -0,0 +1,96 @@ +using PlumbingRepairContracts.BindingModels; +using PlumbingRepairContracts.SearchModels; +using PlumbingRepairContracts.StoragesContracts; +using PlumbingRepairContracts.ViewModels; +using PlumbingRepairDatabaseImplement.Models; +using Microsoft.EntityFrameworkCore; + +namespace PlumbingRepairDatabaseImplement.Implements +{ + public class ImplementerStorage : IImplementerStorage + { + public ImplementerViewModel? Delete(ImplementerBindingModel model) + { + using var context = new PlumbingRepairDataBase(); + var element = context.Implementers + .Include(x => x.Orders) + .FirstOrDefault(rec => rec.Id == model.Id); + if (element != null) + { + context.Implementers.Remove(element); + context.SaveChanges(); + return element.GetViewModel; + } + return null; + } + + public ImplementerViewModel? GetElement(ImplementerSearchModel model) + { + if (string.IsNullOrEmpty(model.ImplementerFIO) && + string.IsNullOrEmpty(model.Password) && + !model.Id.HasValue) + { + return null; + } + using var context = new PlumbingRepairDataBase(); + return context.Implementers + .FirstOrDefault(x => (string.IsNullOrEmpty(model.ImplementerFIO) || x.ImplementerFIO == model.ImplementerFIO) && + (string.IsNullOrEmpty(model.Password) || x.Password == model.Password) && + (!model.Id.HasValue || x.Id == model.Id)) + ?.GetViewModel; + } + + public List GetFilteredList(ImplementerSearchModel model) + { + if (model == null) + { + return new(); + } + if (!string.IsNullOrEmpty(model.ImplementerFIO)) + { + using var context = new PlumbingRepairDataBase(); + return context.Implementers + .Include(x => x.Orders) + .Where(x => x.ImplementerFIO.Contains(model.ImplementerFIO)) + .Select(x => x.GetViewModel) + .ToList(); + } + return new(); + } + + public List GetFullList() + { + using var context = new PlumbingRepairDataBase(); + return context.Implementers + .Include(x => x.Orders) + .Select(x => x.GetViewModel) + .ToList(); + } + + public ImplementerViewModel? Insert(ImplementerBindingModel model) + { + var newImplementer = Implementer.Create(model); + if (newImplementer == null) + { + return null; + } + using var context = new PlumbingRepairDataBase(); + context.Implementers.Add(newImplementer); + context.SaveChanges(); + return newImplementer.GetViewModel; + } + + public ImplementerViewModel? Update(ImplementerBindingModel model) + { + using var context = new PlumbingRepairDataBase(); + var client = context.Implementers.FirstOrDefault(x => x.Id == model.Id); + if (client == null) + { + return null; + } + client.Update(model); + context.SaveChanges(); + return client.GetViewModel; + } + } +} diff --git a/PlumbingRepairDatabaseImplement/Implements/OrderStorage.cs b/PlumbingRepairDatabaseImplement/Implements/OrderStorage.cs index 41f3db4..b320120 100644 --- a/PlumbingRepairDatabaseImplement/Implements/OrderStorage.cs +++ b/PlumbingRepairDatabaseImplement/Implements/OrderStorage.cs @@ -16,59 +16,80 @@ namespace PlumbingRepairDatabaseImplement.Implements return context.Orders .Include(x => x.Work) .Include(x => x.Client) - .Select(x => x.GetViewModel) + .Include(x => x.Implementer) + .Select(x => x.GetViewModel) .ToList(); } public List GetFilteredList(OrderSearchModel model) { - using var context = new PlumbingRepairDataBase(); - if (model.Id.HasValue) - { - return context.Orders - .Include(x => x.Work) - .Include(x => x.Client) - .Where(x => x.Id == model.Id) - .Select(x => x.GetViewModel) - .ToList(); - } - else if (model.DateFrom != null && model.DateTo != null) - { - return context.Orders - .Include(x => x.Work) - .Include(x => x.Client) - .Where(x => x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo) - .Select(x => x.GetViewModel) - .ToList(); - } - else if (model.ClientId.HasValue) - { - return context.Orders - .Include(x => x.Work) - .Include(x => x.Client) - .Where(x => x.ClientId == model.ClientId) - .Select(x => x.GetViewModel) - .ToList(); - } - - return new(); - } + using var context = new PlumbingRepairDataBase(); + if (model.Id.HasValue) + { + return context.Orders + .Include(x => x.Work) + .Include(x => x.Client) + .Include(x => x.Implementer) + .Where(x => x.Id == model.Id) + .Select(x => x.GetViewModel) + .ToList(); + } + else if (model.DateFrom != null && model.DateTo != null) + { + return context.Orders + .Include(x => x.Work) + .Include(x => x.Client) + .Include(x => x.Implementer) + .Where(x => x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo) + .Select(x => x.GetViewModel) + .ToList(); + } + else if (model.ClientId.HasValue) + { + return context.Orders + .Include(x => x.Work) + .Include(x => x.Client) + .Include(x => x.Implementer) + .Where(x => x.ClientId == model.ClientId) + .Select(x => x.GetViewModel) + .ToList(); + } + else if (model.ImplementerId.HasValue) + { + return context.Orders + .Include(x => x.Work) + .Include(x => x.Client) + .Include(x => x.Implementer) + .Where(x => x.ImplementerId == model.ImplementerId) + .Select(x => x.GetViewModel) + .ToList(); + } + return context.Orders + .Include(x => x.Work) + .Include(x => x.Client) + .Include(x => x.Implementer) + .Where(x => model.Status == x.Status) + .Select(x => x.GetViewModel) + .ToList(); + } public OrderViewModel? GetElement(OrderSearchModel model) { - if (!model.Id.HasValue) - { - return null; - } + if (!model.Id.HasValue) + { + return null; + } - using var context = new PlumbingRepairDataBase(); + using var context = new PlumbingRepairDataBase(); - return context.Orders - .Include(x => x.Work) - .Include(x => x.Client) - .FirstOrDefault(x => model.Id.HasValue && x.Id == model.Id) - ?.GetViewModel; - } + return context.Orders + .Include(x => x.Work) + .Include(x => x.Client) + .Include(x => x.Implementer) + .FirstOrDefault(x => (!model.ImplementerId.HasValue || x.ImplementerId == model.ImplementerId) && + (!model.Status.HasValue || x.Status == model.Status) && + (!model.Id.HasValue || x.Id == model.Id))?.GetViewModel; + } public OrderViewModel? Insert(OrderBindingModel model) { @@ -87,7 +108,8 @@ namespace PlumbingRepairDatabaseImplement.Implements return context.Orders .Include(x => x.Work) .Include(x => x.Client) - .FirstOrDefault(x => x.Id == newOrder.Id) + .Include(x => x.Implementer) + .FirstOrDefault(x => x.Id == newOrder.Id) ?.GetViewModel; } @@ -108,7 +130,8 @@ namespace PlumbingRepairDatabaseImplement.Implements return context.Orders .Include(x => x.Work) .Include(x => x.Client) - .FirstOrDefault(x => x.Id == model.Id) + .Include(x => x.Implementer) + .FirstOrDefault(x => x.Id == model.Id) ?.GetViewModel; } @@ -123,7 +146,8 @@ namespace PlumbingRepairDatabaseImplement.Implements var deletedElement = context.Orders .Include(x => x.Work) .Include(x => x.Client) - .FirstOrDefault(x => x.Id == model.Id) + .Include(x => x.Implementer) + .FirstOrDefault(x => x.Id == model.Id) ?.GetViewModel; context.Orders.Remove(element); context.SaveChanges(); diff --git a/PlumbingRepairDatabaseImplement/Migrations/20230907081858_1.Designer.cs b/PlumbingRepairDatabaseImplement/Migrations/20230907081858_1.Designer.cs deleted file mode 100644 index 59df66c..0000000 --- a/PlumbingRepairDatabaseImplement/Migrations/20230907081858_1.Designer.cs +++ /dev/null @@ -1,218 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using PlumbingRepairDatabaseImplement; - -#nullable disable - -namespace PlumbingRepairDatabaseImplement.Migrations -{ - [DbContext(typeof(PlumbingRepairDataBase))] - [Migration("20230907081858_1")] - partial class _1 - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "7.0.3") - .HasAnnotation("Relational:MaxIdentifierLength", 128); - - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.Client", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClientFIO") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Email") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Password") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("Clients"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.Component", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ComponentName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Cost") - .HasColumnType("float"); - - b.HasKey("Id"); - - b.ToTable("Components"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.Order", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClientId") - .HasColumnType("int"); - - b.Property("Count") - .HasColumnType("int"); - - b.Property("DateCreate") - .HasColumnType("datetime2"); - - b.Property("DateImplement") - .HasColumnType("datetime2"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("Sum") - .HasColumnType("float"); - - b.Property("WorkId") - .HasColumnType("int"); - - b.Property("WorkName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.HasIndex("WorkId"); - - b.ToTable("Orders"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.Work", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Price") - .HasColumnType("float"); - - b.Property("WorkName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("Works"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.WorkComponent", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ComponentId") - .HasColumnType("int"); - - b.Property("Count") - .HasColumnType("int"); - - b.Property("WorkId") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("ComponentId"); - - b.HasIndex("WorkId"); - - b.ToTable("WorkComponents"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.Order", b => - { - b.HasOne("PlumbingRepairDatabaseImplement.Models.Client", "Client") - .WithMany("Orders") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("PlumbingRepairDatabaseImplement.Models.Work", "Work") - .WithMany("Orders") - .HasForeignKey("WorkId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Client"); - - b.Navigation("Work"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.WorkComponent", b => - { - b.HasOne("PlumbingRepairDatabaseImplement.Models.Component", "Component") - .WithMany("WorkComponents") - .HasForeignKey("ComponentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("PlumbingRepairDatabaseImplement.Models.Work", "Work") - .WithMany("Components") - .HasForeignKey("WorkId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Component"); - - b.Navigation("Work"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.Client", b => - { - b.Navigation("Orders"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.Component", b => - { - b.Navigation("WorkComponents"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.Work", b => - { - b.Navigation("Components"); - - b.Navigation("Orders"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/PlumbingRepairDatabaseImplement/Migrations/20230907081858_1.cs b/PlumbingRepairDatabaseImplement/Migrations/20230907081858_1.cs deleted file mode 100644 index c677eef..0000000 --- a/PlumbingRepairDatabaseImplement/Migrations/20230907081858_1.cs +++ /dev/null @@ -1,156 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace PlumbingRepairDatabaseImplement.Migrations -{ - /// - public partial class _1 : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "Clients", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - ClientFIO = table.Column(type: "nvarchar(max)", nullable: false), - Email = table.Column(type: "nvarchar(max)", nullable: false), - Password = table.Column(type: "nvarchar(max)", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Clients", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Components", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - ComponentName = table.Column(type: "nvarchar(max)", nullable: false), - Cost = table.Column(type: "float", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Components", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Works", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - WorkName = table.Column(type: "nvarchar(max)", nullable: false), - Price = table.Column(type: "float", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Works", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Orders", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - WorkId = table.Column(type: "int", nullable: false), - WorkName = table.Column(type: "nvarchar(max)", nullable: false), - ClientId = table.Column(type: "int", nullable: false), - Count = table.Column(type: "int", nullable: false), - Sum = table.Column(type: "float", nullable: false), - Status = table.Column(type: "int", nullable: false), - DateCreate = table.Column(type: "datetime2", nullable: false), - DateImplement = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Orders", x => x.Id); - table.ForeignKey( - name: "FK_Orders_Clients_ClientId", - column: x => x.ClientId, - principalTable: "Clients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_Orders_Works_WorkId", - column: x => x.WorkId, - principalTable: "Works", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "WorkComponents", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - WorkId = table.Column(type: "int", nullable: false), - ComponentId = table.Column(type: "int", nullable: false), - Count = table.Column(type: "int", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_WorkComponents", x => x.Id); - table.ForeignKey( - name: "FK_WorkComponents_Components_ComponentId", - column: x => x.ComponentId, - principalTable: "Components", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_WorkComponents_Works_WorkId", - column: x => x.WorkId, - principalTable: "Works", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateIndex( - name: "IX_Orders_ClientId", - table: "Orders", - column: "ClientId"); - - migrationBuilder.CreateIndex( - name: "IX_Orders_WorkId", - table: "Orders", - column: "WorkId"); - - migrationBuilder.CreateIndex( - name: "IX_WorkComponents_ComponentId", - table: "WorkComponents", - column: "ComponentId"); - - migrationBuilder.CreateIndex( - name: "IX_WorkComponents_WorkId", - table: "WorkComponents", - column: "WorkId"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "Orders"); - - migrationBuilder.DropTable( - name: "WorkComponents"); - - migrationBuilder.DropTable( - name: "Clients"); - - migrationBuilder.DropTable( - name: "Components"); - - migrationBuilder.DropTable( - name: "Works"); - } - } -} diff --git a/PlumbingRepairDatabaseImplement/Migrations/PlumbingRepairDataBaseModelSnapshot.cs b/PlumbingRepairDatabaseImplement/Migrations/PlumbingRepairDataBaseModelSnapshot.cs deleted file mode 100644 index e3d89fb..0000000 --- a/PlumbingRepairDatabaseImplement/Migrations/PlumbingRepairDataBaseModelSnapshot.cs +++ /dev/null @@ -1,215 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using PlumbingRepairDatabaseImplement; - -#nullable disable - -namespace PlumbingRepairDatabaseImplement.Migrations -{ - [DbContext(typeof(PlumbingRepairDataBase))] - partial class PlumbingRepairDataBaseModelSnapshot : ModelSnapshot - { - protected override void BuildModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "7.0.3") - .HasAnnotation("Relational:MaxIdentifierLength", 128); - - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.Client", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClientFIO") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Email") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Password") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("Clients"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.Component", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ComponentName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Cost") - .HasColumnType("float"); - - b.HasKey("Id"); - - b.ToTable("Components"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.Order", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClientId") - .HasColumnType("int"); - - b.Property("Count") - .HasColumnType("int"); - - b.Property("DateCreate") - .HasColumnType("datetime2"); - - b.Property("DateImplement") - .HasColumnType("datetime2"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("Sum") - .HasColumnType("float"); - - b.Property("WorkId") - .HasColumnType("int"); - - b.Property("WorkName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.HasIndex("WorkId"); - - b.ToTable("Orders"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.Work", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Price") - .HasColumnType("float"); - - b.Property("WorkName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("Works"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.WorkComponent", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ComponentId") - .HasColumnType("int"); - - b.Property("Count") - .HasColumnType("int"); - - b.Property("WorkId") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("ComponentId"); - - b.HasIndex("WorkId"); - - b.ToTable("WorkComponents"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.Order", b => - { - b.HasOne("PlumbingRepairDatabaseImplement.Models.Client", "Client") - .WithMany("Orders") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("PlumbingRepairDatabaseImplement.Models.Work", "Work") - .WithMany("Orders") - .HasForeignKey("WorkId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Client"); - - b.Navigation("Work"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.WorkComponent", b => - { - b.HasOne("PlumbingRepairDatabaseImplement.Models.Component", "Component") - .WithMany("WorkComponents") - .HasForeignKey("ComponentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("PlumbingRepairDatabaseImplement.Models.Work", "Work") - .WithMany("Components") - .HasForeignKey("WorkId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Component"); - - b.Navigation("Work"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.Client", b => - { - b.Navigation("Orders"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.Component", b => - { - b.Navigation("WorkComponents"); - }); - - modelBuilder.Entity("PlumbingRepairDatabaseImplement.Models.Work", b => - { - b.Navigation("Components"); - - b.Navigation("Orders"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/PlumbingRepairDatabaseImplement/Models/Implementer.cs b/PlumbingRepairDatabaseImplement/Models/Implementer.cs new file mode 100644 index 0000000..593de71 --- /dev/null +++ b/PlumbingRepairDatabaseImplement/Models/Implementer.cs @@ -0,0 +1,63 @@ +using PlumbingRepairContracts.BindingModels; +using PlumbingRepairContracts.ViewModels; +using PlumbingRepairDataModels.Models; +using System.ComponentModel.DataAnnotations.Schema; +using System.ComponentModel.DataAnnotations; + +namespace PlumbingRepairDatabaseImplement.Models +{ + public class Implementer : IImplementerModel + { + public int Id { get; set; } + + [Required] + public string ImplementerFIO { get; set; } = string.Empty; + + [Required] + public string Password { get; set; } = string.Empty; + + [Required] + public int WorkExperience { get; set; } + + [Required] + public int Qualification { get; set; } + + [ForeignKey("ImplementerId")] + public virtual List Orders { get; set; } = new(); + + public static Implementer? Create(ImplementerBindingModel model) + { + if (model == null) + { + return null; + } + return new Implementer() + { + Id = model.Id, + ImplementerFIO = model.ImplementerFIO, + Password = model.Password, + WorkExperience = model.WorkExperience, + Qualification = model.Qualification + }; + } + public void Update(ImplementerBindingModel model) + { + if (model == null) + { + return; + } + ImplementerFIO = model.ImplementerFIO; + Password = model.Password; + WorkExperience = model.WorkExperience; + Qualification = model.Qualification; + } + public ImplementerViewModel GetViewModel => new() + { + Id = Id, + ImplementerFIO = ImplementerFIO, + Password = Password, + WorkExperience = WorkExperience, + Qualification = Qualification + }; + } +} diff --git a/PlumbingRepairDatabaseImplement/Models/Order.cs b/PlumbingRepairDatabaseImplement/Models/Order.cs index 307935d..722be22 100644 --- a/PlumbingRepairDatabaseImplement/Models/Order.cs +++ b/PlumbingRepairDatabaseImplement/Models/Order.cs @@ -16,8 +16,9 @@ namespace PlumbingRepairDatabaseImplement.Models [Required] public int ClientId { get; private set; } - [Required] - public int Count { get; private set; } + public int? ImplementerId { get; set; } + [Required] + public int Count { get; private set; } [Required] public double Sum { get; private set; } @@ -32,8 +33,9 @@ namespace PlumbingRepairDatabaseImplement.Models public virtual Work Work { get; set; } public virtual Client Client { get; set; } + public virtual Implementer? Implementer { get; set; } - public static Order? Create(OrderBindingModel? model) + public static Order? Create(OrderBindingModel? model) { if (model == null) { @@ -46,7 +48,8 @@ namespace PlumbingRepairDatabaseImplement.Models WorkId = model.WorkId, WorkName = model.WorkName, ClientId = model.ClientId, - Count = model.Count, + ImplementerId = model.ImplementerId, + Count = model.Count, Sum = model.Sum, Status = model.Status, DateCreate = model.DateCreate, @@ -63,7 +66,8 @@ namespace PlumbingRepairDatabaseImplement.Models Status = model.Status; DateImplement = model.DateImplement; - } + ImplementerId = model.ImplementerId; + } public OrderViewModel GetViewModel => new() { @@ -72,7 +76,9 @@ namespace PlumbingRepairDatabaseImplement.Models WorkName = Work.WorkName, ClientId = ClientId, ClientFIO = Client.ClientFIO, - Count = Count, + ImplementerId = ImplementerId, + ImplementerFIO = Implementer?.ImplementerFIO ?? string.Empty, + Count = Count, Sum = Sum, Status = Status, DateCreate = DateCreate, diff --git a/PlumbingRepairDatabaseImplement/PlumbingRepairDataBase.cs b/PlumbingRepairDatabaseImplement/PlumbingRepairDataBase.cs index 04a3f07..a9a95b1 100644 --- a/PlumbingRepairDatabaseImplement/PlumbingRepairDataBase.cs +++ b/PlumbingRepairDatabaseImplement/PlumbingRepairDataBase.cs @@ -18,5 +18,6 @@ namespace PlumbingRepairDatabaseImplement public virtual DbSet WorkComponents { set; get; } public virtual DbSet Orders { set; get; } public virtual DbSet Clients { set; get; } - } + public virtual DbSet Implementers { set; get; } + } } diff --git a/PlumbingRepairListImplement/DataListSingleton.cs b/PlumbingRepairListImplement/DataListSingleton.cs index c058534..1cff867 100644 --- a/PlumbingRepairListImplement/DataListSingleton.cs +++ b/PlumbingRepairListImplement/DataListSingleton.cs @@ -9,14 +9,16 @@ namespace PlumbingRepairListImplement public List Orders { get; set; } public List Works { get; set; } public List Clients { get; set; } + public List Implementers { get; set; } - private DataListSingleton() + private DataListSingleton() { Components = new List(); Orders = new List(); Works = new List(); Clients = new List(); - } + Implementers = new List(); + } public static DataListSingleton GetInstance() { diff --git a/PlumbingRepairListImplement/Implements/ImplementerStorage.cs b/PlumbingRepairListImplement/Implements/ImplementerStorage.cs new file mode 100644 index 0000000..6984b4f --- /dev/null +++ b/PlumbingRepairListImplement/Implements/ImplementerStorage.cs @@ -0,0 +1,115 @@ +using PlumbingRepairContracts.BindingModels; +using PlumbingRepairContracts.SearchModels; +using PlumbingRepairContracts.StoragesContracts; +using PlumbingRepairContracts.ViewModels; +using PlumbingRepairListImplement.Models; + +namespace PlumbingRepairListImplement.Implements +{ + public class ImplementerStorage : IImplementerStorage + { + private readonly DataListSingleton _source; + public ImplementerStorage() + { + _source = DataListSingleton.GetInstance(); + } + public ImplementerViewModel? Delete(ImplementerBindingModel model) + { + for (int i = 0; i < _source.Implementers.Count; ++i) + { + if (_source.Implementers[i].Id == model.Id) + { + var element = _source.Implementers[i]; + _source.Implementers.RemoveAt(i); + return element.GetViewModel; + } + } + return null; + } + + public ImplementerViewModel? GetElement(ImplementerSearchModel model) + { + if (model.Id.HasValue) + { + foreach (var implementer in _source.Implementers) + { + if (implementer.Id == model.Id) + { + return implementer.GetViewModel; + } + } + } + else if (!string.IsNullOrEmpty(model.ImplementerFIO) && !string.IsNullOrEmpty(model.Password)) + { + foreach (var implementer in _source.Implementers) + { + if (implementer.ImplementerFIO == model.ImplementerFIO && implementer.Password == model.Password) + { + return implementer.GetViewModel; + } + } + } + + return null; + } + + public List GetFilteredList(ImplementerSearchModel model) + { + var result = new List(); + if (string.IsNullOrEmpty(model.ImplementerFIO)) + { + return result; + } + foreach (var implementer in _source.Implementers) + { + if (implementer.ImplementerFIO.Contains(model.ImplementerFIO)) + { + result.Add(implementer.GetViewModel); + } + } + return result; + } + + public List GetFullList() + { + var result = new List(); + foreach (var implementer in _source.Implementers) + { + result.Add(implementer.GetViewModel); + } + return result; + } + + public ImplementerViewModel? Insert(ImplementerBindingModel model) + { + model.Id = 1; + foreach (var implementer in _source.Implementers) + { + if (model.Id <= implementer.Id) + { + model.Id = implementer.Id + 1; + } + } + var newImplementer = Implementer.Create(model); + if (newImplementer == null) + { + return null; + } + _source.Implementers.Add(newImplementer); + return newImplementer.GetViewModel; + } + + public ImplementerViewModel? Update(ImplementerBindingModel model) + { + foreach (var implementer in _source.Implementers) + { + if (implementer.Id == model.Id) + { + implementer.Update(model); + return implementer.GetViewModel; + } + } + return null; + } + } +} diff --git a/PlumbingRepairListImplement/Implements/OrderStorage.cs b/PlumbingRepairListImplement/Implements/OrderStorage.cs index 5e7eabb..da9bacd 100644 --- a/PlumbingRepairListImplement/Implements/OrderStorage.cs +++ b/PlumbingRepairListImplement/Implements/OrderStorage.cs @@ -60,7 +60,17 @@ namespace PlumbingRepairListImplement.Implements } } } - return result; + else if (model.ImplementerId.HasValue) + { + foreach (var order in _source.Orders) + { + if (order.ImplementerId == model.ImplementerId) + { + result.Add(order.GetViewModel); + } + } + } + return result; } public OrderViewModel? GetElement(OrderSearchModel model) diff --git a/PlumbingRepairListImplement/Models/Implementer.cs b/PlumbingRepairListImplement/Models/Implementer.cs new file mode 100644 index 0000000..c67a161 --- /dev/null +++ b/PlumbingRepairListImplement/Models/Implementer.cs @@ -0,0 +1,54 @@ +using PlumbingRepairContracts.BindingModels; +using PlumbingRepairContracts.ViewModels; +using PlumbingRepairDataModels.Models; + +namespace PlumbingRepairListImplement.Models +{ + public class Implementer : IImplementerModel + { + public string ImplementerFIO { get; set; } = string.Empty; + + public string Password { get; set; } = string.Empty; + + public int WorkExperience { get; set; } + + public int Qualification { get; set; } + + public int Id { get; set; } + public static Implementer? Create(ImplementerBindingModel? model) + { + if (model == null) + { + return null; + } + return new Implementer() + { + Id = model.Id, + ImplementerFIO = model.ImplementerFIO, + Password = model.Password, + WorkExperience = model.WorkExperience, + Qualification = model.Qualification + }; + } + + public void Update(ImplementerBindingModel? model) + { + if (model == null) + { + return; + } + ImplementerFIO = model.ImplementerFIO; + Password = model.Password; + WorkExperience = model.WorkExperience; + Qualification = model.Qualification; + } + public ImplementerViewModel GetViewModel => new() + { + Id = Id, + ImplementerFIO = ImplementerFIO, + Password = Password, + WorkExperience = WorkExperience, + Qualification = Qualification + }; + } +} diff --git a/PlumbingRepairListImplement/Models/Order.cs b/PlumbingRepairListImplement/Models/Order.cs index 0afff36..cff3824 100644 --- a/PlumbingRepairListImplement/Models/Order.cs +++ b/PlumbingRepairListImplement/Models/Order.cs @@ -11,7 +11,8 @@ namespace PlumbingRepairListImplement.Models public int WorkId { get; private set; } public string WorkName { get; private set; } public int ClientId { get; private set; } - public int Count { get; private set; } + public int? ImplementerId { get; private set; } + public int Count { get; private set; } public double Sum { get; private set; } public OrderStatus Status { get; private set; } = OrderStatus.Неизвестен; public DateTime DateCreate { get; private set; } = DateTime.Now; @@ -29,7 +30,8 @@ namespace PlumbingRepairListImplement.Models WorkId = model.WorkId, WorkName = model.WorkName, ClientId = model.ClientId, - Count = model.Count, + ImplementerId = model.ImplementerId, + Count = model.Count, Sum = model.Sum, Status = model.Status, DateCreate = model.DateCreate, @@ -45,7 +47,8 @@ namespace PlumbingRepairListImplement.Models } Status = model.Status; DateImplement = model.DateImplement; - } + ImplementerId = model.ImplementerId; + } public OrderViewModel GetViewModel => new() { @@ -53,7 +56,8 @@ namespace PlumbingRepairListImplement.Models WorkId = WorkId, WorkName = WorkName, ClientId = ClientId, - Count = Count, + ImplementerId = ImplementerId, + Count = Count, Sum = Sum, Status = Status, DateCreate = DateCreate, diff --git a/PlumbingRepairRestApi/Program.cs b/PlumbingRepairRestApi/Program.cs index e2c3ca3..e2b6384 100644 --- a/PlumbingRepairRestApi/Program.cs +++ b/PlumbingRepairRestApi/Program.cs @@ -13,8 +13,10 @@ builder.Logging.AddLog4Net("log4net.config"); builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddTransient(); +builder.Services.AddTransient(); builder.Services.AddTransient(); +builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddTransient(); diff --git a/PlumpingRepairFileImplement/DataFileSingleton.cs b/PlumpingRepairFileImplement/DataFileSingleton.cs index f2df4f6..dbf8387 100644 --- a/PlumpingRepairFileImplement/DataFileSingleton.cs +++ b/PlumpingRepairFileImplement/DataFileSingleton.cs @@ -11,13 +11,15 @@ namespace PlumbingRepairFileImplement private readonly string OrderFileName = "Order.xml"; private readonly string WorkFileName = "Work.xml"; private readonly string ClientFileName = "Client.xml"; + private readonly string ImplementerFileName = "Implementer.xml"; - public List Components { get; private set; } + public List Components { get; private set; } public List Orders { get; private set; } public List Works { get; private set; } public List Clients { get; private set; } + public List Implementers { get; private set; } - public static DataFileSingleton GetInstance() + public static DataFileSingleton GetInstance() { if (instance == null) { @@ -30,14 +32,16 @@ namespace PlumbingRepairFileImplement public void SaveWorks() => SaveData(Works, WorkFileName, "Works", x => x.GetXElement); public void SaveOrders() => SaveData(Orders, OrderFileName, "Orders", x => x.GetXElement); public void SaveClients() => SaveData(Clients, ClientFileName, "Clients", x => x.GetXElement); + public void SaveImplementers() => SaveData(Implementers, ImplementerFileName, "Implementers", x => x.GetXElement); - private DataFileSingleton() + private DataFileSingleton() { Components = LoadData(ComponentFileName, "Component", x => Component.Create(x)!)!; Works = LoadData(WorkFileName, "Work", x => Work.Create(x)!)!; Orders = LoadData(OrderFileName, "Order", x => Order.Create(x)!)!; Clients = LoadData(ClientFileName, "Client", x => Client.Create(x)!)!; - } + Implementers = LoadData(ImplementerFileName, "Implementer", x => Implementer.Create(x)!)!; + } private static List? LoadData(string filename, string xmlNodeName, Func selectFunction) { diff --git a/PlumpingRepairFileImplement/Implements/ImplementerStorage.cs b/PlumpingRepairFileImplement/Implements/ImplementerStorage.cs new file mode 100644 index 0000000..0f146b9 --- /dev/null +++ b/PlumpingRepairFileImplement/Implements/ImplementerStorage.cs @@ -0,0 +1,83 @@ +using PlumbingRepairContracts.BindingModels; +using PlumbingRepairContracts.SearchModels; +using PlumbingRepairContracts.StoragesContracts; +using PlumbingRepairContracts.ViewModels; +using PlumbingRepairFileImplement.Models; + +namespace PlumbingRepairFileImplement.Implements +{ + public class ImplementerStorage : IImplementerStorage + { + private readonly DataFileSingleton source; + public ImplementerStorage() + { + source = DataFileSingleton.GetInstance(); + } + public ImplementerViewModel? Delete(ImplementerBindingModel model) + { + var element = source.Implementers.FirstOrDefault(x => x.Id == model.Id); + if (element != null) + { + source.Implementers.Remove(element); + source.SaveImplementers(); + return element.GetViewModel; + } + return null; + } + + public ImplementerViewModel? GetElement(ImplementerSearchModel model) + { + if (model.Id.HasValue) + { + return source.Implementers + .FirstOrDefault(x => (x.Id == model.Id))?.GetViewModel; + } + else if (!string.IsNullOrEmpty(model.ImplementerFIO) && !string.IsNullOrEmpty(model.Password)) + { + return source.Implementers + .FirstOrDefault(x => (x.ImplementerFIO == model.ImplementerFIO && x.Password == model.Password))?.GetViewModel; + } + return new(); + } + + public List GetFilteredList(ImplementerSearchModel model) + { + if (string.IsNullOrEmpty(model.ImplementerFIO)) + { + return new(); + } + return source.Implementers.Where(x => + x.ImplementerFIO.Contains(model.ImplementerFIO)).Select(x => x.GetViewModel).ToList(); + } + + public List GetFullList() + { + return source.Implementers.Select(x => x.GetViewModel).ToList(); + } + + public ImplementerViewModel? Insert(ImplementerBindingModel model) + { + model.Id = source.Implementers.Count > 0 ? source.Implementers.Max(x => x.Id) + 1 : 1; + var newImplementer = Implementer.Create(model); + if (newImplementer == null) + { + return null; + } + source.Implementers.Add(newImplementer); + source.SaveImplementers(); + return newImplementer.GetViewModel; + } + + public ImplementerViewModel? Update(ImplementerBindingModel model) + { + var implementer = source.Implementers.FirstOrDefault(x => x.Id == model.Id); + if (implementer == null) + { + return null; + } + implementer.Update(model); + source.SaveImplementers(); + return implementer.GetViewModel; + } + } +} diff --git a/PlumpingRepairFileImplement/Implements/OrderStorage.cs b/PlumpingRepairFileImplement/Implements/OrderStorage.cs index d78f954..d11309f 100644 --- a/PlumpingRepairFileImplement/Implements/OrderStorage.cs +++ b/PlumpingRepairFileImplement/Implements/OrderStorage.cs @@ -43,8 +43,15 @@ namespace PlumbingRepairFileImplement.Implements .Select(x => x.GetViewModel) .ToList(); } + else if (model.ImplementerId.HasValue) + { + return source.Orders + .Where(x => x.ImplementerId == model.ImplementerId) + .Select(x => x.GetViewModel) + .ToList(); + } - return new(); + return new(); } public OrderViewModel? GetElement(OrderSearchModel model) diff --git a/PlumpingRepairFileImplement/Models/Implementer.cs b/PlumpingRepairFileImplement/Models/Implementer.cs new file mode 100644 index 0000000..8644896 --- /dev/null +++ b/PlumpingRepairFileImplement/Models/Implementer.cs @@ -0,0 +1,76 @@ +using PlumbingRepairContracts.BindingModels; +using PlumbingRepairContracts.ViewModels; +using PlumbingRepairDataModels.Models; +using System.Xml.Linq; + +namespace PlumbingRepairFileImplement.Models +{ + public class Implementer : IImplementerModel + { + public string ImplementerFIO { get; set; } = string.Empty; + + public string Password { get; set; } = string.Empty; + + public int WorkExperience { get; set; } + + public int Qualification { get; set; } + + public int Id { get; set; } + + public static Implementer? Create(ImplementerBindingModel? model) + { + if (model == null) + { + return null; + } + return new Implementer() + { + Id = model.Id, + ImplementerFIO = model.ImplementerFIO, + Password = model.Password, + WorkExperience = model.WorkExperience, + Qualification = model.Qualification + }; + } + public static Implementer? Create(XElement element) + { + if (element == null) + { + return null; + } + return new Implementer() + { + Id = Convert.ToInt32(element.Attribute("Id")!.Value), + ImplementerFIO = element.Element("ImplementerFIO")!.Value, + Password = element.Element("Password")!.Value, + WorkExperience = Convert.ToInt32(element.Element("WorkExperience")!.Value), + Qualification = Convert.ToInt32(element.Element("Qualification")!.Value) + }; + } + public void Update(ImplementerBindingModel? model) + { + if (model == null) + { + return; + } + ImplementerFIO = model.ImplementerFIO; + Password = model.Password; + WorkExperience = model.WorkExperience; + Qualification = model.Qualification; + } + public ImplementerViewModel GetViewModel => new() + { + Id = Id, + ImplementerFIO = ImplementerFIO, + Password = Password, + WorkExperience = WorkExperience, + Qualification = Qualification + }; + public XElement GetXElement => new("Implementer", + new XAttribute("Id", Id), + new XElement("ImplementerFIO", ImplementerFIO), + new XElement("Password", Password), + new XElement("WorkExperience", WorkExperience), + new XElement("Qualification", Qualification)); + } +} diff --git a/PlumpingRepairFileImplement/Models/Order.cs b/PlumpingRepairFileImplement/Models/Order.cs index 7d2615c..49e261f 100644 --- a/PlumpingRepairFileImplement/Models/Order.cs +++ b/PlumpingRepairFileImplement/Models/Order.cs @@ -11,7 +11,8 @@ namespace PlumbingRepairFileImplement.Models public int Id { get; private set; } public int WorkId { get; private set; } public int ClientId { get; private set; } - public string WorkName { get; private set; } = string.Empty; + public int? ImplementerId { get; private set; } + public string WorkName { get; private set; } = string.Empty; public int Count { get; private set; } public double Sum { get; private set; } public OrderStatus Status { get; private set; } = OrderStatus.Неизвестен; @@ -30,7 +31,8 @@ namespace PlumbingRepairFileImplement.Models WorkId = model.WorkId, WorkName = model.WorkName, ClientId = model.ClientId, - Count = model.Count, + ImplementerId = model.ImplementerId, + Count = model.Count, Sum = model.Sum, Status = model.Status, DateCreate = model.DateCreate, @@ -51,7 +53,8 @@ namespace PlumbingRepairFileImplement.Models WorkId = Convert.ToInt32(element.Element("WorkId")!.Value), WorkName = element.Element("WorkName")!.Value, ClientId = Convert.ToInt32(element.Element("ClientId")!.Value), - Count = Convert.ToInt32(element.Element("Count")!.Value), + ImplementerId = Convert.ToInt32(element.Element("ImplementerId")!.Value), + Count = Convert.ToInt32(element.Element("Count")!.Value), Sum = Convert.ToDouble(element.Element("Sum")!.Value), Status = (OrderStatus)Enum.Parse(typeof(OrderStatus), element.Element("Status")!.Value), DateCreate = DateTime.ParseExact(element.Element("DateCreate")!.Value, "G", null) @@ -71,7 +74,8 @@ namespace PlumbingRepairFileImplement.Models } Status = model.Status; DateImplement = model.DateImplement; - } + ImplementerId = model.ImplementerId; + } public OrderViewModel GetViewModel => new() { @@ -79,7 +83,8 @@ namespace PlumbingRepairFileImplement.Models WorkId = WorkId, WorkName = WorkName, ClientId = ClientId, - Count = Count, + ImplementerId = ImplementerId, + Count = Count, Sum = Sum, Status = Status, DateCreate = DateCreate, @@ -91,7 +96,8 @@ namespace PlumbingRepairFileImplement.Models new XElement("WorkName", WorkName), new XElement("WorkId", WorkId.ToString()), new XElement("ClientId", ClientId.ToString()), - new XElement("Count", Count.ToString()), + new XElement("ImplementerId", ImplementerId), + new XElement("Count", Count.ToString()), new XElement("Sum", Sum.ToString()), new XElement("Status", Status.ToString()), new XElement("DateCreate", DateCreate.ToString()),