сделаны формы для клиента

This commit is contained in:
evasina2312@gmail.com 2023-05-09 21:57:43 +04:00
parent 81749a6a2c
commit 2d50707587
16 changed files with 462 additions and 111 deletions

View File

@ -28,12 +28,64 @@
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.buttonRef = new System.Windows.Forms.Button();
this.buttonDel = new System.Windows.Forms.Button();
this.dataGridView = new System.Windows.Forms.DataGridView();
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
this.SuspendLayout();
//
// buttonRef
//
this.buttonRef.Location = new System.Drawing.Point(623, 52);
this.buttonRef.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.buttonRef.Name = "buttonRef";
this.buttonRef.Size = new System.Drawing.Size(175, 31);
this.buttonRef.TabIndex = 4;
this.buttonRef.Text = "Обновить";
this.buttonRef.UseVisualStyleBackColor = true;
//
// buttonDel
//
this.buttonDel.Location = new System.Drawing.Point(623, 13);
this.buttonDel.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.buttonDel.Name = "buttonDel";
this.buttonDel.Size = new System.Drawing.Size(175, 31);
this.buttonDel.TabIndex = 3;
this.buttonDel.Text = "Удалить";
this.buttonDel.UseVisualStyleBackColor = true;
//
// dataGridView
//
this.dataGridView.BackgroundColor = System.Drawing.SystemColors.ControlLightLight;
this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView.Location = new System.Drawing.Point(12, 2);
this.dataGridView.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.dataGridView.Name = "dataGridView";
this.dataGridView.RowHeadersWidth = 51;
this.dataGridView.RowTemplate.Height = 25;
this.dataGridView.Size = new System.Drawing.Size(605, 596);
this.dataGridView.TabIndex = 2;
//
// FormClient
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Text = "FormClient";
this.ClientSize = new System.Drawing.Size(816, 584);
this.Controls.Add(this.buttonRef);
this.Controls.Add(this.buttonDel);
this.Controls.Add(this.dataGridView);
this.Name = "FormClient";
this.Text = "Клиенты";
this.Load += new System.EventHandler(this.FormClients_Load);
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
this.ResumeLayout(false);
}
#endregion
private Button buttonRef;
private Button buttonDel;
private DataGridView dataGridView;
}
}

View File

