Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
930a6448ab |
@ -0,0 +1,20 @@
|
||||
namespace ProjectConfectFactory.Entities;
|
||||
|
||||
public class Component
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
public string Unit { get; private set; } = string.Empty;
|
||||
public decimal Count { get; private set; }
|
||||
|
||||
public static Component CreateEntity(int id, string name, string unit, decimal count)
|
||||
{
|
||||
return new Component
|
||||
{
|
||||
Id = id,
|
||||
Name = name ?? string.Empty,
|
||||
Unit = unit ?? string.Empty,
|
||||
Count = count
|
||||
};
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
namespace ProjectConfectFactory.Entities.Enums;
|
||||
|
||||
public enum DeliveryType
|
||||
{
|
||||
None = 0,
|
||||
|
||||
Express = 1, // 1-2 дня
|
||||
|
||||
Middle = 2, // 3-5 дней
|
||||
|
||||
Long = 3 // 6-10 дней
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
namespace ProjectConfectFactory.Entities.Enums;
|
||||
|
||||
[Flags]
|
||||
public enum ProductType
|
||||
{
|
||||
None = 0,
|
||||
|
||||
Dark = 1, // горький шоколад
|
||||
|
||||
White = 2, // белый шоколад
|
||||
|
||||
Nut = 4, // ореховый
|
||||
|
||||
Fondant = 8, // с помадкой
|
||||
|
||||
Alcohol = 16 // с алкоголем
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,23 @@
|
||||
namespace ProjectConfectFactory.Entities;
|
||||
|
||||
// заказ
|
||||
public class Order
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
public string Phone { get; private set; } = string.Empty;
|
||||
public IEnumerable<OrderProducts> OrderProducts { get; private set;} = [];
|
||||
public DateTime DateTime { get; private set; }
|
||||
|
||||
public static Order CreateOpeartion(int id, string name, string phone, IEnumerable<OrderProducts> orderProducts)
|
||||
{
|
||||
return new Order
|
||||
{
|
||||
Id = id,
|
||||
Name = name ?? string.Empty,
|
||||
Phone = phone ?? string.Empty,
|
||||
OrderProducts = orderProducts,
|
||||
DateTime = DateTime.Now
|
||||
};
|
||||
}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
namespace ProjectConfectFactory.Entities;
|
||||
|
||||
// класс продукт в заказе
|
||||
public class OrderProducts
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
public int ProductId { get; private set; }
|
||||
public int Count { get; private set; }
|
||||
public decimal Price { get; private set; }
|
||||
|
||||
public static OrderProducts CreateElement(int id, int productId, int count, decimal price)
|
||||
{
|
||||
return new OrderProducts
|
||||
{
|
||||
Id = id,
|
||||
ProductId = productId,
|
||||
Count = count,
|
||||
Price = price
|
||||
};
|
||||
}
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
using ProjectConfectFactory.Entities.Enums;
|
||||
|
||||
namespace ProjectConfectFactory.Entities;
|
||||
|
||||
public class Product
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
public ProductType ProductType { get; private set; }
|
||||
public IEnumerable<Recipe> Recipe { get; private set; } = [];
|
||||
public decimal Price { get; private set; }
|
||||
|
||||
public static Product CreateEntity(int id, string name, ProductType productType, IEnumerable<Recipe> recipe, decimal price)
|
||||
{
|
||||
return new Product
|
||||
{
|
||||
Id = id,
|
||||
Name = name ?? string.Empty,
|
||||
ProductType = productType,
|
||||
Recipe = recipe,
|
||||
Price = price
|
||||
};
|
||||
}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
namespace ProjectConfectFactory.Entities;
|
||||
|
||||
//Закупка
|
||||
public class Purchase
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
public DateTime DateTime { get; private set; }
|
||||
public int SellerId { get; private set; }
|
||||
public int ComponentId { get; private set; }
|
||||
|
||||
public static Purchase CreateOpeartion(int id, int sellerId, int componentId)
|
||||
{
|
||||
return new Purchase
|
||||
{
|
||||
Id = id,
|
||||
DateTime = DateTime.Now,
|
||||
SellerId = sellerId,
|
||||
ComponentId = componentId
|
||||
};
|
||||
}
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
namespace ProjectConfectFactory.Entities;
|
||||
|
||||
// класс компонент в продукте (рецепт)
|
||||
public class Recipe
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
public int ComponentId { get; private set; }
|
||||
public double CountComponent { get; private set; }
|
||||
|
||||
public static Recipe CreateElement(int id, int componentId, double countComponent)
|
||||
{
|
||||
return new Recipe
|
||||
{
|
||||
Id = id,
|
||||
ComponentId = componentId,
|
||||
CountComponent = countComponent
|
||||
};
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
using ProjectConfectFactory.Entities.Enums;
|
||||
|
||||
namespace ProjectConfectFactory.Entities;
|
||||
|
||||
public class Seller
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
public string Phone { get; private set; } = string.Empty;
|
||||
public DeliveryType DeliveryTime { get; private set; }
|
||||
|
||||
public static Seller CreateEntity(int id, string name, string phone, DeliveryType deliveryTime)
|
||||
{
|
||||
return new Seller
|
||||
{
|
||||
Id = id,
|
||||
Name = name ?? string.Empty,
|
||||
Phone = phone ?? string.Empty,
|
||||
DeliveryTime = deliveryTime
|
||||
};
|
||||
}
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
namespace ProjectConfectFactory
|
||||
{
|
||||
partial class Form1
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(800, 450);
|
||||
this.Text = "Form1";
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
namespace ProjectConfectFactory
|
||||
{
|
||||
public partial class Form1 : Form
|
||||
{
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
139
ProjectConfectFactory/ProjectConfectFactory/FormConFactory.Designer.cs
generated
Normal file
139
ProjectConfectFactory/ProjectConfectFactory/FormConFactory.Designer.cs
generated
Normal file
@ -0,0 +1,139 @@
|
||||
namespace ProjectConfectFactory
|
||||
{
|
||||
partial class FormConFactory
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
menuStripTool = new MenuStrip();
|
||||
справочникиToolStripMenuItem = new ToolStripMenuItem();
|
||||
ProductToolStripMenuItem = new ToolStripMenuItem();
|
||||
SellerToolStripMenuItem = new ToolStripMenuItem();
|
||||
ComponentToolStripMenuItem = new ToolStripMenuItem();
|
||||
операцииToolStripMenuItem = new ToolStripMenuItem();
|
||||
OrderToolStripMenuItem = new ToolStripMenuItem();
|
||||
PurchaseToolStripMenuItem = new ToolStripMenuItem();
|
||||
ReportToolStripMenuItem = new ToolStripMenuItem();
|
||||
menuStripTool.SuspendLayout();
|
||||
SuspendLayout();
|
||||
//
|
||||
// menuStripTool
|
||||
//
|
||||
menuStripTool.BackColor = Color.Bisque;
|
||||
menuStripTool.ImageScalingSize = new Size(20, 20);
|
||||
menuStripTool.Items.AddRange(new ToolStripItem[] { справочникиToolStripMenuItem, операцииToolStripMenuItem, ReportToolStripMenuItem });
|
||||
menuStripTool.Location = new Point(0, 0);
|
||||
menuStripTool.Name = "menuStripTool";
|
||||
menuStripTool.Size = new Size(862, 28);
|
||||
menuStripTool.TabIndex = 0;
|
||||
menuStripTool.Text = "menuStrip1";
|
||||
//
|
||||
// справочникиToolStripMenuItem
|
||||
//
|
||||
справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { ProductToolStripMenuItem, SellerToolStripMenuItem, ComponentToolStripMenuItem });
|
||||
справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem";
|
||||
справочникиToolStripMenuItem.Size = new Size(117, 24);
|
||||
справочникиToolStripMenuItem.Text = "Справочники";
|
||||
//
|
||||
// ProductToolStripMenuItem
|
||||
//
|
||||
ProductToolStripMenuItem.Name = "ProductToolStripMenuItem";
|
||||
ProductToolStripMenuItem.Size = new Size(182, 26);
|
||||
ProductToolStripMenuItem.Text = "Продукты";
|
||||
ProductToolStripMenuItem.Click += ProductToolStripMenuItem_Click;
|
||||
//
|
||||
// SellerToolStripMenuItem
|
||||
//
|
||||
SellerToolStripMenuItem.Name = "SellerToolStripMenuItem";
|
||||
SellerToolStripMenuItem.Size = new Size(182, 26);
|
||||
SellerToolStripMenuItem.Text = "Поставщики";
|
||||
SellerToolStripMenuItem.Click += SellerToolStripMenuItem_Click;
|
||||
//
|
||||
// ComponentToolStripMenuItem
|
||||
//
|
||||
ComponentToolStripMenuItem.Name = "ComponentToolStripMenuItem";
|
||||
ComponentToolStripMenuItem.Size = new Size(182, 26);
|
||||
ComponentToolStripMenuItem.Text = "Компоненты";
|
||||
ComponentToolStripMenuItem.Click += ComponentToolStripMenuItem_Click;
|
||||
//
|
||||
// операцииToolStripMenuItem
|
||||
//
|
||||
операцииToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { OrderToolStripMenuItem, PurchaseToolStripMenuItem });
|
||||
операцииToolStripMenuItem.Name = "операцииToolStripMenuItem";
|
||||
операцииToolStripMenuItem.Size = new Size(95, 24);
|
||||
операцииToolStripMenuItem.Text = "Операции";
|
||||
//
|
||||
// OrderToolStripMenuItem
|
||||
//
|
||||
OrderToolStripMenuItem.Name = "OrderToolStripMenuItem";
|
||||
OrderToolStripMenuItem.Size = new Size(156, 26);
|
||||
OrderToolStripMenuItem.Text = "Заказ";
|
||||
OrderToolStripMenuItem.Click += OrderToolStripMenuItem_Click;
|
||||
//
|
||||
// PurchaseToolStripMenuItem
|
||||
//
|
||||
PurchaseToolStripMenuItem.Name = "PurchaseToolStripMenuItem";
|
||||
PurchaseToolStripMenuItem.Size = new Size(156, 26);
|
||||
PurchaseToolStripMenuItem.Text = "Поставка";
|
||||
PurchaseToolStripMenuItem.Click += PurchaseToolStripMenuItem_Click;
|
||||
//
|
||||
// ReportToolStripMenuItem
|
||||
//
|
||||
ReportToolStripMenuItem.Name = "ReportToolStripMenuItem";
|
||||
ReportToolStripMenuItem.Size = new Size(73, 24);
|
||||
ReportToolStripMenuItem.Text = "Отчёты";
|
||||
//
|
||||
// FormConFactory
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
BackgroundImage = Properties.Resources.Фон;
|
||||
BackgroundImageLayout = ImageLayout.Stretch;
|
||||
ClientSize = new Size(862, 453);
|
||||
Controls.Add(menuStripTool);
|
||||
MainMenuStrip = menuStripTool;
|
||||
Name = "FormConFactory";
|
||||
StartPosition = FormStartPosition.CenterParent;
|
||||
Text = "\"Кондитерская фабрика\"";
|
||||
menuStripTool.ResumeLayout(false);
|
||||
menuStripTool.PerformLayout();
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private MenuStrip menuStripTool;
|
||||
private ToolStripMenuItem справочникиToolStripMenuItem;
|
||||
private ToolStripMenuItem ProductToolStripMenuItem;
|
||||
private ToolStripMenuItem SellerToolStripMenuItem;
|
||||
private ToolStripMenuItem ComponentToolStripMenuItem;
|
||||
private ToolStripMenuItem операцииToolStripMenuItem;
|
||||
private ToolStripMenuItem OrderToolStripMenuItem;
|
||||
private ToolStripMenuItem PurchaseToolStripMenuItem;
|
||||
private ToolStripMenuItem ReportToolStripMenuItem;
|
||||
}
|
||||
}
|
@ -0,0 +1,85 @@
|
||||
namespace ProjectConfectFactory;
|
||||
|
||||
using ProjectConfectFactory.Forms;
|
||||
using Unity;
|
||||
|
||||
public partial class FormConFactory : Form
|
||||
{
|
||||
|
||||
private readonly IUnityContainer _container;
|
||||
public FormConFactory(IUnityContainer container)
|
||||
{
|
||||
InitializeComponent();
|
||||
_container = container ??
|
||||
throw new ArgumentNullException(nameof(container));
|
||||
}
|
||||
|
||||
private void ProductToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormProducts>().ShowDialog();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при загрузке",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void SellerToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormSellers>().ShowDialog();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при загрузке",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ComponentToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormComponents>().ShowDialog();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при загрузке",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void OrderToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormOrders>().ShowDialog();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при загрузке",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void PurchaseToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormPurchases>().ShowDialog();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при загрузке",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
123
ProjectConfectFactory/ProjectConfectFactory/FormConFactory.resx
Normal file
123
ProjectConfectFactory/ProjectConfectFactory/FormConFactory.resx
Normal file
@ -0,0 +1,123 @@
|
||||
<?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.
|
||||
-->
|
||||
<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">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="menuStripTool.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
161
ProjectConfectFactory/ProjectConfectFactory/Forms/FormComponent.Designer.cs
generated
Normal file
161
ProjectConfectFactory/ProjectConfectFactory/Forms/FormComponent.Designer.cs
generated
Normal file
@ -0,0 +1,161 @@
|
||||
namespace ProjectConfectFactory.Forms
|
||||
{
|
||||
partial class FormComponent
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
buttonBack = new Button();
|
||||
ButtonSave = new Button();
|
||||
label4 = new Label();
|
||||
label3 = new Label();
|
||||
label2 = new Label();
|
||||
label1 = new Label();
|
||||
textBoxComponentUnit = new TextBox();
|
||||
textBoxComponentName = new TextBox();
|
||||
numericUpDownComponentCount = new NumericUpDown();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownComponentCount).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// buttonBack
|
||||
//
|
||||
buttonBack.Location = new Point(291, 245);
|
||||
buttonBack.Name = "buttonBack";
|
||||
buttonBack.Size = new Size(94, 29);
|
||||
buttonBack.TabIndex = 17;
|
||||
buttonBack.Text = "Отмена";
|
||||
buttonBack.UseVisualStyleBackColor = true;
|
||||
buttonBack.Click += buttonBack_Click;
|
||||
//
|
||||
// ButtonSave
|
||||
//
|
||||
ButtonSave.Location = new Point(67, 245);
|
||||
ButtonSave.Name = "ButtonSave";
|
||||
ButtonSave.Size = new Size(94, 29);
|
||||
ButtonSave.TabIndex = 16;
|
||||
ButtonSave.Text = "Сохранить";
|
||||
ButtonSave.UseVisualStyleBackColor = true;
|
||||
ButtonSave.Click += ButtonSave_Click;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
label4.AutoSize = true;
|
||||
label4.BackColor = Color.Bisque;
|
||||
label4.Location = new Point(22, 191);
|
||||
label4.Name = "label4";
|
||||
label4.Size = new Size(112, 20);
|
||||
label4.TabIndex = 15;
|
||||
label4.Text = "Кол-во сейчас:";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
label3.AutoSize = true;
|
||||
label3.BackColor = Color.Bisque;
|
||||
label3.Location = new Point(22, 131);
|
||||
label3.Name = "label3";
|
||||
label3.Size = new Size(113, 20);
|
||||
label3.TabIndex = 14;
|
||||
label3.Text = "Ед. измерения:";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.AutoSize = true;
|
||||
label2.BackColor = Color.Bisque;
|
||||
label2.Location = new Point(22, 67);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new Size(119, 20);
|
||||
label2.TabIndex = 13;
|
||||
label2.Text = "Наименование:";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.BackColor = Color.Bisque;
|
||||
label1.Font = new Font("Segoe UI", 10F);
|
||||
label1.Location = new Point(169, 9);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(102, 23);
|
||||
label1.TabIndex = 12;
|
||||
label1.Text = "Компонент:";
|
||||
//
|
||||
// textBoxComponentUnit
|
||||
//
|
||||
textBoxComponentUnit.Location = new Point(206, 124);
|
||||
textBoxComponentUnit.Name = "textBoxComponentUnit";
|
||||
textBoxComponentUnit.Size = new Size(218, 27);
|
||||
textBoxComponentUnit.TabIndex = 10;
|
||||
//
|
||||
// textBoxComponentName
|
||||
//
|
||||
textBoxComponentName.Location = new Point(206, 60);
|
||||
textBoxComponentName.Name = "textBoxComponentName";
|
||||
textBoxComponentName.Size = new Size(218, 27);
|
||||
textBoxComponentName.TabIndex = 9;
|
||||
//
|
||||
// numericUpDownComponentCount
|
||||
//
|
||||
numericUpDownComponentCount.Location = new Point(206, 184);
|
||||
numericUpDownComponentCount.Maximum = new decimal(new int[] { 10000, 0, 0, 0 });
|
||||
numericUpDownComponentCount.Name = "numericUpDownComponentCount";
|
||||
numericUpDownComponentCount.Size = new Size(218, 27);
|
||||
numericUpDownComponentCount.TabIndex = 18;
|
||||
//
|
||||
// FormComponent
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
BackColor = Color.AntiqueWhite;
|
||||
ClientSize = new Size(482, 303);
|
||||
Controls.Add(numericUpDownComponentCount);
|
||||
Controls.Add(buttonBack);
|
||||
Controls.Add(ButtonSave);
|
||||
Controls.Add(label4);
|
||||
Controls.Add(label3);
|
||||
Controls.Add(label2);
|
||||
Controls.Add(label1);
|
||||
Controls.Add(textBoxComponentUnit);
|
||||
Controls.Add(textBoxComponentName);
|
||||
Name = "FormComponent";
|
||||
StartPosition = FormStartPosition.CenterParent;
|
||||
Text = "Компонент";
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownComponentCount).EndInit();
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Button buttonBack;
|
||||
private Button ButtonSave;
|
||||
private Label label4;
|
||||
private Label label3;
|
||||
private Label label2;
|
||||
private Label label1;
|
||||
private TextBox textBoxComponentUnit;
|
||||
private TextBox textBoxComponentName;
|
||||
private NumericUpDown numericUpDownComponentCount;
|
||||
}
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
using ProjectConfectFactory.Entities;
|
||||
using ProjectConfectFactory.Repositories;
|
||||
|
||||
namespace ProjectConfectFactory.Forms;
|
||||
|
||||
public partial class FormComponent : Form
|
||||
{
|
||||
private readonly IComponentRepository _componentRepository;
|
||||
private int? _componentId;
|
||||
|
||||
public int Id
|
||||
{
|
||||
set
|
||||
{
|
||||
try
|
||||
{
|
||||
var component = _componentRepository.ReadComponentById(value);
|
||||
if (component == null)
|
||||
{
|
||||
throw new InvalidDataException(nameof(component));
|
||||
}
|
||||
textBoxComponentName.Text = component.Name;
|
||||
textBoxComponentUnit.Text = component.Unit;
|
||||
numericUpDownComponentCount.Value = (decimal)component.Count;
|
||||
|
||||
|
||||
_componentId = value;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public FormComponent(IComponentRepository componentRepository, IPurchaseRepository purchaseRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_componentRepository = componentRepository ?? throw new ArgumentNullException(nameof(componentRepository));
|
||||
}
|
||||
|
||||
private void ButtonSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(textBoxComponentName.Text) || string.IsNullOrWhiteSpace(textBoxComponentUnit.Text) || numericUpDownComponentCount.Value == 0)
|
||||
{
|
||||
throw new Exception("Имеются незаполненные поля");
|
||||
}
|
||||
|
||||
if (_componentId.HasValue)
|
||||
{
|
||||
|
||||
_componentRepository.UpdateComponent(CreateComponent(_componentId.Value));
|
||||
}
|
||||
else
|
||||
{
|
||||
_componentRepository.CreateComponent(CreateComponent(0));
|
||||
}
|
||||
|
||||
Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonBack_Click(object sender, EventArgs e) => Close();
|
||||
|
||||
private Component CreateComponent(int id) => Component.CreateEntity(id, textBoxComponentName.Text, textBoxComponentUnit.Text,
|
||||
Convert.ToDecimal(numericUpDownComponentCount.Value));
|
||||
}
|
@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
<!--
|
||||
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
|
||||
|
||||
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>
|
||||
@ -26,36 +26,36 @@
|
||||
<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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
130
ProjectConfectFactory/ProjectConfectFactory/Forms/FormComponents.Designer.cs
generated
Normal file
130
ProjectConfectFactory/ProjectConfectFactory/Forms/FormComponents.Designer.cs
generated
Normal file
@ -0,0 +1,130 @@
|
||||
namespace ProjectConfectFactory.Forms
|
||||
{
|
||||
partial class FormComponents
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormComponents));
|
||||
panel1 = new Panel();
|
||||
buttonUpd = new Button();
|
||||
buttonDel = new Button();
|
||||
buttonAdd = new Button();
|
||||
dataGridViewComponents = new DataGridView();
|
||||
panel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewComponents).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.BackColor = Color.Linen;
|
||||
panel1.Controls.Add(buttonUpd);
|
||||
panel1.Controls.Add(buttonDel);
|
||||
panel1.Controls.Add(buttonAdd);
|
||||
panel1.Dock = DockStyle.Right;
|
||||
panel1.Location = new Point(657, 0);
|
||||
panel1.Name = "panel1";
|
||||
panel1.Size = new Size(143, 450);
|
||||
panel1.TabIndex = 1;
|
||||
//
|
||||
// buttonUpd
|
||||
//
|
||||
buttonUpd.BackgroundImage = (Image)resources.GetObject("buttonUpd.BackgroundImage");
|
||||
buttonUpd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonUpd.Location = new Point(27, 339);
|
||||
buttonUpd.Name = "buttonUpd";
|
||||
buttonUpd.Size = new Size(95, 90);
|
||||
buttonUpd.TabIndex = 4;
|
||||
buttonUpd.UseVisualStyleBackColor = true;
|
||||
buttonUpd.Click += buttonUpd_Click;
|
||||
//
|
||||
// buttonDel
|
||||
//
|
||||
buttonDel.BackgroundImage = (Image)resources.GetObject("buttonDel.BackgroundImage");
|
||||
buttonDel.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonDel.Location = new Point(27, 134);
|
||||
buttonDel.Name = "buttonDel";
|
||||
buttonDel.Size = new Size(95, 90);
|
||||
buttonDel.TabIndex = 3;
|
||||
buttonDel.UseVisualStyleBackColor = true;
|
||||
buttonDel.Click += buttonDel_Click;
|
||||
//
|
||||
// buttonAdd
|
||||
//
|
||||
buttonAdd.BackgroundImage = Properties.Resources.add;
|
||||
buttonAdd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonAdd.Location = new Point(27, 24);
|
||||
buttonAdd.Name = "buttonAdd";
|
||||
buttonAdd.Size = new Size(95, 90);
|
||||
buttonAdd.TabIndex = 0;
|
||||
buttonAdd.UseVisualStyleBackColor = true;
|
||||
buttonAdd.Click += buttonAdd_Click;
|
||||
//
|
||||
// dataGridViewComponents
|
||||
//
|
||||
dataGridViewComponents.AllowUserToAddRows = false;
|
||||
dataGridViewComponents.AllowUserToDeleteRows = false;
|
||||
dataGridViewComponents.AllowUserToResizeColumns = false;
|
||||
dataGridViewComponents.AllowUserToResizeRows = false;
|
||||
dataGridViewComponents.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
||||
dataGridViewComponents.BackgroundColor = Color.Bisque;
|
||||
dataGridViewComponents.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
dataGridViewComponents.Dock = DockStyle.Fill;
|
||||
dataGridViewComponents.GridColor = Color.Bisque;
|
||||
dataGridViewComponents.Location = new Point(0, 0);
|
||||
dataGridViewComponents.MultiSelect = false;
|
||||
dataGridViewComponents.Name = "dataGridViewComponents";
|
||||
dataGridViewComponents.ReadOnly = true;
|
||||
dataGridViewComponents.RowHeadersVisible = false;
|
||||
dataGridViewComponents.RowHeadersWidth = 51;
|
||||
dataGridViewComponents.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
|
||||
dataGridViewComponents.Size = new Size(657, 450);
|
||||
dataGridViewComponents.TabIndex = 2;
|
||||
//
|
||||
// FormComponents
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(800, 450);
|
||||
Controls.Add(dataGridViewComponents);
|
||||
Controls.Add(panel1);
|
||||
Name = "FormComponents";
|
||||
Text = "Компоненты";
|
||||
Load += FormComponents_Load;
|
||||
panel1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewComponents).EndInit();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Panel panel1;
|
||||
private Button buttonUpd;
|
||||
private Button buttonDel;
|
||||
private Button buttonAdd;
|
||||
private DataGridView dataGridViewComponents;
|
||||
}
|
||||
}
|
@ -0,0 +1,110 @@
|
||||
|
||||
using ProjectConfectFactory.Repositories;
|
||||
using Unity;
|
||||
|
||||
namespace ProjectConfectFactory.Forms;
|
||||
|
||||
public partial class FormComponents : Form
|
||||
{
|
||||
private readonly IUnityContainer _container;
|
||||
|
||||
private readonly IComponentRepository _componentRepository;
|
||||
|
||||
public FormComponents(IUnityContainer container, IComponentRepository componentRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_container = container ??
|
||||
throw new ArgumentNullException(nameof(container));
|
||||
_componentRepository = componentRepository ??
|
||||
throw new ArgumentNullException(nameof(componentRepository));
|
||||
}
|
||||
private void FormComponents_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при загрузке",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonAdd_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormComponent>().ShowDialog();
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при добавлении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonDel_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectedRow(out var findId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (MessageBox.Show("Удалить запись?", "Удаление",
|
||||
MessageBoxButtons.YesNo) != DialogResult.Yes)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
_componentRepository.DeleteComponent(findId);
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при удалении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonUpd_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectedRow(out var findId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var form = _container.Resolve<FormComponent>();
|
||||
form.Id = findId;
|
||||
form.ShowDialog();
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при изменении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadList() => dataGridViewComponents.DataSource = _componentRepository.ReadComponents();
|
||||
|
||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||
{
|
||||
id = 0;
|
||||
if (dataGridViewComponents.SelectedRows.Count < 1)
|
||||
{
|
||||
MessageBox.Show("Нет выбранной записи", "Ошибка",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
id = Convert.ToInt32(dataGridViewComponents.SelectedRows[0].Cells["Id"].Value);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,474 @@
|
||||
<?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.
|
||||
-->
|
||||
<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">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="buttonUpd.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
<data name="buttonDel.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
3h0fmh3MFyFJUmUf/cDsUN6nov4x73G5iDgwcrAt743X9RNnHpgfy5chSVJFZ+5fPLN/X5zM+1TUF/Ie
|
||||
l4uIT4wcrKRP3updAEnSNP3Rb84O5l0q7ON5j8tFxPtHDlZS73H265+ZH86XIknSVnbkc/MHhw3Ku1RV
|
||||
7/19eY/LRcQ78sEqu+7aOPX4nfMv5suRJGkrevyuxUPXLeL5vEeV9d7fnve43MrKymvzwapbW4uzn/nI
|
||||
/N6zDyxO5IuSJOlyNGzMX/7u7L5hc/IOVddauyrv8SQi4mv5cFP0Y2/qx+78vfUDJ/928ZVzhxcv5MuT
|
||||
JOkCe+HkgfnDw7a85YZ+PO/ORD2Sd3gywy8jjBxw0tbW4szbbupP37zRj0iSdKENGzJsSd6XqWut3ZF3
|
||||
eDK995/KB5QkSVvST+QdnszKysorI2Kq70OWJGm3dGrv3r2vyjs8qd77p0YOKkmSLl9/mvd3clN/HFCS
|
||||
pJ1ea+3mvL+T29jYuDIinsqHlSRJl6Unh63N+7sUIuJDIweWJEmXWGvtV/PuLo3NXwb8Zj60JEm6pI63
|
||||
1l6Rd3eptNZ+e+TgkiTpIuu9/0be26Uzn89fHRH/ng8vSZIuqqeW7qN/L6W19rMjL0CSJF1grbWfyTu7
|
||||
zK6IiAP5RUiSpPOvtXbfsKl5ZJda7309Yto/lyhJ0jbu1DXXXNPzvm4LrbV3j7wgSZL0/9R7f1fe1W0l
|
||||
Iv4kvyhJkvTStdb+Iu/ptrP53QCP5BcnSZJGe3g2m31P3tNtaWVl5bUR8djIi5QkSd/pid77j+Yd3dbW
|
||||
1tZmwzcZjbxYSZIU8VxrbZH3c0eIiDe31p4dedGSJO3aNrfxprybO8rmOwGP5xcvSdIu7ehsNtuX93JH
|
||||
iojXR8RXRx6CJEm7pt77v66srFydd3JHG77XuPf+6fwwJEnaDfXePzv8/Zy8j7vFFa2190bEt/ODkSRp
|
||||
h/ZC7/2D2+4rfrdCa+2NEfF3Iw9JkqSd1Jd779fnHdztXtZ7vyUijo08MEmStm3Db/kP73jv2bPnu/L4
|
||||
sWk2m/1wRHx0+CMI+QFKkrTNGrbstvX19R/Ke8dLWFlZ+YGIuHX4YoSRBypJ0jJ3Yhj+1tpVed84T8Pf
|
||||
Etj8r4HPR8SZkYcsSdIyNGzUoYj4uWG78p5xCYbvR+69vy8i7oqIb408fEmSKhvepb5z+P/92Wz2I3m3
|
||||
2AIbGxtX9t5v7L3/wvA2S0T8dUR8IyKeH7kgSZIupWFbvr65NcNb++9eW1t7k1/qWzLDPw6GL1dorb1h
|
||||
dXV1ryRJF9qwIcOWDJuSdwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAbeO/ARmncr3NqsTVAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
218
ProjectConfectFactory/ProjectConfectFactory/Forms/FormOrder.Designer.cs
generated
Normal file
218
ProjectConfectFactory/ProjectConfectFactory/Forms/FormOrder.Designer.cs
generated
Normal file
@ -0,0 +1,218 @@
|
||||
namespace ProjectConfectFactory.Forms
|
||||
{
|
||||
partial class FormOrder
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
label3 = new Label();
|
||||
label2 = new Label();
|
||||
label1 = new Label();
|
||||
textBoxOrderPhone = new TextBox();
|
||||
textBoxOrderName = new TextBox();
|
||||
dateTimePickerOrder = new DateTimePicker();
|
||||
label4 = new Label();
|
||||
groupBoxListProducts = new GroupBox();
|
||||
dataGridViewProducts = new DataGridView();
|
||||
ColumnProduct = new DataGridViewComboBoxColumn();
|
||||
ColumnCount = new DataGridViewTextBoxColumn();
|
||||
ColumnPrice = new DataGridViewTextBoxColumn();
|
||||
buttonBack = new Button();
|
||||
ButtonSave = new Button();
|
||||
groupBoxListProducts.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewProducts).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// label3
|
||||
//
|
||||
label3.AutoSize = true;
|
||||
label3.BackColor = Color.Bisque;
|
||||
label3.Location = new Point(92, 112);
|
||||
label3.Name = "label3";
|
||||
label3.Size = new Size(72, 20);
|
||||
label3.TabIndex = 10;
|
||||
label3.Text = "Телефон:";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.AutoSize = true;
|
||||
label2.BackColor = Color.Bisque;
|
||||
label2.Location = new Point(92, 62);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new Size(115, 20);
|
||||
label2.TabIndex = 9;
|
||||
label2.Text = "Имя заказчика:";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.BackColor = Color.Bisque;
|
||||
label1.Font = new Font("Segoe UI", 10F);
|
||||
label1.Location = new Point(245, 11);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(57, 23);
|
||||
label1.TabIndex = 8;
|
||||
label1.Text = "Заказ:";
|
||||
//
|
||||
// textBoxOrderPhone
|
||||
//
|
||||
textBoxOrderPhone.Location = new Point(284, 105);
|
||||
textBoxOrderPhone.Name = "textBoxOrderPhone";
|
||||
textBoxOrderPhone.Size = new Size(250, 27);
|
||||
textBoxOrderPhone.TabIndex = 7;
|
||||
//
|
||||
// textBoxOrderName
|
||||
//
|
||||
textBoxOrderName.Location = new Point(284, 55);
|
||||
textBoxOrderName.Name = "textBoxOrderName";
|
||||
textBoxOrderName.Size = new Size(250, 27);
|
||||
textBoxOrderName.TabIndex = 6;
|
||||
//
|
||||
// dateTimePickerOrder
|
||||
//
|
||||
dateTimePickerOrder.Enabled = false;
|
||||
dateTimePickerOrder.Location = new Point(284, 156);
|
||||
dateTimePickerOrder.Name = "dateTimePickerOrder";
|
||||
dateTimePickerOrder.Size = new Size(250, 27);
|
||||
dateTimePickerOrder.TabIndex = 11;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
label4.AutoSize = true;
|
||||
label4.BackColor = Color.Bisque;
|
||||
label4.Location = new Point(92, 163);
|
||||
label4.Name = "label4";
|
||||
label4.Size = new Size(44, 20);
|
||||
label4.TabIndex = 12;
|
||||
label4.Text = "Дата:";
|
||||
//
|
||||
// groupBoxListProducts
|
||||
//
|
||||
groupBoxListProducts.Controls.Add(dataGridViewProducts);
|
||||
groupBoxListProducts.Location = new Point(27, 209);
|
||||
groupBoxListProducts.Name = "groupBoxListProducts";
|
||||
groupBoxListProducts.Size = new Size(570, 292);
|
||||
groupBoxListProducts.TabIndex = 26;
|
||||
groupBoxListProducts.TabStop = false;
|
||||
groupBoxListProducts.Text = "Список продуктов:";
|
||||
//
|
||||
// dataGridViewProducts
|
||||
//
|
||||
dataGridViewProducts.BackgroundColor = Color.Bisque;
|
||||
dataGridViewProducts.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
dataGridViewProducts.Columns.AddRange(new DataGridViewColumn[] { ColumnProduct, ColumnCount, ColumnPrice });
|
||||
dataGridViewProducts.Dock = DockStyle.Fill;
|
||||
dataGridViewProducts.Location = new Point(3, 23);
|
||||
dataGridViewProducts.Name = "dataGridViewProducts";
|
||||
dataGridViewProducts.RowHeadersVisible = false;
|
||||
dataGridViewProducts.RowHeadersWidth = 51;
|
||||
dataGridViewProducts.Size = new Size(564, 266);
|
||||
dataGridViewProducts.TabIndex = 27;
|
||||
//
|
||||
// ColumnProduct
|
||||
//
|
||||
ColumnProduct.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||
ColumnProduct.HeaderText = "Продукт";
|
||||
ColumnProduct.MinimumWidth = 6;
|
||||
ColumnProduct.Name = "ColumnProduct";
|
||||
//
|
||||
// ColumnCount
|
||||
//
|
||||
ColumnCount.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||
ColumnCount.HeaderText = "Кол-во";
|
||||
ColumnCount.MinimumWidth = 6;
|
||||
ColumnCount.Name = "ColumnCount";
|
||||
//
|
||||
// ColumnPrice
|
||||
//
|
||||
ColumnPrice.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||
ColumnPrice.HeaderText = "Общая цена";
|
||||
ColumnPrice.MinimumWidth = 6;
|
||||
ColumnPrice.Name = "ColumnPrice";
|
||||
//
|
||||
// buttonBack
|
||||
//
|
||||
buttonBack.Location = new Point(406, 521);
|
||||
buttonBack.Name = "buttonBack";
|
||||
buttonBack.Size = new Size(100, 30);
|
||||
buttonBack.TabIndex = 25;
|
||||
buttonBack.Text = "Отмена";
|
||||
buttonBack.UseVisualStyleBackColor = true;
|
||||
buttonBack.Click += buttonBack_Click;
|
||||
//
|
||||
// ButtonSave
|
||||
//
|
||||
ButtonSave.Location = new Point(92, 521);
|
||||
ButtonSave.Name = "ButtonSave";
|
||||
ButtonSave.Size = new Size(100, 30);
|
||||
ButtonSave.TabIndex = 24;
|
||||
ButtonSave.Text = "Сохранить";
|
||||
ButtonSave.UseVisualStyleBackColor = true;
|
||||
ButtonSave.Click += ButtonSave_Click;
|
||||
//
|
||||
// FormOrder
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
BackColor = Color.Linen;
|
||||
ClientSize = new Size(631, 563);
|
||||
Controls.Add(groupBoxListProducts);
|
||||
Controls.Add(buttonBack);
|
||||
Controls.Add(ButtonSave);
|
||||
Controls.Add(label4);
|
||||
Controls.Add(dateTimePickerOrder);
|
||||
Controls.Add(label3);
|
||||
Controls.Add(label2);
|
||||
Controls.Add(label1);
|
||||
Controls.Add(textBoxOrderPhone);
|
||||
Controls.Add(textBoxOrderName);
|
||||
Name = "FormOrder";
|
||||
StartPosition = FormStartPosition.CenterParent;
|
||||
Text = "Заказ";
|
||||
groupBoxListProducts.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewProducts).EndInit();
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label label3;
|
||||
private Label label2;
|
||||
private Label label1;
|
||||
private TextBox textBoxOrderPhone;
|
||||
private TextBox textBoxOrderName;
|
||||
private DateTimePicker dateTimePickerOrder;
|
||||
private Label label4;
|
||||
private GroupBox groupBoxListProducts;
|
||||
private DataGridView dataGridViewProducts;
|
||||
private Button buttonBack;
|
||||
private Button ButtonSave;
|
||||
private DataGridViewComboBoxColumn ColumnProduct;
|
||||
private DataGridViewTextBoxColumn ColumnCount;
|
||||
private DataGridViewTextBoxColumn ColumnPrice;
|
||||
}
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
using ProjectConfectFactory.Entities;
|
||||
using ProjectConfectFactory.Repositories;
|
||||
|
||||
namespace ProjectConfectFactory.Forms;
|
||||
|
||||
public partial class FormOrder : Form
|
||||
{
|
||||
private readonly IOrderRepository _orderRepository;
|
||||
public FormOrder(IOrderRepository orderRepository, IProductRepository productRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_orderRepository = orderRepository ??
|
||||
throw new ArgumentNullException(nameof(orderRepository));
|
||||
|
||||
ColumnProduct.DataSource = productRepository.ReadProducts();
|
||||
ColumnProduct.DisplayMember = "Name";
|
||||
ColumnProduct.ValueMember = "Id";
|
||||
}
|
||||
|
||||
|
||||
private void ButtonSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (dataGridViewProducts.RowCount < 2 || string.IsNullOrWhiteSpace(textBoxOrderName.Text) || string.IsNullOrWhiteSpace(textBoxOrderPhone.Text))
|
||||
{
|
||||
throw new Exception("Имеются незаполненные поля");
|
||||
}
|
||||
|
||||
|
||||
_orderRepository.CreateOrder(Order.CreateOpeartion(0, textBoxOrderName.Text, textBoxOrderPhone.Text, CreateListOrderProductsFromDataGrid()));
|
||||
|
||||
Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при сохранении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
private void buttonBack_Click(object sender, EventArgs e) => Close();
|
||||
|
||||
private List<OrderProducts> CreateListOrderProductsFromDataGrid()
|
||||
{
|
||||
var list = new List<OrderProducts>();
|
||||
foreach (DataGridViewRow row in dataGridViewProducts.Rows)
|
||||
{
|
||||
if (row.Cells["ColumnProduct"].Value == null ||
|
||||
row.Cells["ColumnCount"].Value == null ||
|
||||
row.Cells["ColumnPrice"].Value == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
list.Add(OrderProducts.CreateElement(0, Convert.ToInt32(row.Cells["ColumnProduct"].Value), Convert.ToInt32(row.Cells["ColumnCount"].Value), Convert.ToDecimal(row.Cells["ColumnPrice"].Value)));
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
129
ProjectConfectFactory/ProjectConfectFactory/Forms/FormOrder.resx
Normal file
129
ProjectConfectFactory/ProjectConfectFactory/Forms/FormOrder.resx
Normal file
@ -0,0 +1,129 @@
|
||||
<?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.
|
||||
-->
|
||||
<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">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="ColumnProduct.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ColumnCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ColumnPrice.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
117
ProjectConfectFactory/ProjectConfectFactory/Forms/FormOrders.Designer.cs
generated
Normal file
117
ProjectConfectFactory/ProjectConfectFactory/Forms/FormOrders.Designer.cs
generated
Normal file
@ -0,0 +1,117 @@
|
||||
namespace ProjectConfectFactory.Forms
|
||||
{
|
||||
partial class FormOrders
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormOrders));
|
||||
panel1 = new Panel();
|
||||
buttonDel = new Button();
|
||||
buttonAdd = new Button();
|
||||
dataGridViewOrders = new DataGridView();
|
||||
panel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewOrders).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.BackColor = Color.Linen;
|
||||
panel1.Controls.Add(buttonDel);
|
||||
panel1.Controls.Add(buttonAdd);
|
||||
panel1.Dock = DockStyle.Right;
|
||||
panel1.Location = new Point(657, 0);
|
||||
panel1.Name = "panel1";
|
||||
panel1.Size = new Size(143, 450);
|
||||
panel1.TabIndex = 1;
|
||||
//
|
||||
// buttonDel
|
||||
//
|
||||
buttonDel.BackgroundImage = (Image)resources.GetObject("buttonDel.BackgroundImage");
|
||||
buttonDel.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonDel.Location = new Point(27, 134);
|
||||
buttonDel.Name = "buttonDel";
|
||||
buttonDel.Size = new Size(95, 90);
|
||||
buttonDel.TabIndex = 3;
|
||||
buttonDel.UseVisualStyleBackColor = true;
|
||||
buttonDel.Click += buttonDel_Click;
|
||||
//
|
||||
// buttonAdd
|
||||
//
|
||||
buttonAdd.BackgroundImage = Properties.Resources.add;
|
||||
buttonAdd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonAdd.Location = new Point(27, 24);
|
||||
buttonAdd.Name = "buttonAdd";
|
||||
buttonAdd.Size = new Size(95, 90);
|
||||
buttonAdd.TabIndex = 0;
|
||||
buttonAdd.UseVisualStyleBackColor = true;
|
||||
buttonAdd.Click += buttonAdd_Click;
|
||||
//
|
||||
// dataGridViewOrders
|
||||
//
|
||||
dataGridViewOrders.AllowUserToAddRows = false;
|
||||
dataGridViewOrders.AllowUserToDeleteRows = false;
|
||||
dataGridViewOrders.AllowUserToResizeColumns = false;
|
||||
dataGridViewOrders.AllowUserToResizeRows = false;
|
||||
dataGridViewOrders.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
||||
dataGridViewOrders.BackgroundColor = Color.Bisque;
|
||||
dataGridViewOrders.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
dataGridViewOrders.Dock = DockStyle.Fill;
|
||||
dataGridViewOrders.GridColor = Color.Bisque;
|
||||
dataGridViewOrders.Location = new Point(0, 0);
|
||||
dataGridViewOrders.MultiSelect = false;
|
||||
dataGridViewOrders.Name = "dataGridViewOrders";
|
||||
dataGridViewOrders.ReadOnly = true;
|
||||
dataGridViewOrders.RowHeadersVisible = false;
|
||||
dataGridViewOrders.RowHeadersWidth = 51;
|
||||
dataGridViewOrders.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
|
||||
dataGridViewOrders.Size = new Size(657, 450);
|
||||
dataGridViewOrders.TabIndex = 2;
|
||||
//
|
||||
// FormOrders
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(800, 450);
|
||||
Controls.Add(dataGridViewOrders);
|
||||
Controls.Add(panel1);
|
||||
Name = "FormOrders";
|
||||
StartPosition = FormStartPosition.CenterParent;
|
||||
Text = "Заказы";
|
||||
Load += FormOrders_Load;
|
||||
panel1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewOrders).EndInit();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Panel panel1;
|
||||
private Button buttonDel;
|
||||
private Button buttonAdd;
|
||||
private DataGridView dataGridViewOrders;
|
||||
}
|
||||
}
|
@ -0,0 +1,89 @@
|
||||
using ProjectConfectFactory.Repositories;
|
||||
using Unity;
|
||||
|
||||
namespace ProjectConfectFactory.Forms;
|
||||
|
||||
public partial class FormOrders : Form
|
||||
{
|
||||
private readonly IUnityContainer _container;
|
||||
|
||||
private readonly IOrderRepository _orderRepository;
|
||||
|
||||
public FormOrders(IUnityContainer container, IOrderRepository orderRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_container = container ??
|
||||
throw new ArgumentNullException(nameof(container));
|
||||
_orderRepository = orderRepository ??
|
||||
throw new ArgumentNullException(nameof(orderRepository));
|
||||
}
|
||||
|
||||
private void FormOrders_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при загрузке",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonAdd_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
_container.Resolve<FormOrder>().ShowDialog();
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при добавлении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonDel_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectedRow(out var findId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (MessageBox.Show("Удалить запись?", "Удаление",
|
||||
MessageBoxButtons.YesNo) != DialogResult.Yes)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
_orderRepository.DeleteOrder(findId);
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при удалении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
private void LoadList() => dataGridViewOrders.DataSource = _orderRepository.ReadOrder();
|
||||
|
||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||
{
|
||||
id = 0;
|
||||
if (dataGridViewOrders.SelectedRows.Count < 1)
|
||||
{
|
||||
MessageBox.Show("Нет выбранной записи", "Ошибка",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
id = Convert.ToInt32(dataGridViewOrders.SelectedRows[0].Cells["Id"].Value);
|
||||
return true;
|
||||
}
|
||||
}
|
@ -0,0 +1,190 @@
|
||||
<?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.
|
||||
-->
|
||||
<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">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="buttonDel.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
3h0fmh3MFyFJUmUf/cDsUN6nov4x73G5iDgwcrAt743X9RNnHpgfy5chSVJFZ+5fPLN/X5zM+1TUF/Ie
|
||||
l4uIT4wcrKRP3updAEnSNP3Rb84O5l0q7ON5j8tFxPtHDlZS73H265+ZH86XIknSVnbkc/MHhw3Ku1RV
|
||||
7/19eY/LRcQ78sEqu+7aOPX4nfMv5suRJGkrevyuxUPXLeL5vEeV9d7fnve43MrKymvzwapbW4uzn/nI
|
||||
/N6zDyxO5IuSJOlyNGzMX/7u7L5hc/IOVddauyrv8SQi4mv5cFP0Y2/qx+78vfUDJ/928ZVzhxcv5MuT
|
||||
JOkCe+HkgfnDw7a85YZ+PO/ORD2Sd3gywy8jjBxw0tbW4szbbupP37zRj0iSdKENGzJsSd6XqWut3ZF3
|
||||
eDK995/KB5QkSVvST+QdnszKysorI2Kq70OWJGm3dGrv3r2vyjs8qd77p0YOKkmSLl9/mvd3clN/HFCS
|
||||
pJ1ea+3mvL+T29jYuDIinsqHlSRJl6Unh63N+7sUIuJDIweWJEmXWGvtV/PuLo3NXwb8Zj60JEm6pI63
|
||||
1l6Rd3eptNZ+e+TgkiTpIuu9/0be26Uzn89fHRH/ng8vSZIuqqeW7qN/L6W19rMjL0CSJF1grbWfyTu7
|
||||
zK6IiAP5RUiSpPOvtXbfsKl5ZJda7309Yto/lyhJ0jbu1DXXXNPzvm4LrbV3j7wgSZL0/9R7f1fe1W0l
|
||||
Iv4kvyhJkvTStdb+Iu/ptrP53QCP5BcnSZJGe3g2m31P3tNtaWVl5bUR8djIi5QkSd/pid77j+Yd3dbW
|
||||
1tZmwzcZjbxYSZIU8VxrbZH3c0eIiDe31p4dedGSJO3aNrfxprybO8rmOwGP5xcvSdIu7ehsNtuX93JH
|
||||
iojXR8RXRx6CJEm7pt77v66srFydd3JHG77XuPf+6fwwJEnaDfXePzv8/Zy8j7vFFa2190bEt/ODkSRp
|
||||
h/ZC7/2D2+4rfrdCa+2NEfF3Iw9JkqSd1Jd779fnHdztXtZ7vyUijo08MEmStm3Db/kP73jv2bPnu/L4
|
||||
sWk2m/1wRHx0+CMI+QFKkrTNGrbstvX19R/Ke8dLWFlZ+YGIuHX4YoSRBypJ0jJ3Yhj+1tpVed84T8Pf
|
||||
Etj8r4HPR8SZkYcsSdIyNGzUoYj4uWG78p5xCYbvR+69vy8i7oqIb408fEmSKhvepb5z+P/92Wz2I3m3
|
||||
2AIbGxtX9t5v7L3/wvA2S0T8dUR8IyKeH7kgSZIupWFbvr65NcNb++9eW1t7k1/qWzLDPw6GL1dorb1h
|
||||
dXV1ryRJF9qwIcOWDJuSdwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAbeO/ARmncr3NqsTVAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
213
ProjectConfectFactory/ProjectConfectFactory/Forms/FormProduct.Designer.cs
generated
Normal file
213
ProjectConfectFactory/ProjectConfectFactory/Forms/FormProduct.Designer.cs
generated
Normal file
@ -0,0 +1,213 @@
|
||||
namespace ProjectConfectFactory.Forms
|
||||
{
|
||||
partial class FormProduct
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
label2 = new Label();
|
||||
textBoxProductName = new TextBox();
|
||||
label1 = new Label();
|
||||
numericUpDownProductPrice = new NumericUpDown();
|
||||
label4 = new Label();
|
||||
buttonBack = new Button();
|
||||
ButtonSave = new Button();
|
||||
groupBoxRecipe = new GroupBox();
|
||||
dataGridViewRecipe = new DataGridView();
|
||||
ColumnComponent = new DataGridViewComboBoxColumn();
|
||||
ColumnCount = new DataGridViewTextBoxColumn();
|
||||
label3 = new Label();
|
||||
checkedListBoxProductType = new CheckedListBox();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownProductPrice).BeginInit();
|
||||
groupBoxRecipe.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewRecipe).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.AutoSize = true;
|
||||
label2.BackColor = Color.Bisque;
|
||||
label2.Location = new Point(43, 73);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new Size(119, 20);
|
||||
label2.TabIndex = 15;
|
||||
label2.Text = "Наименование:";
|
||||
//
|
||||
// textBoxProductName
|
||||
//
|
||||
textBoxProductName.Location = new Point(195, 66);
|
||||
textBoxProductName.Name = "textBoxProductName";
|
||||
textBoxProductName.Size = new Size(182, 27);
|
||||
textBoxProductName.TabIndex = 14;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.BackColor = Color.Bisque;
|
||||
label1.Font = new Font("Segoe UI", 10F);
|
||||
label1.Location = new Point(299, 20);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(78, 23);
|
||||
label1.TabIndex = 16;
|
||||
label1.Text = "Продукт:";
|
||||
//
|
||||
// numericUpDownProductPrice
|
||||
//
|
||||
numericUpDownProductPrice.Location = new Point(484, 66);
|
||||
numericUpDownProductPrice.Maximum = new decimal(new int[] { 10000, 0, 0, 0 });
|
||||
numericUpDownProductPrice.Name = "numericUpDownProductPrice";
|
||||
numericUpDownProductPrice.Size = new Size(152, 27);
|
||||
numericUpDownProductPrice.TabIndex = 20;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
label4.AutoSize = true;
|
||||
label4.BackColor = Color.Bisque;
|
||||
label4.Location = new Point(407, 73);
|
||||
label4.Name = "label4";
|
||||
label4.Size = new Size(48, 20);
|
||||
label4.TabIndex = 19;
|
||||
label4.Text = "Цена:";
|
||||
//
|
||||
// buttonBack
|
||||
//
|
||||
buttonBack.Location = new Point(435, 498);
|
||||
buttonBack.Name = "buttonBack";
|
||||
buttonBack.Size = new Size(100, 30);
|
||||
buttonBack.TabIndex = 22;
|
||||
buttonBack.Text = "Отмена";
|
||||
buttonBack.UseVisualStyleBackColor = true;
|
||||
buttonBack.Click += buttonBack_Click;
|
||||
//
|
||||
// ButtonSave
|
||||
//
|
||||
ButtonSave.Location = new Point(129, 498);
|
||||
ButtonSave.Name = "ButtonSave";
|
||||
ButtonSave.Size = new Size(100, 30);
|
||||
ButtonSave.TabIndex = 21;
|
||||
ButtonSave.Text = "Сохранить";
|
||||
ButtonSave.UseVisualStyleBackColor = true;
|
||||
ButtonSave.Click += ButtonSave_Click;
|
||||
//
|
||||
// groupBoxRecipe
|
||||
//
|
||||
groupBoxRecipe.Controls.Add(dataGridViewRecipe);
|
||||
groupBoxRecipe.Location = new Point(43, 242);
|
||||
groupBoxRecipe.Name = "groupBoxRecipe";
|
||||
groupBoxRecipe.Size = new Size(596, 230);
|
||||
groupBoxRecipe.TabIndex = 23;
|
||||
groupBoxRecipe.TabStop = false;
|
||||
groupBoxRecipe.Text = "Рецепт:";
|
||||
//
|
||||
// dataGridViewRecipe
|
||||
//
|
||||
dataGridViewRecipe.BackgroundColor = Color.Bisque;
|
||||
dataGridViewRecipe.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
dataGridViewRecipe.Columns.AddRange(new DataGridViewColumn[] { ColumnComponent, ColumnCount });
|
||||
dataGridViewRecipe.Dock = DockStyle.Fill;
|
||||
dataGridViewRecipe.Location = new Point(3, 23);
|
||||
dataGridViewRecipe.Name = "dataGridViewRecipe";
|
||||
dataGridViewRecipe.RowHeadersVisible = false;
|
||||
dataGridViewRecipe.RowHeadersWidth = 51;
|
||||
dataGridViewRecipe.Size = new Size(590, 204);
|
||||
dataGridViewRecipe.TabIndex = 27;
|
||||
//
|
||||
// ColumnComponent
|
||||
//
|
||||
ColumnComponent.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||
ColumnComponent.HeaderText = "Компонент";
|
||||
ColumnComponent.MinimumWidth = 6;
|
||||
ColumnComponent.Name = "ColumnComponent";
|
||||
//
|
||||
// ColumnCount
|
||||
//
|
||||
ColumnCount.HeaderText = "Кол-во";
|
||||
ColumnCount.MinimumWidth = 6;
|
||||
ColumnCount.Name = "ColumnCount";
|
||||
ColumnCount.Width = 250;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
label3.AutoSize = true;
|
||||
label3.BackColor = Color.Bisque;
|
||||
label3.Location = new Point(43, 111);
|
||||
label3.Name = "label3";
|
||||
label3.Size = new Size(105, 20);
|
||||
label3.TabIndex = 25;
|
||||
label3.Text = "Тип продукта:";
|
||||
//
|
||||
// checkedListBoxProductType
|
||||
//
|
||||
checkedListBoxProductType.FormattingEnabled = true;
|
||||
checkedListBoxProductType.Location = new Point(43, 151);
|
||||
checkedListBoxProductType.MultiColumn = true;
|
||||
checkedListBoxProductType.Name = "checkedListBoxProductType";
|
||||
checkedListBoxProductType.Size = new Size(596, 70);
|
||||
checkedListBoxProductType.TabIndex = 28;
|
||||
//
|
||||
// FormProduct
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
BackColor = Color.AntiqueWhite;
|
||||
ClientSize = new Size(691, 553);
|
||||
Controls.Add(checkedListBoxProductType);
|
||||
Controls.Add(label3);
|
||||
Controls.Add(groupBoxRecipe);
|
||||
Controls.Add(buttonBack);
|
||||
Controls.Add(ButtonSave);
|
||||
Controls.Add(numericUpDownProductPrice);
|
||||
Controls.Add(label4);
|
||||
Controls.Add(label1);
|
||||
Controls.Add(label2);
|
||||
Controls.Add(textBoxProductName);
|
||||
Name = "FormProduct";
|
||||
StartPosition = FormStartPosition.CenterParent;
|
||||
Text = "Продукт";
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownProductPrice).EndInit();
|
||||
groupBoxRecipe.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewRecipe).EndInit();
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label label2;
|
||||
private TextBox textBoxProductName;
|
||||
private Label label1;
|
||||
private NumericUpDown numericUpDownProductPrice;
|
||||
private Label label4;
|
||||
private Button buttonBack;
|
||||
private Button ButtonSave;
|
||||
private GroupBox groupBoxRecipe;
|
||||
private Label label3;
|
||||
private DataGridView dataGridViewRecipe;
|
||||
private CheckedListBox checkedListBoxProductType;
|
||||
private DataGridViewComboBoxColumn ColumnComponent;
|
||||
private DataGridViewTextBoxColumn ColumnCount;
|
||||
}
|
||||
}
|
123
ProjectConfectFactory/ProjectConfectFactory/Forms/FormProduct.cs
Normal file
123
ProjectConfectFactory/ProjectConfectFactory/Forms/FormProduct.cs
Normal file
@ -0,0 +1,123 @@
|
||||
using ProjectConfectFactory.Entities.Enums;
|
||||
using ProjectConfectFactory.Entities;
|
||||
using ProjectConfectFactory.Repositories;
|
||||
|
||||
namespace ProjectConfectFactory.Forms;
|
||||
|
||||
public partial class FormProduct : Form
|
||||
{
|
||||
private readonly IProductRepository _productRepository;
|
||||
|
||||
private int? _productId;
|
||||
public FormProduct(IProductRepository productRepository, IComponentRepository componentRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_productRepository = productRepository ??
|
||||
throw new ArgumentNullException(nameof(productRepository));
|
||||
|
||||
foreach (var elem in Enum.GetValues(typeof(ProductType)))
|
||||
{
|
||||
checkedListBoxProductType.Items.Add(elem);
|
||||
}
|
||||
|
||||
ColumnComponent.DataSource = componentRepository.ReadComponents();
|
||||
ColumnComponent.DisplayMember = "Name";
|
||||
ColumnComponent.ValueMember = "Id";
|
||||
}
|
||||
|
||||
public int Id
|
||||
{
|
||||
set
|
||||
{
|
||||
try
|
||||
{
|
||||
var product = _productRepository.ReadProductById(value);
|
||||
if (product == null)
|
||||
{
|
||||
throw new InvalidDataException(nameof(product));
|
||||
}
|
||||
|
||||
foreach (ProductType elem in Enum.GetValues(typeof(ProductType)))
|
||||
{
|
||||
if ((elem & product.ProductType) != 0)
|
||||
{
|
||||
|
||||
checkedListBoxProductType.SetItemChecked(checkedListBoxProductType.Items.IndexOf(elem), true);
|
||||
}
|
||||
}
|
||||
|
||||
textBoxProductName.Text = product.Name;
|
||||
numericUpDownProductPrice.Value = (decimal)product.Price;
|
||||
_productId = value;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (dataGridViewRecipe.RowCount < 1 || string.IsNullOrWhiteSpace(textBoxProductName.Text) ||
|
||||
checkedListBoxProductType.CheckedItems.Count == 0)
|
||||
{
|
||||
throw new Exception("Имеются незаполненные поля");
|
||||
}
|
||||
|
||||
if (_productId.HasValue)
|
||||
{
|
||||
|
||||
_productRepository.UpdateProduct(CreateProduct(_productId.Value));
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
_productRepository.CreateProduct(CreateProduct(0));
|
||||
}
|
||||
|
||||
Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при сохранении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonBack_Click(object sender, EventArgs e) => Close();
|
||||
|
||||
private List<Recipe> CreateListRecipeFromDataGrid()
|
||||
{
|
||||
var list = new List<Recipe>();
|
||||
foreach (DataGridViewRow row in dataGridViewRecipe.Rows)
|
||||
{
|
||||
if (row.Cells["ColumnComponent"].Value == null ||
|
||||
row.Cells["ColumnCount"].Value == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
list.Add(Recipe.CreateElement(0, Convert.ToInt32(row.Cells["ColumnComponent"].Value), Convert.ToInt32(row.Cells["ColumnCount"].Value)));
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private Product CreateProduct(int id)
|
||||
{
|
||||
ProductType productType = ProductType.None;
|
||||
foreach (var elem in checkedListBoxProductType.CheckedItems)
|
||||
{
|
||||
productType |= (ProductType)elem;
|
||||
}
|
||||
|
||||
return Product.CreateEntity(id, textBoxProductName.Text, productType, CreateListRecipeFromDataGrid(), Convert.ToInt32(numericUpDownProductPrice.Value));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,126 @@
|
||||
<?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.
|
||||
-->
|
||||
<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">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="ColumnComponent.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ColumnCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
131
ProjectConfectFactory/ProjectConfectFactory/Forms/FormProducts.Designer.cs
generated
Normal file
131
ProjectConfectFactory/ProjectConfectFactory/Forms/FormProducts.Designer.cs
generated
Normal file
@ -0,0 +1,131 @@
|
||||
namespace ProjectConfectFactory.Forms
|
||||
{
|
||||
partial class FormProducts
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormProducts));
|
||||
panel1 = new Panel();
|
||||
buttonUpd = new Button();
|
||||
buttonDel = new Button();
|
||||
buttonAdd = new Button();
|
||||
dataGridViewProducts = new DataGridView();
|
||||
panel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewProducts).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.BackColor = Color.Linen;
|
||||
panel1.Controls.Add(buttonUpd);
|
||||
panel1.Controls.Add(buttonDel);
|
||||
panel1.Controls.Add(buttonAdd);
|
||||
panel1.Dock = DockStyle.Right;
|
||||
panel1.Location = new Point(780, 0);
|
||||
panel1.Name = "panel1";
|
||||
panel1.Size = new Size(143, 450);
|
||||
panel1.TabIndex = 2;
|
||||
//
|
||||
// buttonUpd
|
||||
//
|
||||
buttonUpd.BackgroundImage = (Image)resources.GetObject("buttonUpd.BackgroundImage");
|
||||
buttonUpd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonUpd.Location = new Point(27, 339);
|
||||
buttonUpd.Name = "buttonUpd";
|
||||
buttonUpd.Size = new Size(95, 90);
|
||||
buttonUpd.TabIndex = 4;
|
||||
buttonUpd.UseVisualStyleBackColor = true;
|
||||
buttonUpd.Click += buttonUpd_Click;
|
||||
//
|
||||
// buttonDel
|
||||
//
|
||||
buttonDel.BackgroundImage = (Image)resources.GetObject("buttonDel.BackgroundImage");
|
||||
buttonDel.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonDel.Location = new Point(27, 134);
|
||||
buttonDel.Name = "buttonDel";
|
||||
buttonDel.Size = new Size(95, 90);
|
||||
buttonDel.TabIndex = 3;
|
||||
buttonDel.UseVisualStyleBackColor = true;
|
||||
buttonDel.Click += buttonDel_Click;
|
||||
//
|
||||
// buttonAdd
|
||||
//
|
||||
buttonAdd.BackgroundImage = Properties.Resources.add;
|
||||
buttonAdd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonAdd.Location = new Point(27, 24);
|
||||
buttonAdd.Name = "buttonAdd";
|
||||
buttonAdd.Size = new Size(95, 90);
|
||||
buttonAdd.TabIndex = 0;
|
||||
buttonAdd.UseVisualStyleBackColor = true;
|
||||
buttonAdd.Click += buttonAdd_Click;
|
||||
//
|
||||
// dataGridViewProducts
|
||||
//
|
||||
dataGridViewProducts.AllowUserToAddRows = false;
|
||||
dataGridViewProducts.AllowUserToDeleteRows = false;
|
||||
dataGridViewProducts.AllowUserToResizeColumns = false;
|
||||
dataGridViewProducts.AllowUserToResizeRows = false;
|
||||
dataGridViewProducts.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
||||
dataGridViewProducts.BackgroundColor = Color.Bisque;
|
||||
dataGridViewProducts.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
dataGridViewProducts.Dock = DockStyle.Fill;
|
||||
dataGridViewProducts.GridColor = Color.Bisque;
|
||||
dataGridViewProducts.Location = new Point(0, 0);
|
||||
dataGridViewProducts.MultiSelect = false;
|
||||
dataGridViewProducts.Name = "dataGridViewProducts";
|
||||
dataGridViewProducts.ReadOnly = true;
|
||||
dataGridViewProducts.RowHeadersVisible = false;
|
||||
dataGridViewProducts.RowHeadersWidth = 51;
|
||||
dataGridViewProducts.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
|
||||
dataGridViewProducts.Size = new Size(780, 450);
|
||||
dataGridViewProducts.TabIndex = 3;
|
||||
//
|
||||
// FormProducts
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(923, 450);
|
||||
Controls.Add(dataGridViewProducts);
|
||||
Controls.Add(panel1);
|
||||
Name = "FormProducts";
|
||||
StartPosition = FormStartPosition.CenterParent;
|
||||
Text = "Продукты";
|
||||
Load += FormProducts_Load;
|
||||
panel1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewProducts).EndInit();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Panel panel1;
|
||||
private Button buttonUpd;
|
||||
private Button buttonDel;
|
||||
private Button buttonAdd;
|
||||
private DataGridView dataGridViewProducts;
|
||||
}
|
||||
}
|
@ -0,0 +1,110 @@
|
||||
using ProjectConfectFactory.Repositories;
|
||||
using Unity;
|
||||
|
||||
namespace ProjectConfectFactory.Forms;
|
||||
|
||||
public partial class FormProducts : Form
|
||||
{
|
||||
private readonly IUnityContainer _container;
|
||||
|
||||
private readonly IProductRepository _productRepository;
|
||||
|
||||
public FormProducts(IUnityContainer container, IProductRepository productRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_container = container ??
|
||||
throw new ArgumentNullException(nameof(container));
|
||||
_productRepository = productRepository ??
|
||||
throw new ArgumentNullException(nameof(productRepository));
|
||||
}
|
||||
|
||||
private void FormProducts_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при загрузке",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonAdd_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormProduct>().ShowDialog();
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при добавлении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonDel_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectedRow(out var findId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (MessageBox.Show("Удалить запись?", "Удаление",
|
||||
MessageBoxButtons.YesNo) != DialogResult.Yes)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
_productRepository.DeleteProduct(findId);
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при удалении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonUpd_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectedRow(out var findId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var form = _container.Resolve<FormProduct>();
|
||||
form.Id = findId;
|
||||
form.ShowDialog();
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при изменении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadList() => dataGridViewProducts.DataSource = _productRepository.ReadProducts();
|
||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||
{
|
||||
id = 0;
|
||||
if (dataGridViewProducts.SelectedRows.Count < 1)
|
||||
{
|
||||
MessageBox.Show("Нет выбранной записи", "Ошибка",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
id = Convert.ToInt32(dataGridViewProducts.SelectedRows[0].Cells["Id"].Value);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,474 @@
|
||||
<?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.
|
||||
-->
|
||||
<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">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="buttonUpd.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
<data name="buttonDel.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
3h0fmh3MFyFJUmUf/cDsUN6nov4x73G5iDgwcrAt743X9RNnHpgfy5chSVJFZ+5fPLN/X5zM+1TUF/Ie
|
||||
l4uIT4wcrKRP3updAEnSNP3Rb84O5l0q7ON5j8tFxPtHDlZS73H265+ZH86XIknSVnbkc/MHhw3Ku1RV
|
||||
7/19eY/LRcQ78sEqu+7aOPX4nfMv5suRJGkrevyuxUPXLeL5vEeV9d7fnve43MrKymvzwapbW4uzn/nI
|
||||
/N6zDyxO5IuSJOlyNGzMX/7u7L5hc/IOVddauyrv8SQi4mv5cFP0Y2/qx+78vfUDJ/928ZVzhxcv5MuT
|
||||
JOkCe+HkgfnDw7a85YZ+PO/ORD2Sd3gywy8jjBxw0tbW4szbbupP37zRj0iSdKENGzJsSd6XqWut3ZF3
|
||||
eDK995/KB5QkSVvST+QdnszKysorI2Kq70OWJGm3dGrv3r2vyjs8qd77p0YOKkmSLl9/mvd3clN/HFCS
|
||||
pJ1ea+3mvL+T29jYuDIinsqHlSRJl6Unh63N+7sUIuJDIweWJEmXWGvtV/PuLo3NXwb8Zj60JEm6pI63
|
||||
1l6Rd3eptNZ+e+TgkiTpIuu9/0be26Uzn89fHRH/ng8vSZIuqqeW7qN/L6W19rMjL0CSJF1grbWfyTu7
|
||||
zK6IiAP5RUiSpPOvtXbfsKl5ZJda7309Yto/lyhJ0jbu1DXXXNPzvm4LrbV3j7wgSZL0/9R7f1fe1W0l
|
||||
Iv4kvyhJkvTStdb+Iu/ptrP53QCP5BcnSZJGe3g2m31P3tNtaWVl5bUR8djIi5QkSd/pid77j+Yd3dbW
|
||||
1tZmwzcZjbxYSZIU8VxrbZH3c0eIiDe31p4dedGSJO3aNrfxprybO8rmOwGP5xcvSdIu7ehsNtuX93JH
|
||||
iojXR8RXRx6CJEm7pt77v66srFydd3JHG77XuPf+6fwwJEnaDfXePzv8/Zy8j7vFFa2190bEt/ODkSRp
|
||||
h/ZC7/2D2+4rfrdCa+2NEfF3Iw9JkqSd1Jd779fnHdztXtZ7vyUijo08MEmStm3Db/kP73jv2bPnu/L4
|
||||
sWk2m/1wRHx0+CMI+QFKkrTNGrbstvX19R/Ke8dLWFlZ+YGIuHX4YoSRBypJ0jJ3Yhj+1tpVed84T8Pf
|
||||
Etj8r4HPR8SZkYcsSdIyNGzUoYj4uWG78p5xCYbvR+69vy8i7oqIb408fEmSKhvepb5z+P/92Wz2I3m3
|
||||
2AIbGxtX9t5v7L3/wvA2S0T8dUR8IyKeH7kgSZIupWFbvr65NcNb++9eW1t7k1/qWzLDPw6GL1dorb1h
|
||||
dXV1ryRJF9qwIcOWDJuSdwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAbeO/ARmncr3NqsTVAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
161
ProjectConfectFactory/ProjectConfectFactory/Forms/FormPurchase.Designer.cs
generated
Normal file
161
ProjectConfectFactory/ProjectConfectFactory/Forms/FormPurchase.Designer.cs
generated
Normal file
@ -0,0 +1,161 @@
|
||||
namespace ProjectConfectFactory.Forms
|
||||
{
|
||||
partial class FormPurchase
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
label4 = new Label();
|
||||
dateTimePickerPruchase = new DateTimePicker();
|
||||
label1 = new Label();
|
||||
label2 = new Label();
|
||||
comboBoxComponent = new ComboBox();
|
||||
comboBoxSellerName = new ComboBox();
|
||||
label3 = new Label();
|
||||
buttonBack = new Button();
|
||||
ButtonSave = new Button();
|
||||
SuspendLayout();
|
||||
//
|
||||
// label4
|
||||
//
|
||||
label4.AutoSize = true;
|
||||
label4.BackColor = Color.Bisque;
|
||||
label4.Location = new Point(37, 143);
|
||||
label4.Name = "label4";
|
||||
label4.Size = new Size(44, 20);
|
||||
label4.TabIndex = 14;
|
||||
label4.Text = "Дата:";
|
||||
//
|
||||
// dateTimePickerPruchase
|
||||
//
|
||||
dateTimePickerPruchase.Enabled = false;
|
||||
dateTimePickerPruchase.Location = new Point(171, 136);
|
||||
dateTimePickerPruchase.Name = "dateTimePickerPruchase";
|
||||
dateTimePickerPruchase.Size = new Size(250, 27);
|
||||
dateTimePickerPruchase.TabIndex = 13;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.BackColor = Color.Bisque;
|
||||
label1.Location = new Point(37, 88);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(89, 20);
|
||||
label1.TabIndex = 15;
|
||||
label1.Text = "Поставщик:";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.AutoSize = true;
|
||||
label2.BackColor = Color.Bisque;
|
||||
label2.Font = new Font("Segoe UI", 10F);
|
||||
label2.Location = new Point(151, 27);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new Size(86, 23);
|
||||
label2.TabIndex = 16;
|
||||
label2.Text = "Поставка:";
|
||||
//
|
||||
// comboBoxComponent
|
||||
//
|
||||
comboBoxComponent.FormattingEnabled = true;
|
||||
comboBoxComponent.Location = new Point(171, 187);
|
||||
comboBoxComponent.Name = "comboBoxComponent";
|
||||
comboBoxComponent.Size = new Size(250, 28);
|
||||
comboBoxComponent.TabIndex = 17;
|
||||
//
|
||||
// comboBoxSellerName
|
||||
//
|
||||
comboBoxSellerName.FormattingEnabled = true;
|
||||
comboBoxSellerName.Location = new Point(171, 80);
|
||||
comboBoxSellerName.Name = "comboBoxSellerName";
|
||||
comboBoxSellerName.Size = new Size(250, 28);
|
||||
comboBoxSellerName.TabIndex = 18;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
label3.AutoSize = true;
|
||||
label3.BackColor = Color.Bisque;
|
||||
label3.Location = new Point(37, 195);
|
||||
label3.Name = "label3";
|
||||
label3.Size = new Size(91, 20);
|
||||
label3.TabIndex = 19;
|
||||
label3.Text = "Компонент:";
|
||||
//
|
||||
// buttonBack
|
||||
//
|
||||
buttonBack.Location = new Point(272, 252);
|
||||
buttonBack.Name = "buttonBack";
|
||||
buttonBack.Size = new Size(100, 30);
|
||||
buttonBack.TabIndex = 27;
|
||||
buttonBack.Text = "Отмена";
|
||||
buttonBack.UseVisualStyleBackColor = true;
|
||||
buttonBack.Click += buttonBack_Click;
|
||||
//
|
||||
// ButtonSave
|
||||
//
|
||||
ButtonSave.Location = new Point(68, 252);
|
||||
ButtonSave.Name = "ButtonSave";
|
||||
ButtonSave.Size = new Size(100, 30);
|
||||
ButtonSave.TabIndex = 26;
|
||||
ButtonSave.Text = "Сохранить";
|
||||
ButtonSave.UseVisualStyleBackColor = true;
|
||||
ButtonSave.Click += ButtonSave_Click;
|
||||
//
|
||||
// FormPurchase
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
BackColor = Color.AntiqueWhite;
|
||||
ClientSize = new Size(449, 308);
|
||||
Controls.Add(buttonBack);
|
||||
Controls.Add(ButtonSave);
|
||||
Controls.Add(label3);
|
||||
Controls.Add(comboBoxSellerName);
|
||||
Controls.Add(comboBoxComponent);
|
||||
Controls.Add(label2);
|
||||
Controls.Add(label1);
|
||||
Controls.Add(label4);
|
||||
Controls.Add(dateTimePickerPruchase);
|
||||
Name = "FormPurchase";
|
||||
StartPosition = FormStartPosition.CenterParent;
|
||||
Text = "Поставка";
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label label4;
|
||||
private DateTimePicker dateTimePickerPruchase;
|
||||
private Label label1;
|
||||
private Label label2;
|
||||
private ComboBox comboBoxComponent;
|
||||
private ComboBox comboBoxSellerName;
|
||||
private Label label3;
|
||||
private Button buttonBack;
|
||||
private Button ButtonSave;
|
||||
}
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
using ProjectConfectFactory.Entities;
|
||||
using ProjectConfectFactory.Repositories;
|
||||
|
||||
namespace ProjectConfectFactory.Forms;
|
||||
|
||||
public partial class FormPurchase : Form
|
||||
{
|
||||
private readonly IPurchaseRepository _purchaseRepository;
|
||||
|
||||
public FormPurchase(IPurchaseRepository purchaseRepository,
|
||||
ISellerRepository sellerRepository, IComponentRepository componentRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_purchaseRepository = purchaseRepository ?? throw new ArgumentNullException(nameof(purchaseRepository));
|
||||
|
||||
comboBoxSellerName.DataSource = sellerRepository.ReadSellers();
|
||||
comboBoxSellerName.DisplayMember = "Name";
|
||||
comboBoxSellerName.ValueMember = "Id";
|
||||
comboBoxComponent.ValueMember = "ComponentId";
|
||||
|
||||
comboBoxComponent.DataSource = componentRepository.ReadComponents();
|
||||
comboBoxComponent.DisplayMember = "Name";
|
||||
comboBoxComponent.ValueMember = "Id";
|
||||
}
|
||||
|
||||
private void ButtonSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (comboBoxSellerName.SelectedIndex < 0 || comboBoxComponent.SelectedIndex < 0)
|
||||
{
|
||||
throw new Exception("Имеются незаполненные поля");
|
||||
}
|
||||
|
||||
_purchaseRepository.CreatePurchase(Purchase.CreateOpeartion(0, (int)comboBoxSellerName.SelectedValue!, (int)comboBoxComponent.SelectedValue!));
|
||||
|
||||
Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при сохранении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonBack_Click(object sender, EventArgs e) => Close();
|
||||
}
|
||||
|
@ -0,0 +1,120 @@
|
||||
<?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.
|
||||
-->
|
||||
<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">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
102
ProjectConfectFactory/ProjectConfectFactory/Forms/FormPurchases.Designer.cs
generated
Normal file
102
ProjectConfectFactory/ProjectConfectFactory/Forms/FormPurchases.Designer.cs
generated
Normal file
@ -0,0 +1,102 @@
|
||||
namespace ProjectConfectFactory.Forms
|
||||
{
|
||||
partial class FormPurchases
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
panel1 = new Panel();
|
||||
buttonAdd = new Button();
|
||||
dataGridViewPurchases = new DataGridView();
|
||||
panel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewPurchases).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.BackColor = Color.Linen;
|
||||
panel1.Controls.Add(buttonAdd);
|
||||
panel1.Dock = DockStyle.Right;
|
||||
panel1.Location = new Point(657, 0);
|
||||
panel1.Name = "panel1";
|
||||
panel1.Size = new Size(143, 450);
|
||||
panel1.TabIndex = 2;
|
||||
//
|
||||
// buttonAdd
|
||||
//
|
||||
buttonAdd.BackgroundImage = Properties.Resources.add;
|
||||
buttonAdd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonAdd.Location = new Point(27, 24);
|
||||
buttonAdd.Name = "buttonAdd";
|
||||
buttonAdd.Size = new Size(95, 90);
|
||||
buttonAdd.TabIndex = 0;
|
||||
buttonAdd.UseVisualStyleBackColor = true;
|
||||
buttonAdd.Click += buttonAdd_Click;
|
||||
//
|
||||
// dataGridViewPurchases
|
||||
//
|
||||
dataGridViewPurchases.AllowUserToAddRows = false;
|
||||
dataGridViewPurchases.AllowUserToDeleteRows = false;
|
||||
dataGridViewPurchases.AllowUserToResizeColumns = false;
|
||||
dataGridViewPurchases.AllowUserToResizeRows = false;
|
||||
dataGridViewPurchases.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
||||
dataGridViewPurchases.BackgroundColor = Color.Bisque;
|
||||
dataGridViewPurchases.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
dataGridViewPurchases.Dock = DockStyle.Fill;
|
||||
dataGridViewPurchases.GridColor = Color.Bisque;
|
||||
dataGridViewPurchases.Location = new Point(0, 0);
|
||||
dataGridViewPurchases.MultiSelect = false;
|
||||
dataGridViewPurchases.Name = "dataGridViewPurchases";
|
||||
dataGridViewPurchases.ReadOnly = true;
|
||||
dataGridViewPurchases.RowHeadersVisible = false;
|
||||
dataGridViewPurchases.RowHeadersWidth = 51;
|
||||
dataGridViewPurchases.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
|
||||
dataGridViewPurchases.Size = new Size(657, 450);
|
||||
dataGridViewPurchases.TabIndex = 3;
|
||||
//
|
||||
// FormPurchases
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(800, 450);
|
||||
Controls.Add(dataGridViewPurchases);
|
||||
Controls.Add(panel1);
|
||||
Name = "FormPurchases";
|
||||
StartPosition = FormStartPosition.CenterParent;
|
||||
Text = "Поставки";
|
||||
Load += FormPurchases_Load;
|
||||
panel1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewPurchases).EndInit();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Panel panel1;
|
||||
private Button buttonAdd;
|
||||
private DataGridView dataGridViewPurchases;
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
using ProjectConfectFactory.Repositories;
|
||||
using Unity;
|
||||
|
||||
namespace ProjectConfectFactory.Forms;
|
||||
|
||||
public partial class FormPurchases : Form
|
||||
{
|
||||
private readonly IUnityContainer _container;
|
||||
|
||||
private readonly IPurchaseRepository _purchaseRepository;
|
||||
|
||||
public FormPurchases(IUnityContainer container, IPurchaseRepository purchaseRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_container = container ??
|
||||
throw new ArgumentNullException(nameof(container));
|
||||
_purchaseRepository = purchaseRepository ??
|
||||
throw new ArgumentNullException(nameof(purchaseRepository));
|
||||
}
|
||||
|
||||
private void FormPurchases_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при загрузке", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonAdd_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormPurchase>().ShowDialog();
|
||||
LoadList();
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при добавлении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
private void LoadList() => dataGridViewPurchases.DataSource = _purchaseRepository.ReadPurchases();
|
||||
}
|
||||
|
@ -0,0 +1,120 @@
|
||||
<?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.
|
||||
-->
|
||||
<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">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
160
ProjectConfectFactory/ProjectConfectFactory/Forms/FormSeller.Designer.cs
generated
Normal file
160
ProjectConfectFactory/ProjectConfectFactory/Forms/FormSeller.Designer.cs
generated
Normal file
@ -0,0 +1,160 @@
|
||||
namespace ProjectConfectFactory.Forms
|
||||
{
|
||||
partial class FormSeller
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
textBoxSellerName = new TextBox();
|
||||
textBoxSellerPhone = new TextBox();
|
||||
comboBoxSellerDelivTime = new ComboBox();
|
||||
label1 = new Label();
|
||||
label2 = new Label();
|
||||
label3 = new Label();
|
||||
label4 = new Label();
|
||||
ButtonSellerSave = new Button();
|
||||
ButtonSellerBack = new Button();
|
||||
SuspendLayout();
|
||||
//
|
||||
// textBoxSellerName
|
||||
//
|
||||
textBoxSellerName.Location = new Point(230, 66);
|
||||
textBoxSellerName.Name = "textBoxSellerName";
|
||||
textBoxSellerName.Size = new Size(218, 27);
|
||||
textBoxSellerName.TabIndex = 0;
|
||||
//
|
||||
// textBoxSellerPhone
|
||||
//
|
||||
textBoxSellerPhone.Location = new Point(230, 130);
|
||||
textBoxSellerPhone.Name = "textBoxSellerPhone";
|
||||
textBoxSellerPhone.Size = new Size(218, 27);
|
||||
textBoxSellerPhone.TabIndex = 1;
|
||||
//
|
||||
// comboBoxSellerDelivTime
|
||||
//
|
||||
comboBoxSellerDelivTime.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
comboBoxSellerDelivTime.FormattingEnabled = true;
|
||||
comboBoxSellerDelivTime.Location = new Point(230, 189);
|
||||
comboBoxSellerDelivTime.Name = "comboBoxSellerDelivTime";
|
||||
comboBoxSellerDelivTime.Size = new Size(218, 28);
|
||||
comboBoxSellerDelivTime.TabIndex = 2;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.BackColor = Color.Bisque;
|
||||
label1.Font = new Font("Segoe UI", 10F);
|
||||
label1.Location = new Point(172, 19);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(101, 23);
|
||||
label1.TabIndex = 3;
|
||||
label1.Text = "Поставщик:";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.AutoSize = true;
|
||||
label2.BackColor = Color.Bisque;
|
||||
label2.Location = new Point(46, 73);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new Size(119, 20);
|
||||
label2.TabIndex = 4;
|
||||
label2.Text = "Наименование:";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
label3.AutoSize = true;
|
||||
label3.BackColor = Color.Bisque;
|
||||
label3.Location = new Point(46, 137);
|
||||
label3.Name = "label3";
|
||||
label3.Size = new Size(72, 20);
|
||||
label3.TabIndex = 5;
|
||||
label3.Text = "Телефон:";
|
||||
//
|
||||
// label4
|
||||
//
|
||||
label4.AutoSize = true;
|
||||
label4.BackColor = Color.Bisque;
|
||||
label4.Location = new Point(46, 197);
|
||||
label4.Name = "label4";
|
||||
label4.Size = new Size(104, 20);
|
||||
label4.TabIndex = 6;
|
||||
label4.Text = "Тип доставки:";
|
||||
//
|
||||
// ButtonSellerSave
|
||||
//
|
||||
ButtonSellerSave.Location = new Point(71, 251);
|
||||
ButtonSellerSave.Name = "ButtonSellerSave";
|
||||
ButtonSellerSave.Size = new Size(94, 29);
|
||||
ButtonSellerSave.TabIndex = 7;
|
||||
ButtonSellerSave.Text = "Сохранить";
|
||||
ButtonSellerSave.UseVisualStyleBackColor = true;
|
||||
ButtonSellerSave.Click += ButtonSellerSave_Click;
|
||||
//
|
||||
// ButtonSellerBack
|
||||
//
|
||||
ButtonSellerBack.Location = new Point(315, 251);
|
||||
ButtonSellerBack.Name = "ButtonSellerBack";
|
||||
ButtonSellerBack.Size = new Size(94, 29);
|
||||
ButtonSellerBack.TabIndex = 8;
|
||||
ButtonSellerBack.Text = "Отмена";
|
||||
ButtonSellerBack.UseVisualStyleBackColor = true;
|
||||
ButtonSellerBack.Click += ButtonSellerBack_Click;
|
||||
//
|
||||
// FormSeller
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
BackColor = Color.AntiqueWhite;
|
||||
ClientSize = new Size(482, 303);
|
||||
Controls.Add(ButtonSellerBack);
|
||||
Controls.Add(ButtonSellerSave);
|
||||
Controls.Add(label4);
|
||||
Controls.Add(label3);
|
||||
Controls.Add(label2);
|
||||
Controls.Add(label1);
|
||||
Controls.Add(comboBoxSellerDelivTime);
|
||||
Controls.Add(textBoxSellerPhone);
|
||||
Controls.Add(textBoxSellerName);
|
||||
Name = "FormSeller";
|
||||
StartPosition = FormStartPosition.CenterParent;
|
||||
Text = "Поставщик";
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private TextBox textBoxSellerName;
|
||||
private TextBox textBoxSellerPhone;
|
||||
private ComboBox comboBoxSellerDelivTime;
|
||||
private Label label1;
|
||||
private Label label2;
|
||||
private Label label3;
|
||||
private Label label4;
|
||||
private Button ButtonSellerSave;
|
||||
private Button ButtonSellerBack;
|
||||
}
|
||||
}
|
@ -0,0 +1,77 @@
|
||||
using ProjectConfectFactory.Repositories;
|
||||
using ProjectConfectFactory.Entities.Enums;
|
||||
using ProjectConfectFactory.Entities;
|
||||
|
||||
namespace ProjectConfectFactory.Forms;
|
||||
|
||||
public partial class FormSeller : Form
|
||||
{
|
||||
private readonly ISellerRepository _sellerRepository;
|
||||
private int? _sellerId;
|
||||
|
||||
public int Id
|
||||
{
|
||||
set
|
||||
{
|
||||
try
|
||||
{
|
||||
var seller = _sellerRepository.ReadSellerById(value);
|
||||
if (seller == null)
|
||||
{
|
||||
throw new InvalidDataException(nameof(seller));
|
||||
}
|
||||
textBoxSellerName.Text = seller.Name;
|
||||
textBoxSellerPhone.Text = seller.Phone;
|
||||
comboBoxSellerDelivTime.SelectedItem = seller.DeliveryTime;
|
||||
|
||||
_sellerId = value;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public FormSeller(ISellerRepository sellerRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_sellerRepository = sellerRepository ??
|
||||
throw new ArgumentNullException(nameof(sellerRepository));
|
||||
|
||||
comboBoxSellerDelivTime.DataSource = Enum.GetValues(typeof(DeliveryType));
|
||||
}
|
||||
|
||||
private void ButtonSellerSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(textBoxSellerName.Text) || string.IsNullOrWhiteSpace(textBoxSellerPhone.Text) || comboBoxSellerDelivTime.SelectedIndex < 1)
|
||||
{
|
||||
throw new Exception("Имеются незаполненные поля");
|
||||
}
|
||||
|
||||
if (_sellerId.HasValue)
|
||||
{
|
||||
|
||||
_sellerRepository.UpdateSeller(CreateSeller(_sellerId.Value));
|
||||
}
|
||||
else
|
||||
{
|
||||
_sellerRepository.CreateSeller(CreateSeller(0));
|
||||
}
|
||||
|
||||
Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonSellerBack_Click(object sender, EventArgs e) => Close();
|
||||
private Seller CreateSeller(int id) => Seller.CreateEntity(id, textBoxSellerName.Text, textBoxSellerPhone.Text,
|
||||
(DeliveryType)comboBoxSellerDelivTime.SelectedItem!);
|
||||
|
||||
}
|
@ -0,0 +1,120 @@
|
||||
<?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.
|
||||
-->
|
||||
<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">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
131
ProjectConfectFactory/ProjectConfectFactory/Forms/FormSellers.Designer.cs
generated
Normal file
131
ProjectConfectFactory/ProjectConfectFactory/Forms/FormSellers.Designer.cs
generated
Normal file
@ -0,0 +1,131 @@
|
||||
namespace ProjectConfectFactory.Forms
|
||||
{
|
||||
partial class FormSellers
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormSellers));
|
||||
panel1 = new Panel();
|
||||
buttonUpd = new Button();
|
||||
buttonDel = new Button();
|
||||
buttonAdd = new Button();
|
||||
dataGridViewSellers = new DataGridView();
|
||||
panel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewSellers).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.BackColor = Color.Linen;
|
||||
panel1.Controls.Add(buttonUpd);
|
||||
panel1.Controls.Add(buttonDel);
|
||||
panel1.Controls.Add(buttonAdd);
|
||||
panel1.Dock = DockStyle.Right;
|
||||
panel1.Location = new Point(789, 0);
|
||||
panel1.Name = "panel1";
|
||||
panel1.Size = new Size(143, 453);
|
||||
panel1.TabIndex = 0;
|
||||
//
|
||||
// buttonUpd
|
||||
//
|
||||
buttonUpd.BackgroundImage = (Image)resources.GetObject("buttonUpd.BackgroundImage");
|
||||
buttonUpd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonUpd.Location = new Point(27, 339);
|
||||
buttonUpd.Name = "buttonUpd";
|
||||
buttonUpd.Size = new Size(95, 90);
|
||||
buttonUpd.TabIndex = 4;
|
||||
buttonUpd.UseVisualStyleBackColor = true;
|
||||
buttonUpd.Click += ButtonUpd_Click;
|
||||
//
|
||||
// buttonDel
|
||||
//
|
||||
buttonDel.BackgroundImage = (Image)resources.GetObject("buttonDel.BackgroundImage");
|
||||
buttonDel.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonDel.Location = new Point(27, 134);
|
||||
buttonDel.Name = "buttonDel";
|
||||
buttonDel.Size = new Size(95, 90);
|
||||
buttonDel.TabIndex = 3;
|
||||
buttonDel.UseVisualStyleBackColor = true;
|
||||
buttonDel.Click += ButtonDel_Click;
|
||||
//
|
||||
// buttonAdd
|
||||
//
|
||||
buttonAdd.BackgroundImage = Properties.Resources.add;
|
||||
buttonAdd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonAdd.Location = new Point(27, 24);
|
||||
buttonAdd.Name = "buttonAdd";
|
||||
buttonAdd.Size = new Size(95, 90);
|
||||
buttonAdd.TabIndex = 0;
|
||||
buttonAdd.UseVisualStyleBackColor = true;
|
||||
buttonAdd.Click += ButtonAdd_Click;
|
||||
//
|
||||
// dataGridViewSellers
|
||||
//
|
||||
dataGridViewSellers.AllowUserToAddRows = false;
|
||||
dataGridViewSellers.AllowUserToDeleteRows = false;
|
||||
dataGridViewSellers.AllowUserToResizeColumns = false;
|
||||
dataGridViewSellers.AllowUserToResizeRows = false;
|
||||
dataGridViewSellers.Anchor = AnchorStyles.Left | AnchorStyles.Right;
|
||||
dataGridViewSellers.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
||||
dataGridViewSellers.BackgroundColor = Color.Bisque;
|
||||
dataGridViewSellers.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
dataGridViewSellers.GridColor = Color.Bisque;
|
||||
dataGridViewSellers.Location = new Point(0, 0);
|
||||
dataGridViewSellers.MultiSelect = false;
|
||||
dataGridViewSellers.Name = "dataGridViewSellers";
|
||||
dataGridViewSellers.ReadOnly = true;
|
||||
dataGridViewSellers.RowHeadersVisible = false;
|
||||
dataGridViewSellers.RowHeadersWidth = 51;
|
||||
dataGridViewSellers.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
|
||||
dataGridViewSellers.Size = new Size(789, 453);
|
||||
dataGridViewSellers.TabIndex = 1;
|
||||
//
|
||||
// FormSellers
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(932, 453);
|
||||
Controls.Add(dataGridViewSellers);
|
||||
Controls.Add(panel1);
|
||||
Name = "FormSellers";
|
||||
StartPosition = FormStartPosition.CenterParent;
|
||||
Text = "Поставщики";
|
||||
Load += FormSellers_Load;
|
||||
panel1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewSellers).EndInit();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Panel panel1;
|
||||
private DataGridView dataGridViewSellers;
|
||||
private Button buttonUpd;
|
||||
private Button buttonDel;
|
||||
private Button buttonAdd;
|
||||
}
|
||||
}
|
109
ProjectConfectFactory/ProjectConfectFactory/Forms/FormSellers.cs
Normal file
109
ProjectConfectFactory/ProjectConfectFactory/Forms/FormSellers.cs
Normal file
@ -0,0 +1,109 @@
|
||||
using ProjectConfectFactory.Repositories;
|
||||
using Unity;
|
||||
|
||||
namespace ProjectConfectFactory.Forms;
|
||||
|
||||
public partial class FormSellers : Form
|
||||
{
|
||||
private readonly IUnityContainer _container;
|
||||
|
||||
private readonly ISellerRepository _sellerRepository;
|
||||
|
||||
public FormSellers(IUnityContainer container, ISellerRepository sellerRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_container = container ??
|
||||
throw new ArgumentNullException(nameof(container));
|
||||
_sellerRepository = sellerRepository ??
|
||||
throw new ArgumentNullException(nameof(sellerRepository));
|
||||
}
|
||||
private void FormSellers_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при загрузке",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonAdd_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormSeller>().ShowDialog();
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при добавлении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonDel_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectedRow(out var findId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (MessageBox.Show("Удалить запись?", "Удаление",
|
||||
MessageBoxButtons.YesNo) != DialogResult.Yes)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
_sellerRepository.DeleteSeller(findId);
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при удалении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonUpd_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectedRow(out var findId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var form = _container.Resolve<FormSeller>();
|
||||
form.Id = findId;
|
||||
form.ShowDialog();
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при изменении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadList() => dataGridViewSellers.DataSource = _sellerRepository.ReadSellers();
|
||||
|
||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||
{
|
||||
id = 0;
|
||||
if (dataGridViewSellers.SelectedRows.Count < 1)
|
||||
{
|
||||
MessageBox.Show("Нет выбранной записи", "Ошибка",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
id = Convert.ToInt32(dataGridViewSellers.SelectedRows[0].Cells["Id"].Value);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,474 @@
|
||||
<?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.
|
||||
-->
|
||||
<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">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="buttonUpd.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
<data name="buttonDel.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
3h0fmh3MFyFJUmUf/cDsUN6nov4x73G5iDgwcrAt743X9RNnHpgfy5chSVJFZ+5fPLN/X5zM+1TUF/Ie
|
||||
l4uIT4wcrKRP3updAEnSNP3Rb84O5l0q7ON5j8tFxPtHDlZS73H265+ZH86XIknSVnbkc/MHhw3Ku1RV
|
||||
7/19eY/LRcQ78sEqu+7aOPX4nfMv5suRJGkrevyuxUPXLeL5vEeV9d7fnve43MrKymvzwapbW4uzn/nI
|
||||
/N6zDyxO5IuSJOlyNGzMX/7u7L5hc/IOVddauyrv8SQi4mv5cFP0Y2/qx+78vfUDJ/928ZVzhxcv5MuT
|
||||
JOkCe+HkgfnDw7a85YZ+PO/ORD2Sd3gywy8jjBxw0tbW4szbbupP37zRj0iSdKENGzJsSd6XqWut3ZF3
|
||||
eDK995/KB5QkSVvST+QdnszKysorI2Kq70OWJGm3dGrv3r2vyjs8qd77p0YOKkmSLl9/mvd3clN/HFCS
|
||||
pJ1ea+3mvL+T29jYuDIinsqHlSRJl6Unh63N+7sUIuJDIweWJEmXWGvtV/PuLo3NXwb8Zj60JEm6pI63
|
||||
1l6Rd3eptNZ+e+TgkiTpIuu9/0be26Uzn89fHRH/ng8vSZIuqqeW7qN/L6W19rMjL0CSJF1grbWfyTu7
|
||||
zK6IiAP5RUiSpPOvtXbfsKl5ZJda7309Yto/lyhJ0jbu1DXXXNPzvm4LrbV3j7wgSZL0/9R7f1fe1W0l
|
||||
Iv4kvyhJkvTStdb+Iu/ptrP53QCP5BcnSZJGe3g2m31P3tNtaWVl5bUR8djIi5QkSd/pid77j+Yd3dbW
|
||||
1tZmwzcZjbxYSZIU8VxrbZH3c0eIiDe31p4dedGSJO3aNrfxprybO8rmOwGP5xcvSdIu7ehsNtuX93JH
|
||||
iojXR8RXRx6CJEm7pt77v66srFydd3JHG77XuPf+6fwwJEnaDfXePzv8/Zy8j7vFFa2190bEt/ODkSRp
|
||||
h/ZC7/2D2+4rfrdCa+2NEfF3Iw9JkqSd1Jd779fnHdztXtZ7vyUijo08MEmStm3Db/kP73jv2bPnu/L4
|
||||
sWk2m/1wRHx0+CMI+QFKkrTNGrbstvX19R/Ke8dLWFlZ+YGIuHX4YoSRBypJ0jJ3Yhj+1tpVed84T8Pf
|
||||
Etj8r4HPR8SZkYcsSdIyNGzUoYj4uWG78p5xCYbvR+69vy8i7oqIb408fEmSKhvepb5z+P/92Wz2I3m3
|
||||
2AIbGxtX9t5v7L3/wvA2S0T8dUR8IyKeH7kgSZIupWFbvr65NcNb++9eW1t7k1/qWzLDPw6GL1dorb1h
|
||||
dXV1ryRJF9qwIcOWDJuSdwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAbeO/ARmncr3NqsTVAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
@ -1,3 +1,8 @@
|
||||
using ProjectConfectFactory.Repositories.Implementations;
|
||||
using ProjectConfectFactory.Repositories;
|
||||
using Unity;
|
||||
using Unity.Lifetime;
|
||||
|
||||
namespace ProjectConfectFactory
|
||||
{
|
||||
internal static class Program
|
||||
@ -11,7 +16,20 @@ namespace ProjectConfectFactory
|
||||
// To customize application configuration such as set high DPI settings or default font,
|
||||
// see https://aka.ms/applicationconfiguration.
|
||||
ApplicationConfiguration.Initialize();
|
||||
Application.Run(new Form1());
|
||||
Application.Run(CreateContainer().Resolve<FormConFactory>());
|
||||
}
|
||||
|
||||
private static IUnityContainer CreateContainer()
|
||||
{
|
||||
var container = new UnityContainer();
|
||||
|
||||
container.RegisterType<IOrderRepository, OrderRepository>(new TransientLifetimeManager());
|
||||
container.RegisterType<IProductRepository, MyProductRepository>(new TransientLifetimeManager());
|
||||
container.RegisterType<IComponentRepository, ComponentRepository>(new TransientLifetimeManager());
|
||||
container.RegisterType<IPurchaseRepository, PurchaseRepository>(new TransientLifetimeManager());
|
||||
container.RegisterType<ISellerRepository, SellerRepository>(new TransientLifetimeManager());
|
||||
|
||||
return container;
|
||||
}
|
||||
}
|
||||
}
|
@ -8,4 +8,23 @@
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Unity" Version="5.11.10" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Update="Properties\Resources.Designer.cs">
|
||||
<DesignTime>True</DesignTime>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Update="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
83
ProjectConfectFactory/ProjectConfectFactory/Properties/Resources.Designer.cs
generated
Normal file
83
ProjectConfectFactory/ProjectConfectFactory/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,83 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Этот код создан программой.
|
||||
// Исполняемая версия:4.0.30319.42000
|
||||
//
|
||||
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
|
||||
// повторной генерации кода.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ProjectConfectFactory.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
|
||||
/// </summary>
|
||||
// Этот класс создан автоматически классом StronglyTypedResourceBuilder
|
||||
// с помощью такого средства, как ResGen или Visual Studio.
|
||||
// Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
|
||||
// с параметром /str или перестройте свой проект VS.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ProjectConfectFactory.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Перезаписывает свойство CurrentUICulture текущего потока для всех
|
||||
/// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap add {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("add", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Фон {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Фон", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,127 @@
|
||||
<?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.
|
||||
-->
|
||||
<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">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="Фон" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Фон.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="add" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,16 @@
|
||||
using ProjectConfectFactory.Entities;
|
||||
|
||||
namespace ProjectConfectFactory.Repositories;
|
||||
|
||||
public interface IComponentRepository
|
||||
{
|
||||
IEnumerable<Component> ReadComponents();
|
||||
|
||||
Component ReadComponentById(int id);
|
||||
|
||||
void CreateComponent(Component component);
|
||||
|
||||
void UpdateComponent(Component component);
|
||||
|
||||
void DeleteComponent(int id);
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
using ProjectConfectFactory.Entities;
|
||||
namespace ProjectConfectFactory.Repositories;
|
||||
|
||||
public interface IOrderRepository
|
||||
{
|
||||
IEnumerable<Order> ReadOrder(DateTime? dateForm = null, DateTime? dateTo = null, int? ProductId = null);
|
||||
|
||||
void CreateOrder(Order order);
|
||||
|
||||
void DeleteOrder(int id);
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
using ProjectConfectFactory.Entities;
|
||||
using ProjectConfectFactory.Entities.Enums;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectConfectFactory.Repositories;
|
||||
|
||||
public interface IProductRepository
|
||||
{
|
||||
void CreateProduct(Product product);
|
||||
|
||||
void UpdateProduct(Product product);
|
||||
|
||||
Product ReadProductById(int id);
|
||||
|
||||
IEnumerable<Product> ReadProducts();
|
||||
|
||||
void DeleteProduct(int id);
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
using ProjectConfectFactory.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectConfectFactory.Repositories;
|
||||
|
||||
public interface IPurchaseRepository
|
||||
{
|
||||
IEnumerable<Purchase> ReadPurchases(DateTime? dateForm = null, DateTime? dateTo = null, int? SellerId = null, int? ComponentId = null);
|
||||
|
||||
void CreatePurchase(Purchase purchase);
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
using ProjectConfectFactory.Entities;
|
||||
|
||||
namespace ProjectConfectFactory.Repositories;
|
||||
|
||||
public interface ISellerRepository
|
||||
{
|
||||
void CreateSeller(Seller seller);
|
||||
|
||||
void DeleteSeller(int id);
|
||||
|
||||
Seller ReadSellerById(int id);
|
||||
|
||||
IEnumerable<Seller> ReadSellers();
|
||||
|
||||
void UpdateSeller(Seller seller);
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
using ProjectConfectFactory.Entities;
|
||||
|
||||
namespace ProjectConfectFactory.Repositories.Implementations;
|
||||
|
||||
public class ComponentRepository : IComponentRepository
|
||||
{
|
||||
public void CreateComponent(Component component)
|
||||
{
|
||||
}
|
||||
|
||||
public void DeleteComponent(int id)
|
||||
{
|
||||
}
|
||||
|
||||
public Component ReadComponentById(int id)
|
||||
{
|
||||
return Component.CreateEntity(0, string.Empty, string.Empty, 0);
|
||||
}
|
||||
|
||||
public IEnumerable<Component> ReadComponents()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
public void UpdateComponent(Component component)
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
using ProjectConfectFactory.Entities;
|
||||
using ProjectConfectFactory.Entities.Enums;
|
||||
|
||||
namespace ProjectConfectFactory.Repositories.Implementations;
|
||||
|
||||
public class MyProductRepository : IProductRepository
|
||||
{
|
||||
public void CreateProduct(Product product)
|
||||
{
|
||||
}
|
||||
|
||||
public void DeleteProduct(int id)
|
||||
{
|
||||
}
|
||||
|
||||
public Product ReadProductById(int id)
|
||||
{
|
||||
return Product.CreateEntity(0, string.Empty, ProductType.None, [] ,0); ;
|
||||
}
|
||||
|
||||
public IEnumerable<Product> ReadProducts()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
public void UpdateProduct(Product product)
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
using ProjectConfectFactory.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectConfectFactory.Repositories.Implementations;
|
||||
|
||||
public class OrderRepository : IOrderRepository
|
||||
{
|
||||
public void CreateOrder(Order order)
|
||||
{
|
||||
}
|
||||
|
||||
public void DeleteOrder(int id)
|
||||
{
|
||||
}
|
||||
|
||||
public IEnumerable<Order> ReadOrder(DateTime? dateForm = null, DateTime? dateTo = null, int? ProductId = null)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
using ProjectConfectFactory.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectConfectFactory.Repositories.Implementations;
|
||||
|
||||
public class PurchaseRepository : IPurchaseRepository
|
||||
{
|
||||
public void CreatePurchase(Purchase purchase)
|
||||
{
|
||||
}
|
||||
|
||||
public IEnumerable<Purchase> ReadPurchases(DateTime? dateForm = null, DateTime? dateTo = null, int? SellerId = null, int? ComponentId = null)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
using ProjectConfectFactory.Entities;
|
||||
using ProjectConfectFactory.Entities.Enums;
|
||||
using Microsoft.VisualBasic.FileIO;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectConfectFactory.Repositories.Implementations;
|
||||
|
||||
public class SellerRepository : ISellerRepository
|
||||
{
|
||||
public void CreateSeller(Seller seller)
|
||||
{
|
||||
}
|
||||
|
||||
public void DeleteSeller(int id)
|
||||
{
|
||||
}
|
||||
|
||||
public Seller ReadSellerById(int id)
|
||||
{
|
||||
return Seller.CreateEntity(0, string.Empty, string.Empty, DeliveryType.None); ;
|
||||
}
|
||||
|
||||
public IEnumerable<Seller> ReadSellers()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
public void UpdateSeller(Seller seller)
|
||||
{
|
||||
}
|
||||
}
|
BIN
ProjectConfectFactory/ProjectConfectFactory/Resources/add.png
Normal file
BIN
ProjectConfectFactory/ProjectConfectFactory/Resources/add.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.1 KiB |
BIN
ProjectConfectFactory/ProjectConfectFactory/Resources/del.png
Normal file
BIN
ProjectConfectFactory/ProjectConfectFactory/Resources/del.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
Binary file not shown.
After Width: | Height: | Size: 126 KiB |
BIN
ProjectConfectFactory/ProjectConfectFactory/Resources/pencil.png
Normal file
BIN
ProjectConfectFactory/ProjectConfectFactory/Resources/pencil.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
BIN
ProjectConfectFactory/ProjectConfectFactory/Resources/Фон.jpg
Normal file
BIN
ProjectConfectFactory/ProjectConfectFactory/Resources/Фон.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 222 KiB |
Loading…
x
Reference in New Issue
Block a user