@ -1,20 +1,73 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ComputersShopContracts.BindingModels;
using ComputersShopContracts.BusinessLogicsContracts;
using Microsoft.Extensions.Logging;
namespace ComputersShopView
{
public partial class FormClient : Form
{
public FormClient()
private readonly ILogger _logger;
private readonly IClientLogic _logic;
public FormClient(ILogger<FormClient> logger, IClientLogic logic)
{
InitializeComponent();
_logger = logger;
_logic = logic;
}
private void FormClients_Load(object sender, EventArgs e)
{
LoadData();
}
private void LoadData()
{
try
{
var list = _logic.ReadList(null);
if (list != null)
{
dataGridView.DataSource = list;
dataGridView.Columns["Id"].Visible = false;
dataGridView.Columns["ClientFIO"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
_logger.LogInformation("Загрузка клиентов");
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка загрузки клиентов");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void ButtonDel_Click(object sender, EventArgs e)
{
if (dataGridView.SelectedRows.Count == 1)
{
if (MessageBox.Show("Удалить запись?", "Вопрос", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
int id =
Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
_logger.LogInformation("Удаление клиента");
try
{
if (!_logic.Delete(new ClientBindingModel
{
Id = id
}))
{
throw new Exception("Ошибка при удалении. Дополнительная информация в логах.");
}
LoadData();
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка удаления клиента");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
private void ButtonRef_click(object sender, EventArgs e)
{
LoadData();
}
}
}

View File

@ -1,64 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">

View File

@ -36,13 +36,14 @@
this.textBoxSum = new System.Windows.Forms.TextBox();
this.textBoxCount = new System.Windows.Forms.TextBox();
this.comboBoxComputer = new System.Windows.Forms.ComboBox();
this.Load += new System.EventHandler(this.FormCreateOrder_Load);
this.comboBoxClient = new System.Windows.Forms.ComboBox();
this.labelClient = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// buttonCancel
//
this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonCancel.Location = new System.Drawing.Point(289, 126);
this.buttonCancel.Location = new System.Drawing.Point(288, 174);
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);
@ -54,7 +55,7 @@
// buttonSave
//
this.buttonSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonSave.Location = new System.Drawing.Point(180, 126);
this.buttonSave.Location = new System.Drawing.Point(179, 174);
this.buttonSave.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.buttonSave.Name = "buttonSave";
this.buttonSave.Size = new System.Drawing.Size(103, 31);
@ -120,11 +121,32 @@
this.comboBoxComputer.TabIndex = 5;
this.comboBoxComputer.SelectedIndexChanged += new System.EventHandler(this.ComboBoxComputer_SelectedIndexChanged);
//
// comboBoxClient
//
this.comboBoxClient.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxClient.FormattingEnabled = true;
this.comboBoxClient.Location = new System.Drawing.Point(123, 130);
this.comboBoxClient.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.comboBoxClient.Name = "comboBoxClient";
this.comboBoxClient.Size = new System.Drawing.Size(255, 28);
this.comboBoxClient.TabIndex = 14;
//
// labelClient
//
this.labelClient.AutoSize = true;
this.labelClient.Location = new System.Drawing.Point(14, 133);
this.labelClient.Name = "labelClient";
this.labelClient.Size = new System.Drawing.Size(58, 20);
this.labelClient.TabIndex = 13;
this.labelClient.Text = "Клиент";
//
// FormCreateOrder
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(387, 170);
this.ClientSize = new System.Drawing.Size(386, 218);
this.Controls.Add(this.comboBoxClient);
this.Controls.Add(this.labelClient);
this.Controls.Add(this.buttonCancel);
this.Controls.Add(this.buttonSave);
this.Controls.Add(this.labelSum);
@ -135,6 +157,7 @@
this.Controls.Add(this.comboBoxComputer);
this.Name = "FormCreateOrder";
this.Text = "Заказ";
this.Load += new System.EventHandler(this.FormCreateOrder_Load);
this.ResumeLayout(false);
this.PerformLayout();
@ -150,5 +173,7 @@
private TextBox textBoxSum;
private TextBox textBoxCount;
private ComboBox comboBoxComputer;
private ComboBox comboBoxClient;
private Label labelClient;
}
}

View File

@ -10,12 +10,14 @@ namespace ComputersShopView
private readonly ILogger _logger;
private readonly IComputerLogic _logicC;
private readonly IOrderLogic _logicO;
public FormCreateOrder(ILogger<FormCreateOrder> logger, IComputerLogic logicC, IOrderLogic logicO)
private readonly IClientLogic _logicCl;
public FormCreateOrder(ILogger<FormCreateOrder> logger, IComputerLogic logicC, IOrderLogic logicO, IClientLogic logicCl)
{
InitializeComponent();
_logger = logger;
_logicC = logicC;
_logicO = logicO;
_logicCl = logicCl;
}
private void FormCreateOrder_Load(object sender, EventArgs e)
{
@ -28,6 +30,14 @@ namespace ComputersShopView
comboBoxComputer.DataSource = list;
comboBoxComputer.SelectedItem = null;
}
var clients = _logicCl.ReadList(null);
if (clients != null)
{
comboBoxClient.DisplayMember = "ClientFIO";
comboBoxClient.ValueMember = "Id";
comboBoxClient.DataSource = clients;
comboBoxClient.SelectedItem = null;
}
}
private void CalcSum()
{
@ -68,17 +78,20 @@ namespace ComputersShopView
MessageBox.Show("Выберите изделие", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (comboBoxClient.SelectedValue == null)
{
MessageBox.Show("Выберите клиента", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
_logger.LogInformation("Создание заказа");
try
{
int id = Convert.ToInt32(comboBoxComputer.SelectedValue);
int counr = Convert.ToInt32(textBoxCount.Text);
double sum = Convert.ToDouble(textBoxSum.Text);
var operationResult = _logicO.CreateOrder(new OrderBindingModel
{
ComputerId = Convert.ToInt32(comboBoxComputer.SelectedValue),
Count = Convert.ToInt32(textBoxCount.Text),
Sum = Convert.ToDouble(textBoxSum.Text)
Sum = Convert.ToDouble(textBoxSum.Text),
ClientId = Convert.ToInt32(comboBoxClient.SelectedValue)
});
if (!operationResult)
{

View File

@ -33,22 +33,23 @@
this.buttonOrderReady = new System.Windows.Forms.Button();
this.buttonTakeOrderInWork = new System.Windows.Forms.Button();
this.buttonCreateOrder = new System.Windows.Forms.Button();
this.dataGridView = new System.Windows.Forms.DataGridView();
this.menuStrip = new System.Windows.Forms.MenuStrip();
this.refbooksToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.componentsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.computersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.clientsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.reportsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.reportComponentsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.reportComputerComponentsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.reportOrdersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
this.dataGridView = new System.Windows.Forms.DataGridView();
this.menuStrip.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
this.SuspendLayout();
//
// buttonRef
//
this.buttonRef.Location = new System.Drawing.Point(927, 195);
this.buttonRef.Location = new System.Drawing.Point(1083, 195);
this.buttonRef.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.buttonRef.Name = "buttonRef";
this.buttonRef.RightToLeft = System.Windows.Forms.RightToLeft.No;
@ -60,7 +61,7 @@
//
// buttonIssuedOrder
//
this.buttonIssuedOrder.Location = new System.Drawing.Point(928, 156);
this.buttonIssuedOrder.Location = new System.Drawing.Point(1084, 156);
this.buttonIssuedOrder.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.buttonIssuedOrder.Name = "buttonIssuedOrder";
this.buttonIssuedOrder.RightToLeft = System.Windows.Forms.RightToLeft.No;
@ -72,7 +73,7 @@
//
// buttonOrderReady
//
this.buttonOrderReady.Location = new System.Drawing.Point(927, 117);
this.buttonOrderReady.Location = new System.Drawing.Point(1083, 117);
this.buttonOrderReady.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.buttonOrderReady.Name = "buttonOrderReady";
this.buttonOrderReady.RightToLeft = System.Windows.Forms.RightToLeft.No;
@ -84,7 +85,7 @@
//
// buttonTakeOrderInWork
//
this.buttonTakeOrderInWork.Location = new System.Drawing.Point(927, 79);
this.buttonTakeOrderInWork.Location = new System.Drawing.Point(1083, 79);
this.buttonTakeOrderInWork.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.buttonTakeOrderInWork.Name = "buttonTakeOrderInWork";
this.buttonTakeOrderInWork.RightToLeft = System.Windows.Forms.RightToLeft.No;
@ -96,7 +97,7 @@
//
// buttonCreateOrder
//
this.buttonCreateOrder.Location = new System.Drawing.Point(927, 40);
this.buttonCreateOrder.Location = new System.Drawing.Point(1083, 40);
this.buttonCreateOrder.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.buttonCreateOrder.Name = "buttonCreateOrder";
this.buttonCreateOrder.RightToLeft = System.Windows.Forms.RightToLeft.No;
@ -106,18 +107,6 @@
this.buttonCreateOrder.UseVisualStyleBackColor = true;
this.buttonCreateOrder.Click += new System.EventHandler(this.ButtonCreateOrder_Click);
//
// dataGridView
//
this.dataGridView.BackgroundColor = System.Drawing.SystemColors.ControlLightLight;
this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView.Location = new System.Drawing.Point(12, 40);
this.dataGridView.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.dataGridView.Name = "dataGridView";
this.dataGridView.RowHeadersWidth = 51;
this.dataGridView.RowTemplate.Height = 25;
this.dataGridView.Size = new System.Drawing.Size(909, 608);
this.dataGridView.TabIndex = 3;
//
// menuStrip
//
this.menuStrip.ImageScalingSize = new System.Drawing.Size(20, 20);
@ -126,7 +115,7 @@
this.reportsToolStripMenuItem});
this.menuStrip.Location = new System.Drawing.Point(0, 0);
this.menuStrip.Name = "menuStrip";
this.menuStrip.Size = new System.Drawing.Size(1256, 28);
this.menuStrip.Size = new System.Drawing.Size(1418, 28);
this.menuStrip.TabIndex = 9;
this.menuStrip.Text = "menuStrip1";
//
@ -134,7 +123,8 @@
//
this.refbooksToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.componentsToolStripMenuItem,
this.computersToolStripMenuItem});
this.computersToolStripMenuItem,
this.clientsToolStripMenuItem});
this.refbooksToolStripMenuItem.Name = "refbooksToolStripMenuItem";
this.refbooksToolStripMenuItem.Size = new System.Drawing.Size(117, 24);
this.refbooksToolStripMenuItem.Text = "Справочники";
@ -142,17 +132,24 @@
// componentsToolStripMenuItem
//
this.componentsToolStripMenuItem.Name = "componentsToolStripMenuItem";
this.componentsToolStripMenuItem.Size = new System.Drawing.Size(182, 26);
this.componentsToolStripMenuItem.Size = new System.Drawing.Size(224, 26);
this.componentsToolStripMenuItem.Text = "Компоненты";
this.componentsToolStripMenuItem.Click += new System.EventHandler(this.ComponentsToolStripMenuItem_Click);
//
// computersToolStripMenuItem
//
this.computersToolStripMenuItem.Name = "computersToolStripMenuItem";
this.computersToolStripMenuItem.Size = new System.Drawing.Size(182, 26);
this.computersToolStripMenuItem.Size = new System.Drawing.Size(224, 26);
this.computersToolStripMenuItem.Text = "Изделия";
this.computersToolStripMenuItem.Click += new System.EventHandler(this.ComputersToolStripMenuItem_Click);
//
// clientsToolStripMenuItem
//
this.clientsToolStripMenuItem.Name = "clientsToolStripMenuItem";
this.clientsToolStripMenuItem.Size = new System.Drawing.Size(224, 26);
this.clientsToolStripMenuItem.Text = "Клиенты";
this.clientsToolStripMenuItem.Click += new System.EventHandler(this.ClientsToolStripMenuItem_Click);
//
// reportsToolStripMenuItem
//
this.reportsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -184,11 +181,23 @@
this.reportOrdersToolStripMenuItem.Text = "Список заказов";
this.reportOrdersToolStripMenuItem.Click += new System.EventHandler(this.ReportOrdersToolStripMenuItem_Click);
//
// dataGridView
//
this.dataGridView.BackgroundColor = System.Drawing.SystemColors.ControlLightLight;
this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView.Location = new System.Drawing.Point(12, 40);
this.dataGridView.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.dataGridView.Name = "dataGridView";
this.dataGridView.RowHeadersWidth = 51;
this.dataGridView.RowTemplate.Height = 25;
this.dataGridView.Size = new System.Drawing.Size(1050, 608);
this.dataGridView.TabIndex = 3;
//
// FormMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1256, 677);
this.ClientSize = new System.Drawing.Size(1418, 677);
this.Controls.Add(this.buttonRef);
this.Controls.Add(this.buttonIssuedOrder);
this.Controls.Add(this.buttonOrderReady);
@ -200,9 +209,9 @@
this.Name = "FormMain";
this.Text = "Продажа компьютеров";
this.Load += new System.EventHandler(this.FormMain_Load);
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
this.menuStrip.ResumeLayout(false);
this.menuStrip.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@ -215,7 +224,6 @@
private Button buttonOrderReady;
private Button buttonTakeOrderInWork;
private Button buttonCreateOrder;
private DataGridView dataGridView;
private MenuStrip menuStrip;
private ToolStripMenuItem refbooksToolStripMenuItem;
private ToolStripMenuItem componentsToolStripMenuItem;
@ -224,5 +232,7 @@
private ToolStripMenuItem reportComponentsToolStripMenuItem;
private ToolStripMenuItem reportComputerComponentsToolStripMenuItem;
private ToolStripMenuItem reportOrdersToolStripMenuItem;
private ToolStripMenuItem clientsToolStripMenuItem;
private DataGridView dataGridView;
}
}

View File

@ -31,6 +31,7 @@ namespace ComputersShopView
{
dataGridView.DataSource = list;
dataGridView.Columns["ComputerId"].Visible = false;
dataGridView.Columns["ClientId"].Visible = false;
dataGridView.Columns["ComputerName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
}
@ -170,5 +171,14 @@ namespace ComputersShopView
LoadData();
}
}
private void ClientsToolStripMenuItem_Click(object sender, EventArgs e)
{
var service = Program.ServiceProvider?.GetService(typeof(FormClient));
if (service is FormClient form)
{
form.ShowDialog();
LoadData();
}
}
}
}

View File

@ -35,9 +35,11 @@ namespace ComputersShopView
services.AddTransient<IComponentStorage, ComponentStorage>();
services.AddTransient<IOrderStorage, OrderStorage>();
services.AddTransient<IComputerStorage, ComputerStorage>();
services.AddTransient<IClientStorage, ClientStorage>();
services.AddTransient<IComponentLogic, ComponentLogic>();
services.AddTransient<IOrderLogic, OrderLogic>();
services.AddTransient<IComputerLogic, ComputerLogic>();
services.AddTransient<IClientLogic, ClientLogic>();
services.AddTransient<IReportLogic, ReportLogic>();
services.AddTransient<AbstractSaveToWord, SaveToWord>();
services.AddTransient<AbstractSaveToExcel, SaveToExcel>();
@ -51,6 +53,7 @@ namespace ComputersShopView
services.AddTransient<FormComputers>();
services.AddTransient<FormReportComputerComponents>();
services.AddTransient<FormReportOrders>();
services.AddTransient<FormClient>();
}
}
}

View File

@ -12,5 +12,6 @@ namespace ComputersShopContracts.BindingModels
public OrderStatus Status { get; set; } = OrderStatus.Неизвестен;
public DateTime DateCreate { get; set; } = DateTime.Now;
public DateTime? DateImplement { get; set; }
public int ClientId { get; set; }
}
}

View File

@ -5,5 +5,6 @@
public int? Id { get; set; }
public DateTime? DateFrom { get; set; }
public DateTime? DateTo { get; set;}
public int? ClientId { get; set; }
}
}

View File

@ -9,6 +9,7 @@ namespace ComputersShopContracts.ViewModels
[DisplayName("Номер")]
public int Id { get; set; }
public int ComputerId { get; set; }
public int ClientId { get; set; }
[DisplayName("Изделие")]
public string ComputerName { get; set; } = string.Empty;
[DisplayName("Количество")]
@ -21,5 +22,7 @@ namespace ComputersShopContracts.ViewModels
public DateTime DateCreate { get; set; } = DateTime.Now;
[DisplayName("Дата выполнения")]
public DateTime? DateImplement { get; set; }
[DisplayName("Клиент")]
public string ClientFIO { get; set; } = string.Empty;
}
}

View File

@ -4,6 +4,7 @@ using ComputersShopContracts.StoragesContracts;
using ComputersShopContracts.ViewModels;
using ComputersShopDatabaseImplement.Models;
using DocumentFormat.OpenXml.InkML;
using Microsoft.EntityFrameworkCore;
namespace ComputersShopDatabaseImplement.Implements
{
@ -13,6 +14,7 @@ namespace ComputersShopDatabaseImplement.Implements
{
using var context = new ComputersShopDatabase();
List<OrderViewModel> orderList = context.Orders
.Include(x => x.Client)
.Select(x => x.GetViewModel)
.ToList();
foreach (var order in orderList)

View File

@ -0,0 +1,212 @@
// <auto-generated />
using System;
using ComputersShopDatabaseImplement;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace ComputersShopDatabaseImplement.Migrations
{
[DbContext(typeof(ComputersShopDatabase))]
[Migration("20230509164211_fix")]
partial class fix
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "7.0.4")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("ComputersShopDatabaseImplement.Models.Client", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("ClientFIO")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Password")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Clients");
});
modelBuilder.Entity("ComputersShopDatabaseImplement.Models.Component", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("ComponentName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<double>("Cost")
.HasColumnType("float");
b.HasKey("Id");
b.ToTable("Components");
});
modelBuilder.Entity("ComputersShopDatabaseImplement.Models.Computer", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("ComputerName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<double>("Price")
.HasColumnType("float");
b.HasKey("Id");
b.ToTable("Computers");
});
modelBuilder.Entity("ComputersShopDatabaseImplement.Models.ComputerComponent", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<int>("ComponentId")
.HasColumnType("int");
b.Property<int>("ComputerId")
.HasColumnType("int");
b.Property<int>("Count")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ComponentId");
b.HasIndex("ComputerId");
b.ToTable("ComputerComponents");
});
modelBuilder.Entity("ComputersShopDatabaseImplement.Models.Order", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<int>("ClientId")
.HasColumnType("int");
b.Property<int>("ComputerId")
.HasColumnType("int");
b.Property<int>("Count")
.HasColumnType("int");
b.Property<DateTime>("DateCreate")
.HasColumnType("datetime2");
b.Property<DateTime?>("DateImplement")
.HasColumnType("datetime2");
b.Property<int>("Status")
.HasColumnType("int");
b.Property<double>("Sum")
.HasColumnType("float");
b.HasKey("Id");
b.HasIndex("ClientId");
b.HasIndex("ComputerId");
b.ToTable("Orders");
});
modelBuilder.Entity("ComputersShopDatabaseImplement.Models.ComputerComponent", b =>
{
b.HasOne("ComputersShopDatabaseImplement.Models.Component", "Component")
.WithMany("ComputerComponents")
.HasForeignKey("ComponentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("ComputersShopDatabaseImplement.Models.Computer", "Computer")
.WithMany("Components")
.HasForeignKey("ComputerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Component");
b.Navigation("Computer");
});
modelBuilder.Entity("ComputersShopDatabaseImplement.Models.Order", b =>
{
b.HasOne("ComputersShopDatabaseImplement.Models.Client", "Client")
.WithMany("Orders")
.HasForeignKey("ClientId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("ComputersShopDatabaseImplement.Models.Computer", null)
.WithMany("Orders")
.HasForeignKey("ComputerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Client");
});
modelBuilder.Entity("ComputersShopDatabaseImplement.Models.Client", b =>
{
b.Navigation("Orders");
});
modelBuilder.Entity("ComputersShopDatabaseImplement.Models.Component", b =>
{
b.Navigation("ComputerComponents");
});
modelBuilder.Entity("ComputersShopDatabaseImplement.Models.Computer", b =>
{
b.Navigation("Components");
b.Navigation("Orders");
});
#pragma warning restore 612, 618
}
}
}

View File

@ -0,0 +1,22 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace ComputersShopDatabaseImplement.Migrations
{
/// <inheritdoc />
public partial class fix : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}

View File

@ -22,6 +22,7 @@ namespace ComputersShopDatabaseImplement.Models
public DateTime? DateImplement { get; private set; }
[Required]
public int ClientId { get; private set; }
[Required]
public virtual Client? Client { get; set; }
public static Order? Create(OrderBindingModel model)
@ -38,7 +39,8 @@ namespace ComputersShopDatabaseImplement.Models
Sum = model.Sum,
Status = model.Status,
DateCreate = model.DateCreate,
DateImplement = model.DateImplement
DateImplement = model.DateImplement,
ClientId = model.ClientId
};
}
public static Order Create(OrderViewModel model)
@ -74,7 +76,9 @@ namespace ComputersShopDatabaseImplement.Models
Sum = Sum,
Status = Status,
DateCreate = DateCreate,
DateImplement = DateImplement
DateImplement = DateImplement,
ClientId = ClientId,
ClientFIO = Client?.ClientFIO ?? string.Empty
};
}
}