Лаба 2 готовая.

This commit is contained in:
MariaBelkina 2024-12-22 14:09:14 +04:00
parent 699bc69f48
commit 48e06960a8
24 changed files with 616 additions and 171 deletions

View File

@ -10,7 +10,7 @@ public class Contract
{ {
public int ContractID { get; private set; } public int ContractID { get; private set; }
public DateTime SaleTime { get; private set; } public DateTime SaleDate { get; private set; }
public int PurchasingCompanyID { get; private set; } public int PurchasingCompanyID { get; private set; }
@ -23,7 +23,7 @@ public class Contract
return new Contract return new Contract
{ {
ContractID = contractID, ContractID = contractID,
SaleTime = DateTime.Now, SaleDate = DateTime.Now,
PurchasingCompanyID = purchasingCompanyID, PurchasingCompanyID = purchasingCompanyID,
AgentsID = agentsID, AgentsID = agentsID,
ProductSales = productSales ProductSales = productSales

View File

@ -8,7 +8,8 @@ namespace TradeAndProcurementEnterprice.Entities.Enums;
public enum Unit public enum Unit
{ {
Kilogram = 0, None = 0,
Piece = 1, Kilogram = 1,
Liter = 2 Piece = 2,
Liter = 3
} }

View File

@ -11,7 +11,7 @@ public class Product
{ {
public int Article { get; private set; } public int Article { get; private set; }
public string Nomenclature { get; private set; } = string.Empty; public string Name { get; private set; } = string.Empty;
public decimal SellingPrice { get; private set; } public decimal SellingPrice { get; private set; }
@ -21,13 +21,13 @@ public class Product
public int InventoryQuantity { get; private set; } public int InventoryQuantity { get; private set; }
public static Product CreateEntity(int article, string nomenclature, decimal sellingPrice, Unit unit, public static Product CreateEntity(int article, string name, decimal sellingPrice, Unit unit,
Category category, int inventoryQuantity) Category category, int inventoryQuantity)
{ {
return new Product return new Product
{ {
Article = article, Article = article,
Nomenclature = nomenclature ?? string.Empty, Name = name ?? string.Empty,
SellingPrice = sellingPrice, SellingPrice = sellingPrice,
Unit = unit, Unit = unit,
Category = category, Category = category,

View File

@ -43,20 +43,18 @@
panel1.Controls.Add(buttonEdit); panel1.Controls.Add(buttonEdit);
panel1.Controls.Add(buttonAdd); panel1.Controls.Add(buttonAdd);
panel1.Dock = DockStyle.Right; panel1.Dock = DockStyle.Right;
panel1.Location = new Point(1196, 0); panel1.Location = new Point(644, 0);
panel1.Margin = new Padding(6, 6, 6, 6);
panel1.Name = "panel1"; panel1.Name = "panel1";
panel1.Size = new Size(178, 929); panel1.Size = new Size(96, 435);
panel1.TabIndex = 0; panel1.TabIndex = 0;
// //
// buttonDel // buttonDel
// //
buttonDel.BackgroundImage = Properties.Resources.remove; buttonDel.BackgroundImage = Properties.Resources.remove;
buttonDel.BackgroundImageLayout = ImageLayout.Stretch; buttonDel.BackgroundImageLayout = ImageLayout.Stretch;
buttonDel.Location = new Point(32, 390); buttonDel.Location = new Point(17, 183);
buttonDel.Margin = new Padding(6, 6, 6, 6);
buttonDel.Name = "buttonDel"; buttonDel.Name = "buttonDel";
buttonDel.Size = new Size(121, 139); buttonDel.Size = new Size(65, 65);
buttonDel.TabIndex = 3; buttonDel.TabIndex = 3;
buttonDel.UseVisualStyleBackColor = true; buttonDel.UseVisualStyleBackColor = true;
buttonDel.Click += ButtonDel_Click; buttonDel.Click += ButtonDel_Click;
@ -65,10 +63,9 @@
// //
buttonEdit.BackgroundImage = Properties.Resources.edit; buttonEdit.BackgroundImage = Properties.Resources.edit;
buttonEdit.BackgroundImageLayout = ImageLayout.Stretch; buttonEdit.BackgroundImageLayout = ImageLayout.Stretch;
buttonEdit.Location = new Point(32, 203); buttonEdit.Location = new Point(17, 95);
buttonEdit.Margin = new Padding(6, 6, 6, 6);
buttonEdit.Name = "buttonEdit"; buttonEdit.Name = "buttonEdit";
buttonEdit.Size = new Size(121, 139); buttonEdit.Size = new Size(65, 65);
buttonEdit.TabIndex = 2; buttonEdit.TabIndex = 2;
buttonEdit.UseVisualStyleBackColor = true; buttonEdit.UseVisualStyleBackColor = true;
buttonEdit.Click += ButtonEdit_Click; buttonEdit.Click += ButtonEdit_Click;
@ -77,10 +74,9 @@
// //
buttonAdd.BackgroundImage = Properties.Resources.add; buttonAdd.BackgroundImage = Properties.Resources.add;
buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; buttonAdd.BackgroundImageLayout = ImageLayout.Stretch;
buttonAdd.Location = new Point(32, 26); buttonAdd.Location = new Point(17, 12);
buttonAdd.Margin = new Padding(6, 6, 6, 6);
buttonAdd.Name = "buttonAdd"; buttonAdd.Name = "buttonAdd";
buttonAdd.Size = new Size(121, 139); buttonAdd.Size = new Size(65, 65);
buttonAdd.TabIndex = 1; buttonAdd.TabIndex = 1;
buttonAdd.UseVisualStyleBackColor = true; buttonAdd.UseVisualStyleBackColor = true;
buttonAdd.Click += ButtonAdd_Click; buttonAdd.Click += ButtonAdd_Click;
@ -95,25 +91,24 @@
dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewData.Dock = DockStyle.Fill; dataGridViewData.Dock = DockStyle.Fill;
dataGridViewData.Location = new Point(0, 0); dataGridViewData.Location = new Point(0, 0);
dataGridViewData.Margin = new Padding(6, 6, 6, 6);
dataGridViewData.MultiSelect = false; dataGridViewData.MultiSelect = false;
dataGridViewData.Name = "dataGridViewData"; dataGridViewData.Name = "dataGridViewData";
dataGridViewData.ReadOnly = true; dataGridViewData.ReadOnly = true;
dataGridViewData.RowHeadersVisible = false; dataGridViewData.RowHeadersVisible = false;
dataGridViewData.RowHeadersWidth = 82; dataGridViewData.RowHeadersWidth = 82;
dataGridViewData.RowTemplate.Height = 25; dataGridViewData.RowTemplate.Height = 25;
dataGridViewData.Size = new Size(1196, 929); dataGridViewData.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridViewData.Size = new Size(644, 435);
dataGridViewData.TabIndex = 1; dataGridViewData.TabIndex = 1;
// //
// FormAgents // FormAgents
// //
AutoScaleDimensions = new SizeF(13F, 32F); AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(1374, 929); ClientSize = new Size(740, 435);
Controls.Add(dataGridViewData); Controls.Add(dataGridViewData);
Controls.Add(panel1); Controls.Add(panel1);
Margin = new Padding(6, 6, 6, 6); MinimumSize = new Size(546, 316);
MinimumSize = new Size(1000, 630);
Name = "FormAgents"; Name = "FormAgents";
StartPosition = FormStartPosition.CenterParent; StartPosition = FormStartPosition.CenterParent;
Text = "Агенты-реализаторы"; Text = "Агенты-реализаторы";

View File

@ -45,10 +45,9 @@
// buttonCancel // buttonCancel
// //
buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
buttonCancel.Location = new Point(292, 653); buttonCancel.Location = new Point(293, 306);
buttonCancel.Margin = new Padding(6);
buttonCancel.Name = "buttonCancel"; buttonCancel.Name = "buttonCancel";
buttonCancel.Size = new Size(156, 49); buttonCancel.Size = new Size(84, 23);
buttonCancel.TabIndex = 32; buttonCancel.TabIndex = 32;
buttonCancel.Text = "Отмена"; buttonCancel.Text = "Отмена";
buttonCancel.UseVisualStyleBackColor = true; buttonCancel.UseVisualStyleBackColor = true;
@ -57,10 +56,9 @@
// buttonSave // buttonSave
// //
buttonSave.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; buttonSave.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
buttonSave.Location = new Point(50, 653); buttonSave.Location = new Point(27, 306);
buttonSave.Margin = new Padding(6);
buttonSave.Name = "buttonSave"; buttonSave.Name = "buttonSave";
buttonSave.Size = new Size(156, 49); buttonSave.Size = new Size(84, 23);
buttonSave.TabIndex = 33; buttonSave.TabIndex = 33;
buttonSave.Text = "Сохранить"; buttonSave.Text = "Сохранить";
buttonSave.UseVisualStyleBackColor = true; buttonSave.UseVisualStyleBackColor = true;
@ -71,10 +69,9 @@
comboBoxPurchasingCompany.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; comboBoxPurchasingCompany.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
comboBoxPurchasingCompany.DropDownStyle = ComboBoxStyle.DropDownList; comboBoxPurchasingCompany.DropDownStyle = ComboBoxStyle.DropDownList;
comboBoxPurchasingCompany.FormattingEnabled = true; comboBoxPurchasingCompany.FormattingEnabled = true;
comboBoxPurchasingCompany.Location = new Point(221, 34); comboBoxPurchasingCompany.Location = new Point(119, 16);
comboBoxPurchasingCompany.Margin = new Padding(6);
comboBoxPurchasingCompany.Name = "comboBoxPurchasingCompany"; comboBoxPurchasingCompany.Name = "comboBoxPurchasingCompany";
comboBoxPurchasingCompany.Size = new Size(241, 40); comboBoxPurchasingCompany.Size = new Size(268, 23);
comboBoxPurchasingCompany.TabIndex = 29; comboBoxPurchasingCompany.TabIndex = 29;
// //
// comboBoxAgent // comboBoxAgent
@ -82,27 +79,24 @@
comboBoxAgent.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; comboBoxAgent.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
comboBoxAgent.DropDownStyle = ComboBoxStyle.DropDownList; comboBoxAgent.DropDownStyle = ComboBoxStyle.DropDownList;
comboBoxAgent.FormattingEnabled = true; comboBoxAgent.FormattingEnabled = true;
comboBoxAgent.Location = new Point(221, 126); comboBoxAgent.Location = new Point(119, 59);
comboBoxAgent.Margin = new Padding(6);
comboBoxAgent.Name = "comboBoxAgent"; comboBoxAgent.Name = "comboBoxAgent";
comboBoxAgent.Size = new Size(241, 40); comboBoxAgent.Size = new Size(268, 23);
comboBoxAgent.TabIndex = 30; comboBoxAgent.TabIndex = 30;
// //
// labelAgent // labelAgent
// //
labelAgent.Location = new Point(39, 111); labelAgent.Location = new Point(21, 52);
labelAgent.Margin = new Padding(6, 0, 6, 0);
labelAgent.Name = "labelAgent"; labelAgent.Name = "labelAgent";
labelAgent.Size = new Size(167, 77); labelAgent.Size = new Size(90, 36);
labelAgent.TabIndex = 27; labelAgent.TabIndex = 27;
labelAgent.Text = "Агент-\r\nреализатор"; labelAgent.Text = "Агент-\r\nреализатор";
// //
// labelPurchatingCompany // labelPurchatingCompany
// //
labelPurchatingCompany.Location = new Point(43, 23); labelPurchatingCompany.Location = new Point(23, 11);
labelPurchatingCompany.Margin = new Padding(6, 0, 6, 0);
labelPurchatingCompany.Name = "labelPurchatingCompany"; labelPurchatingCompany.Name = "labelPurchatingCompany";
labelPurchatingCompany.Size = new Size(163, 68); labelPurchatingCompany.Size = new Size(88, 32);
labelPurchatingCompany.TabIndex = 28; labelPurchatingCompany.TabIndex = 28;
labelPurchatingCompany.Text = "Компания закупщик"; labelPurchatingCompany.Text = "Компания закупщик";
// //
@ -110,11 +104,9 @@
// //
groupBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; groupBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
groupBox1.Controls.Add(dataGridViewProduct); groupBox1.Controls.Add(dataGridViewProduct);
groupBox1.Location = new Point(43, 218); groupBox1.Location = new Point(23, 102);
groupBox1.Margin = new Padding(6);
groupBox1.Name = "groupBox1"; groupBox1.Name = "groupBox1";
groupBox1.Padding = new Padding(6); groupBox1.Size = new Size(363, 198);
groupBox1.Size = new Size(422, 422);
groupBox1.TabIndex = 34; groupBox1.TabIndex = 34;
groupBox1.TabStop = false; groupBox1.TabStop = false;
groupBox1.Text = "Продукт"; groupBox1.Text = "Продукт";
@ -126,15 +118,14 @@
dataGridViewProduct.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; dataGridViewProduct.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
dataGridViewProduct.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridViewProduct.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewProduct.Columns.AddRange(new DataGridViewColumn[] { ColumnProduct, ColumnQuantity }); dataGridViewProduct.Columns.AddRange(new DataGridViewColumn[] { ColumnProduct, ColumnQuantity });
dataGridViewProduct.Location = new Point(6, 41); dataGridViewProduct.Location = new Point(3, 19);
dataGridViewProduct.Margin = new Padding(6);
dataGridViewProduct.MultiSelect = false; dataGridViewProduct.MultiSelect = false;
dataGridViewProduct.Name = "dataGridViewProduct"; dataGridViewProduct.Name = "dataGridViewProduct";
dataGridViewProduct.RowHeadersVisible = false; dataGridViewProduct.RowHeadersVisible = false;
dataGridViewProduct.RowHeadersWidth = 82; dataGridViewProduct.RowHeadersWidth = 82;
dataGridViewProduct.RowTemplate.Height = 25; dataGridViewProduct.RowTemplate.Height = 25;
dataGridViewProduct.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dataGridViewProduct.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridViewProduct.Size = new Size(404, 375); dataGridViewProduct.Size = new Size(354, 176);
dataGridViewProduct.TabIndex = 0; dataGridViewProduct.TabIndex = 0;
// //
// ColumnProduct // ColumnProduct
@ -153,9 +144,9 @@
// //
// FormContract // FormContract
// //
AutoScaleDimensions = new SizeF(13F, 32F); AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(497, 727); ClientSize = new Size(404, 341);
Controls.Add(groupBox1); Controls.Add(groupBox1);
Controls.Add(buttonCancel); Controls.Add(buttonCancel);
Controls.Add(buttonSave); Controls.Add(buttonSave);
@ -163,8 +154,7 @@
Controls.Add(comboBoxAgent); Controls.Add(comboBoxAgent);
Controls.Add(labelAgent); Controls.Add(labelAgent);
Controls.Add(labelPurchatingCompany); Controls.Add(labelPurchatingCompany);
Margin = new Padding(6); MinimumSize = new Size(266, 363);
MinimumSize = new Size(480, 730);
Name = "FormContract"; Name = "FormContract";
StartPosition = FormStartPosition.CenterParent; StartPosition = FormStartPosition.CenterParent;
Text = "Контракт"; Text = "Контракт";

View File

@ -33,7 +33,7 @@ namespace TradeAndProcurementEnterprice.Forms
comboBoxAgent.ValueMember = "Id"; comboBoxAgent.ValueMember = "Id";
ColumnProduct.DataSource = productRepository.ReadProducts(); ColumnProduct.DataSource = productRepository.ReadProducts();
ColumnProduct.DisplayMember = "Nomenclature"; ColumnProduct.DisplayMember = "Name";
ColumnProduct.ValueMember = "Article"; ColumnProduct.ValueMember = "Article";
} }
@ -48,6 +48,7 @@ namespace TradeAndProcurementEnterprice.Forms
_contractRepository.CreateContract(Contract.CreateOperation(0, _contractRepository.CreateContract(Contract.CreateOperation(0,
(int)comboBoxPurchasingCompany.SelectedValue!, (int)comboBoxAgent.SelectedValue!, CreateListProductSalesFromDataGrid())); (int)comboBoxPurchasingCompany.SelectedValue!, (int)comboBoxAgent.SelectedValue!, CreateListProductSalesFromDataGrid()));
Close();
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -67,7 +68,7 @@ namespace TradeAndProcurementEnterprice.Forms
continue; continue;
} }
list.Add(ProductSales.CreateElement(0, Convert.ToInt32(row.Cells["ColumnProduct"]), Convert.ToInt32(row.Cells["ColumnQuantity"]))); list.Add(ProductSales.CreateElement(0, Convert.ToInt32(row.Cells["ColumnProduct"].Value), Convert.ToInt32(row.Cells["ColumnQuantity"].Value)));
} }
return list; return list;
} }

View File

@ -39,20 +39,18 @@
// //
panel1.Controls.Add(buttonAdd); panel1.Controls.Add(buttonAdd);
panel1.Dock = DockStyle.Right; panel1.Dock = DockStyle.Right;
panel1.Location = new Point(1196, 0); panel1.Location = new Point(644, 0);
panel1.Margin = new Padding(6, 6, 6, 6);
panel1.Name = "panel1"; panel1.Name = "panel1";
panel1.Size = new Size(178, 929); panel1.Size = new Size(96, 435);
panel1.TabIndex = 0; panel1.TabIndex = 0;
// //
// buttonAdd // buttonAdd
// //
buttonAdd.BackgroundImage = Properties.Resources.add; buttonAdd.BackgroundImage = Properties.Resources.add;
buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; buttonAdd.BackgroundImageLayout = ImageLayout.Stretch;
buttonAdd.Location = new Point(32, 26); buttonAdd.Location = new Point(17, 12);
buttonAdd.Margin = new Padding(6, 6, 6, 6);
buttonAdd.Name = "buttonAdd"; buttonAdd.Name = "buttonAdd";
buttonAdd.Size = new Size(121, 139); buttonAdd.Size = new Size(65, 65);
buttonAdd.TabIndex = 1; buttonAdd.TabIndex = 1;
buttonAdd.UseVisualStyleBackColor = true; buttonAdd.UseVisualStyleBackColor = true;
buttonAdd.Click += ButtonAdd_Click; buttonAdd.Click += ButtonAdd_Click;
@ -67,25 +65,24 @@
dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewData.Dock = DockStyle.Fill; dataGridViewData.Dock = DockStyle.Fill;
dataGridViewData.Location = new Point(0, 0); dataGridViewData.Location = new Point(0, 0);
dataGridViewData.Margin = new Padding(6, 6, 6, 6);
dataGridViewData.MultiSelect = false; dataGridViewData.MultiSelect = false;
dataGridViewData.Name = "dataGridViewData"; dataGridViewData.Name = "dataGridViewData";
dataGridViewData.ReadOnly = true; dataGridViewData.ReadOnly = true;
dataGridViewData.RowHeadersVisible = false; dataGridViewData.RowHeadersVisible = false;
dataGridViewData.RowHeadersWidth = 82; dataGridViewData.RowHeadersWidth = 82;
dataGridViewData.RowTemplate.Height = 25; dataGridViewData.RowTemplate.Height = 25;
dataGridViewData.Size = new Size(1196, 929); dataGridViewData.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridViewData.Size = new Size(644, 435);
dataGridViewData.TabIndex = 1; dataGridViewData.TabIndex = 1;
// //
// FormContracts // FormContracts
// //
AutoScaleDimensions = new SizeF(13F, 32F); AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(1374, 929); ClientSize = new Size(740, 435);
Controls.Add(dataGridViewData); Controls.Add(dataGridViewData);
Controls.Add(panel1); Controls.Add(panel1);
Margin = new Padding(6, 6, 6, 6); MinimumSize = new Size(546, 316);
MinimumSize = new Size(1000, 630);
Name = "FormContracts"; Name = "FormContracts";
StartPosition = FormStartPosition.CenterParent; StartPosition = FormStartPosition.CenterParent;
Text = "Продажи"; Text = "Продажи";

View File

@ -24,7 +24,7 @@ namespace TradeAndProcurementEnterprice.Forms
throw new ArgumentNullException(nameof(delegateToAgentRepository)); throw new ArgumentNullException(nameof(delegateToAgentRepository));
comboBoxProduct.DataSource = productRepository.ReadProducts(); comboBoxProduct.DataSource = productRepository.ReadProducts();
comboBoxProduct.DisplayMember = "Nomenclature"; comboBoxProduct.DisplayMember = "Name";
comboBoxProduct.ValueMember = "Article"; comboBoxProduct.ValueMember = "Article";
comboBoxAgent.DataSource = agentsRepository.ReadAgents(); comboBoxAgent.DataSource = agentsRepository.ReadAgents();
@ -44,6 +44,7 @@ namespace TradeAndProcurementEnterprice.Forms
_delegateToAgentRepository.CreateDelegatesToAgent(DelegateToAgents.CreateOperation(0, _delegateToAgentRepository.CreateDelegatesToAgent(DelegateToAgents.CreateOperation(0,
(int)comboBoxProduct.SelectedValue!, Convert.ToInt32(numericUpDownQuantity.Value), (int)comboBoxProduct.SelectedValue!, Convert.ToInt32(numericUpDownQuantity.Value),
(int)comboBoxAgent.SelectedValue!)); (int)comboBoxAgent.SelectedValue!));
Close();
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@ -39,20 +39,18 @@
// //
panel1.Controls.Add(buttonAdd); panel1.Controls.Add(buttonAdd);
panel1.Dock = DockStyle.Right; panel1.Dock = DockStyle.Right;
panel1.Location = new Point(1196, 0); panel1.Location = new Point(644, 0);
panel1.Margin = new Padding(6, 6, 6, 6);
panel1.Name = "panel1"; panel1.Name = "panel1";
panel1.Size = new Size(178, 929); panel1.Size = new Size(96, 435);
panel1.TabIndex = 0; panel1.TabIndex = 0;
// //
// buttonAdd // buttonAdd
// //
buttonAdd.BackgroundImage = Properties.Resources.add; buttonAdd.BackgroundImage = Properties.Resources.add;
buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; buttonAdd.BackgroundImageLayout = ImageLayout.Stretch;
buttonAdd.Location = new Point(32, 26); buttonAdd.Location = new Point(17, 12);
buttonAdd.Margin = new Padding(6, 6, 6, 6);
buttonAdd.Name = "buttonAdd"; buttonAdd.Name = "buttonAdd";
buttonAdd.Size = new Size(121, 139); buttonAdd.Size = new Size(65, 65);
buttonAdd.TabIndex = 1; buttonAdd.TabIndex = 1;
buttonAdd.UseVisualStyleBackColor = true; buttonAdd.UseVisualStyleBackColor = true;
buttonAdd.Click += ButtonAdd_Click; buttonAdd.Click += ButtonAdd_Click;
@ -67,25 +65,24 @@
dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewData.Dock = DockStyle.Fill; dataGridViewData.Dock = DockStyle.Fill;
dataGridViewData.Location = new Point(0, 0); dataGridViewData.Location = new Point(0, 0);
dataGridViewData.Margin = new Padding(6, 6, 6, 6);
dataGridViewData.MultiSelect = false; dataGridViewData.MultiSelect = false;
dataGridViewData.Name = "dataGridViewData"; dataGridViewData.Name = "dataGridViewData";
dataGridViewData.ReadOnly = true; dataGridViewData.ReadOnly = true;
dataGridViewData.RowHeadersVisible = false; dataGridViewData.RowHeadersVisible = false;
dataGridViewData.RowHeadersWidth = 82; dataGridViewData.RowHeadersWidth = 82;
dataGridViewData.RowTemplate.Height = 25; dataGridViewData.RowTemplate.Height = 25;
dataGridViewData.Size = new Size(1196, 929); dataGridViewData.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridViewData.Size = new Size(644, 435);
dataGridViewData.TabIndex = 1; dataGridViewData.TabIndex = 1;
// //
// FormDelegatesToAgents // FormDelegatesToAgents
// //
AutoScaleDimensions = new SizeF(13F, 32F); AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(1374, 929); ClientSize = new Size(740, 435);
Controls.Add(dataGridViewData); Controls.Add(dataGridViewData);
Controls.Add(panel1); Controls.Add(panel1);
Margin = new Padding(6, 6, 6, 6); MinimumSize = new Size(546, 316);
MinimumSize = new Size(1000, 630);
Name = "FormDelegatesToAgents"; Name = "FormDelegatesToAgents";
StartPosition = FormStartPosition.CenterParent; StartPosition = FormStartPosition.CenterParent;
Text = "Передача товара агентам-реализаторам"; Text = "Передача товара агентам-реализаторам";

View File

@ -28,12 +28,12 @@
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
labelNomenclature = new Label(); labelName = new Label();
labelPrice = new Label(); labelPrice = new Label();
labelUnit = new Label(); labelUnit = new Label();
labelCategory = new Label(); labelCategory = new Label();
labelInventoryQuantity = new Label(); labelInventoryQuantity = new Label();
textBoxNomenclature = new TextBox(); textBoxName = new TextBox();
numericUpDownPrice = new NumericUpDown(); numericUpDownPrice = new NumericUpDown();
comboBoxUnit = new ComboBox(); comboBoxUnit = new ComboBox();
numericUpDownQuantity = new NumericUpDown(); numericUpDownQuantity = new NumericUpDown();
@ -44,14 +44,14 @@
((System.ComponentModel.ISupportInitialize)numericUpDownQuantity).BeginInit(); ((System.ComponentModel.ISupportInitialize)numericUpDownQuantity).BeginInit();
SuspendLayout(); SuspendLayout();
// //
// labelNomenclature // labelName
// //
labelNomenclature.AutoSize = true; labelName.AutoSize = true;
labelNomenclature.Location = new Point(26, 27); labelName.Location = new Point(26, 27);
labelNomenclature.Name = "labelNomenclature"; labelName.Name = "labelName";
labelNomenclature.Size = new Size(180, 33); labelName.Size = new Size(180, 33);
labelNomenclature.TabIndex = 0; labelName.TabIndex = 0;
labelNomenclature.Text = "Номенклатура"; labelName.Text = "Номенклатура";
// //
// labelPrice // labelPrice
// //
@ -86,19 +86,20 @@
labelInventoryQuantity.TabIndex = 0; labelInventoryQuantity.TabIndex = 0;
labelInventoryQuantity.Text = "Количество на складе"; labelInventoryQuantity.Text = "Количество на складе";
// //
// textBoxNomenclature // textBoxName
// //
textBoxNomenclature.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; textBoxName.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
textBoxNomenclature.Location = new Point(248, 24); textBoxName.Location = new Point(248, 24);
textBoxNomenclature.Name = "textBoxNomenclature"; textBoxName.Name = "textBoxName";
textBoxNomenclature.Size = new Size(237, 41); textBoxName.Size = new Size(237, 41);
textBoxNomenclature.TabIndex = 1; textBoxName.TabIndex = 1;
// //
// numericUpDownPrice // numericUpDownPrice
// //
numericUpDownPrice.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; numericUpDownPrice.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
numericUpDownPrice.DecimalPlaces = 2; numericUpDownPrice.DecimalPlaces = 2;
numericUpDownPrice.Location = new Point(248, 100); numericUpDownPrice.Location = new Point(248, 100);
numericUpDownPrice.Maximum = new decimal(new int[] { 1000000, 0, 0, 0 });
numericUpDownPrice.Name = "numericUpDownPrice"; numericUpDownPrice.Name = "numericUpDownPrice";
numericUpDownPrice.Size = new Size(237, 41); numericUpDownPrice.Size = new Size(237, 41);
numericUpDownPrice.TabIndex = 2; numericUpDownPrice.TabIndex = 2;
@ -165,12 +166,12 @@
Controls.Add(numericUpDownQuantity); Controls.Add(numericUpDownQuantity);
Controls.Add(comboBoxUnit); Controls.Add(comboBoxUnit);
Controls.Add(numericUpDownPrice); Controls.Add(numericUpDownPrice);
Controls.Add(textBoxNomenclature); Controls.Add(textBoxName);
Controls.Add(labelInventoryQuantity); Controls.Add(labelInventoryQuantity);
Controls.Add(labelCategory); Controls.Add(labelCategory);
Controls.Add(labelUnit); Controls.Add(labelUnit);
Controls.Add(labelPrice); Controls.Add(labelPrice);
Controls.Add(labelNomenclature); Controls.Add(labelName);
Font = new Font("Comic Sans MS", 9F, FontStyle.Regular, GraphicsUnit.Point); Font = new Font("Comic Sans MS", 9F, FontStyle.Regular, GraphicsUnit.Point);
MinimumSize = new Size(585, 585); MinimumSize = new Size(585, 585);
Name = "FormProduct"; Name = "FormProduct";
@ -184,12 +185,12 @@
#endregion #endregion
private Label labelNomenclature; private Label labelName;
private Label labelPrice; private Label labelPrice;
private Label labelUnit; private Label labelUnit;
private Label labelCategory; private Label labelCategory;
private Label labelInventoryQuantity; private Label labelInventoryQuantity;
private TextBox textBoxNomenclature; private TextBox textBoxName;
private NumericUpDown numericUpDownPrice; private NumericUpDown numericUpDownPrice;
private ComboBox comboBoxUnit; private ComboBox comboBoxUnit;
private NumericUpDown numericUpDownQuantity; private NumericUpDown numericUpDownQuantity;

View File

@ -31,7 +31,7 @@ namespace TradeAndProcurementEnterprice.Forms
throw new InvalidDataException(nameof(product)); throw new InvalidDataException(nameof(product));
} }
textBoxNomenclature.Text = product.Nomenclature; textBoxName.Text = product.Name;
numericUpDownPrice.Value = product.SellingPrice; numericUpDownPrice.Value = product.SellingPrice;
comboBoxUnit.SelectedItem = product.Unit; comboBoxUnit.SelectedItem = product.Unit;
comboBoxCategory.SelectedItem = product.Category; comboBoxCategory.SelectedItem = product.Category;
@ -60,7 +60,7 @@ namespace TradeAndProcurementEnterprice.Forms
{ {
try try
{ {
if (string.IsNullOrEmpty(textBoxNomenclature.Text) || comboBoxUnit.SelectedIndex < 1 if (string.IsNullOrEmpty(textBoxName.Text) || comboBoxUnit.SelectedIndex < 1
|| comboBoxCategory.SelectedIndex < 1) || comboBoxCategory.SelectedIndex < 1)
{ {
throw new Exception("Имеются незаполненные поля!"); throw new Exception("Имеются незаполненные поля!");
@ -85,7 +85,7 @@ namespace TradeAndProcurementEnterprice.Forms
private void ButtonCancel_Click(object sender, EventArgs e) => Close(); private void ButtonCancel_Click(object sender, EventArgs e) => Close();
private Product CreateProduct(int article) => Product.CreateEntity(article, textBoxNomenclature.Text, private Product CreateProduct(int article) => Product.CreateEntity(article, textBoxName.Text,
numericUpDownPrice.Value, (Unit)comboBoxUnit.SelectedItem, (Category)comboBoxCategory.SelectedItem, numericUpDownPrice.Value, (Unit)comboBoxUnit.SelectedItem, (Category)comboBoxCategory.SelectedItem,
Convert.ToInt32(numericUpDownQuantity.Value)); Convert.ToInt32(numericUpDownQuantity.Value));
} }

View File

@ -43,20 +43,18 @@
panel1.Controls.Add(buttonEdit); panel1.Controls.Add(buttonEdit);
panel1.Controls.Add(buttonAdd); panel1.Controls.Add(buttonAdd);
panel1.Dock = DockStyle.Right; panel1.Dock = DockStyle.Right;
panel1.Location = new Point(1196, 0); panel1.Location = new Point(644, 0);
panel1.Margin = new Padding(6, 6, 6, 6);
panel1.Name = "panel1"; panel1.Name = "panel1";
panel1.Size = new Size(178, 929); panel1.Size = new Size(96, 435);
panel1.TabIndex = 0; panel1.TabIndex = 0;
// //
// buttonDel // buttonDel
// //
buttonDel.BackgroundImage = Properties.Resources.remove; buttonDel.BackgroundImage = Properties.Resources.remove;
buttonDel.BackgroundImageLayout = ImageLayout.Stretch; buttonDel.BackgroundImageLayout = ImageLayout.Stretch;
buttonDel.Location = new Point(32, 390); buttonDel.Location = new Point(17, 183);
buttonDel.Margin = new Padding(6, 6, 6, 6);
buttonDel.Name = "buttonDel"; buttonDel.Name = "buttonDel";
buttonDel.Size = new Size(121, 139); buttonDel.Size = new Size(65, 65);
buttonDel.TabIndex = 3; buttonDel.TabIndex = 3;
buttonDel.UseVisualStyleBackColor = true; buttonDel.UseVisualStyleBackColor = true;
buttonDel.Click += ButtonDel_Click; buttonDel.Click += ButtonDel_Click;
@ -65,10 +63,9 @@
// //
buttonEdit.BackgroundImage = Properties.Resources.edit; buttonEdit.BackgroundImage = Properties.Resources.edit;
buttonEdit.BackgroundImageLayout = ImageLayout.Stretch; buttonEdit.BackgroundImageLayout = ImageLayout.Stretch;
buttonEdit.Location = new Point(32, 203); buttonEdit.Location = new Point(17, 95);
buttonEdit.Margin = new Padding(6, 6, 6, 6);
buttonEdit.Name = "buttonEdit"; buttonEdit.Name = "buttonEdit";
buttonEdit.Size = new Size(121, 139); buttonEdit.Size = new Size(65, 65);
buttonEdit.TabIndex = 2; buttonEdit.TabIndex = 2;
buttonEdit.UseVisualStyleBackColor = true; buttonEdit.UseVisualStyleBackColor = true;
buttonEdit.Click += ButtonEdit_Click; buttonEdit.Click += ButtonEdit_Click;
@ -77,10 +74,9 @@
// //
buttonAdd.BackgroundImage = Properties.Resources.add; buttonAdd.BackgroundImage = Properties.Resources.add;
buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; buttonAdd.BackgroundImageLayout = ImageLayout.Stretch;
buttonAdd.Location = new Point(32, 26); buttonAdd.Location = new Point(17, 12);
buttonAdd.Margin = new Padding(6, 6, 6, 6);
buttonAdd.Name = "buttonAdd"; buttonAdd.Name = "buttonAdd";
buttonAdd.Size = new Size(121, 139); buttonAdd.Size = new Size(65, 65);
buttonAdd.TabIndex = 1; buttonAdd.TabIndex = 1;
buttonAdd.UseVisualStyleBackColor = true; buttonAdd.UseVisualStyleBackColor = true;
buttonAdd.Click += ButtonAdd_Click; buttonAdd.Click += ButtonAdd_Click;
@ -95,25 +91,24 @@
dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewData.Dock = DockStyle.Fill; dataGridViewData.Dock = DockStyle.Fill;
dataGridViewData.Location = new Point(0, 0); dataGridViewData.Location = new Point(0, 0);
dataGridViewData.Margin = new Padding(6, 6, 6, 6);
dataGridViewData.MultiSelect = false; dataGridViewData.MultiSelect = false;
dataGridViewData.Name = "dataGridViewData"; dataGridViewData.Name = "dataGridViewData";
dataGridViewData.ReadOnly = true; dataGridViewData.ReadOnly = true;
dataGridViewData.RowHeadersVisible = false; dataGridViewData.RowHeadersVisible = false;
dataGridViewData.RowHeadersWidth = 82; dataGridViewData.RowHeadersWidth = 82;
dataGridViewData.RowTemplate.Height = 25; dataGridViewData.RowTemplate.Height = 25;
dataGridViewData.Size = new Size(1196, 929); dataGridViewData.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridViewData.Size = new Size(644, 435);
dataGridViewData.TabIndex = 1; dataGridViewData.TabIndex = 1;
// //
// FormProducts // FormProducts
// //
AutoScaleDimensions = new SizeF(13F, 32F); AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(1374, 929); ClientSize = new Size(740, 435);
Controls.Add(dataGridViewData); Controls.Add(dataGridViewData);
Controls.Add(panel1); Controls.Add(panel1);
Margin = new Padding(6, 6, 6, 6); MinimumSize = new Size(546, 316);
MinimumSize = new Size(1000, 630);
Name = "FormProducts"; Name = "FormProducts";
StartPosition = FormStartPosition.CenterParent; StartPosition = FormStartPosition.CenterParent;
Text = "Номенклатура"; Text = "Номенклатура";

View File

@ -43,20 +43,18 @@
panel1.Controls.Add(buttonEdit); panel1.Controls.Add(buttonEdit);
panel1.Controls.Add(buttonAdd); panel1.Controls.Add(buttonAdd);
panel1.Dock = DockStyle.Right; panel1.Dock = DockStyle.Right;
panel1.Location = new Point(1196, 0); panel1.Location = new Point(644, 0);
panel1.Margin = new Padding(6, 6, 6, 6);
panel1.Name = "panel1"; panel1.Name = "panel1";
panel1.Size = new Size(178, 929); panel1.Size = new Size(96, 435);
panel1.TabIndex = 0; panel1.TabIndex = 0;
// //
// buttonDel // buttonDel
// //
buttonDel.BackgroundImage = Properties.Resources.remove; buttonDel.BackgroundImage = Properties.Resources.remove;
buttonDel.BackgroundImageLayout = ImageLayout.Stretch; buttonDel.BackgroundImageLayout = ImageLayout.Stretch;
buttonDel.Location = new Point(32, 390); buttonDel.Location = new Point(17, 183);
buttonDel.Margin = new Padding(6, 6, 6, 6);
buttonDel.Name = "buttonDel"; buttonDel.Name = "buttonDel";
buttonDel.Size = new Size(121, 139); buttonDel.Size = new Size(65, 65);
buttonDel.TabIndex = 3; buttonDel.TabIndex = 3;
buttonDel.UseVisualStyleBackColor = true; buttonDel.UseVisualStyleBackColor = true;
buttonDel.Click += ButtonDel_Click; buttonDel.Click += ButtonDel_Click;
@ -65,10 +63,9 @@
// //
buttonEdit.BackgroundImage = Properties.Resources.edit; buttonEdit.BackgroundImage = Properties.Resources.edit;
buttonEdit.BackgroundImageLayout = ImageLayout.Stretch; buttonEdit.BackgroundImageLayout = ImageLayout.Stretch;
buttonEdit.Location = new Point(32, 203); buttonEdit.Location = new Point(17, 95);
buttonEdit.Margin = new Padding(6, 6, 6, 6);
buttonEdit.Name = "buttonEdit"; buttonEdit.Name = "buttonEdit";
buttonEdit.Size = new Size(121, 139); buttonEdit.Size = new Size(65, 65);
buttonEdit.TabIndex = 2; buttonEdit.TabIndex = 2;
buttonEdit.UseVisualStyleBackColor = true; buttonEdit.UseVisualStyleBackColor = true;
buttonEdit.Click += ButtonEdit_Click; buttonEdit.Click += ButtonEdit_Click;
@ -77,10 +74,9 @@
// //
buttonAdd.BackgroundImage = Properties.Resources.add; buttonAdd.BackgroundImage = Properties.Resources.add;
buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; buttonAdd.BackgroundImageLayout = ImageLayout.Stretch;
buttonAdd.Location = new Point(32, 26); buttonAdd.Location = new Point(17, 12);
buttonAdd.Margin = new Padding(6, 6, 6, 6);
buttonAdd.Name = "buttonAdd"; buttonAdd.Name = "buttonAdd";
buttonAdd.Size = new Size(121, 139); buttonAdd.Size = new Size(65, 65);
buttonAdd.TabIndex = 1; buttonAdd.TabIndex = 1;
buttonAdd.UseVisualStyleBackColor = true; buttonAdd.UseVisualStyleBackColor = true;
buttonAdd.Click += ButtonAdd_Click; buttonAdd.Click += ButtonAdd_Click;
@ -95,25 +91,24 @@
dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewData.Dock = DockStyle.Fill; dataGridViewData.Dock = DockStyle.Fill;
dataGridViewData.Location = new Point(0, 0); dataGridViewData.Location = new Point(0, 0);
dataGridViewData.Margin = new Padding(6, 6, 6, 6);
dataGridViewData.MultiSelect = false; dataGridViewData.MultiSelect = false;
dataGridViewData.Name = "dataGridViewData"; dataGridViewData.Name = "dataGridViewData";
dataGridViewData.ReadOnly = true; dataGridViewData.ReadOnly = true;
dataGridViewData.RowHeadersVisible = false; dataGridViewData.RowHeadersVisible = false;
dataGridViewData.RowHeadersWidth = 82; dataGridViewData.RowHeadersWidth = 82;
dataGridViewData.RowTemplate.Height = 25; dataGridViewData.RowTemplate.Height = 25;
dataGridViewData.Size = new Size(1196, 929); dataGridViewData.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridViewData.Size = new Size(644, 435);
dataGridViewData.TabIndex = 1; dataGridViewData.TabIndex = 1;
// //
// FormPurchasingCompanies // FormPurchasingCompanies
// //
AutoScaleDimensions = new SizeF(13F, 32F); AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(1374, 929); ClientSize = new Size(740, 435);
Controls.Add(dataGridViewData); Controls.Add(dataGridViewData);
Controls.Add(panel1); Controls.Add(panel1);
Margin = new Padding(6, 6, 6, 6); MinimumSize = new Size(546, 316);
MinimumSize = new Size(1000, 630);
Name = "FormPurchasingCompanies"; Name = "FormPurchasingCompanies";
StartPosition = FormStartPosition.CenterParent; StartPosition = FormStartPosition.CenterParent;
Text = "Компании закупщики"; Text = "Компании закупщики";

View File

@ -1,7 +1,11 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Serilog;
using TradeAndProcurementEnterprice.Repositories; using TradeAndProcurementEnterprice.Repositories;
using TradeAndProcurementEnterprice.Repositories.Implementations; using TradeAndProcurementEnterprice.Repositories.Implementations;
using Unity; using Unity;
using Unity.Lifetime; using Unity.Lifetime;
using Unity.Microsoft.Logging;
namespace TradeAndProcurementEnterprice namespace TradeAndProcurementEnterprice
{ {
@ -23,13 +27,29 @@ namespace TradeAndProcurementEnterprice
{ {
var container = new UnityContainer(); var container = new UnityContainer();
container.AddExtension(new LoggingExtension(CreateLoggerFactory()));
container.RegisterType<IAgentsRepository, AgentsRepository>(new TransientLifetimeManager()); container.RegisterType<IAgentsRepository, AgentsRepository>(new TransientLifetimeManager());
container.RegisterType<IContractRepository, ContractRepository>(new TransientLifetimeManager()); container.RegisterType<IContractRepository, ContractRepository>(new TransientLifetimeManager());
container.RegisterType<IProductRepository, ProductRepository>(new TransientLifetimeManager()); container.RegisterType<IProductRepository, ProductRepository>(new TransientLifetimeManager());
container.RegisterType<IPurchasingCompanyRepository, PurchasingCompanyRepository>(new TransientLifetimeManager()); container.RegisterType<IPurchasingCompanyRepository, PurchasingCompanyRepository>(new TransientLifetimeManager());
container.RegisterType<IDelegateToAgentRepository, DelegateToAgentRepository>(new TransientLifetimeManager()); container.RegisterType<IDelegateToAgentRepository, DelegateToAgentRepository>(new TransientLifetimeManager());
container.RegisterType<IConnectionString, ConnectionString>(new SingletonLifetimeManager());
return container; return container;
} }
private static LoggerFactory CreateLoggerFactory()
{
var loggerFactory = new LoggerFactory();
loggerFactory.AddSerilog(new LoggerConfiguration()
.ReadFrom.Configuration(new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build())
.CreateLogger());
return loggerFactory;
}
} }
} }

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TradeAndProcurementEnterprice.Repositories;
public interface IConnectionString
{
public string ConnectionString { get; }
}

View File

@ -13,9 +13,9 @@ public interface IPurchasingCompanyRepository
PurchasingCompany ReadCompaniesByID(int id); PurchasingCompany ReadCompaniesByID(int id);
void CreateCompany(PurchasingCompany agent); void CreateCompany(PurchasingCompany company);
void UpdateCompanies(PurchasingCompany agent); void UpdateCompanies(PurchasingCompany company);
void DeleteCompany(int id); void DeleteCompany(int id);
} }

View File

@ -1,5 +1,10 @@
using System; using Dapper;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Npgsql;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -7,27 +12,122 @@ using TradeAndProcurementEnterprice.Entities;
namespace TradeAndProcurementEnterprice.Repositories.Implementations; namespace TradeAndProcurementEnterprice.Repositories.Implementations;
public class AgentsRepository : IAgentsRepository internal class AgentsRepository : IAgentsRepository
{ {
private readonly IConnectionString _connectionString;
private readonly ILogger<AgentsRepository> _logger;
public AgentsRepository(IConnectionString connectionString, ILogger<AgentsRepository> logger)
{
_connectionString = connectionString;
_logger = logger;
}
public void CreateAgent(Agent agent) public void CreateAgent(Agent agent)
{ {
_logger.LogInformation("Добавление объекта.");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(agent));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryInsert = @"
INSERT INTO Agents (Name, Qualification, Category)
VALUES (@Name, @Qualification, @Category)";
connection.Execute(queryInsert, agent);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при добавлении объекта!");
throw;
}
} }
public void DeleteAgent(int id) public void DeleteAgent(int id)
{ {
_logger.LogInformation("Удаление объекта.");
_logger.LogDebug("Объект: {id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryDelete = @"
DELETE FROM Agents
WHERE Id=@id";
connection.Execute(queryDelete, new { id });
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при удалении объекта!");
throw;
}
} }
public Agent ReadAgentByID(int id) public Agent ReadAgentByID(int id)
{ {
return Agent.CreateEntity(0, string.Empty, Entities.Enums.Qualification.Junior, Entities.Enums.Category.Other); _logger.LogInformation("Получение объекта по идентификатору.");
_logger.LogDebug("Объект: {id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = @"
SELECT * FROM Agents
WHERE Id=@id";
var agent = connection.QueryFirst<Agent>(querySelect, new { id });
_logger.LogDebug("Найденный объект: {json}", JsonConvert.SerializeObject(agent));
return agent;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при поиске объекта!");
throw;
}
} }
public IEnumerable<Agent> ReadAgents() public IEnumerable<Agent> ReadAgents()
{ {
return []; _logger.LogInformation("Получение всех объектов.");
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = "SELECT * FROM Agents";
var agents = connection.Query<Agent>(querySelect);
_logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(agents));
return agents;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при чтении объектов!");
throw;
}
} }
public void UpdateAgent(Agent agent) public void UpdateAgent(Agent agent)
{ {
_logger.LogInformation("Редактирование объекта.");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(agent));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryUpdate = @"
UPDATE Agents
SET
Name=@Name,
Qualification=@Qualification,
Category=@Category
WHERE Id=@Id";
connection.Execute(queryUpdate, agent);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при редактировании объекта!");
throw;
}
} }
} }

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TradeAndProcurementEnterprice.Repositories.Implementations;
public class ConnectionString : IConnectionString
{
string IConnectionString.ConnectionString => "Server=localhost, 5432;Database=enterprice;Username=postgres;Password=maria;";
}

View File

@ -1,5 +1,10 @@
using System; using Dapper;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Npgsql;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -7,14 +12,66 @@ using TradeAndProcurementEnterprice.Entities;
namespace TradeAndProcurementEnterprice.Repositories.Implementations; namespace TradeAndProcurementEnterprice.Repositories.Implementations;
public class ContractRepository : IContractRepository internal class ContractRepository : IContractRepository
{ {
private readonly IConnectionString _connectionString;
private readonly ILogger<ContractRepository> _logger;
public ContractRepository(IConnectionString connectionString, ILogger<ContractRepository> logger)
{
_connectionString = connectionString;
_logger = logger;
}
public void CreateContract(Contract contract) public void CreateContract(Contract contract)
{ {
_logger.LogInformation("Добавление объекта.");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(contract));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
connection.Open();
using var transaction = connection.BeginTransaction();
var queryInsert = @"
INSERT INTO Contracts (SaleDate, PurchasingCompanyID, AgentsID)
VALUES (@SaleDate, @PurchasingCompanyID, @AgentsID);
SELECT MAX(contractid) FROM Contracts";
var contractId = connection.QueryFirst<int>(queryInsert, contract, transaction);
var querySubInsert = @"
INSERT INTO ProductSales (ContractId, ProductArticle, ProductQuantity)
VALUES (@ContractId, @ProductArticle, @ProductQuantity)";
foreach (var elem in contract.ProductSales)
{
connection.Execute(querySubInsert, new { contractId, elem.ProductArticle, elem.ProductQuantity }, transaction);
}
transaction.Commit();
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при добавлении объекта!");
throw;
}
} }
public IEnumerable<Contract> ReadContracts(DateTime? dateFrom = null, DateTime? dateTo = null, int? productArticle = null, int? agentID = null, int? purchasingCompaniID = null) public IEnumerable<Contract> ReadContracts(DateTime? dateFrom = null, DateTime? dateTo = null, int? productArticle = null, int? agentID = null, int? purchasingCompaniID = null)
{ {
return []; _logger.LogInformation("Получение всех объектов.");
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = "SELECT * FROM Contracts";
var contracts = connection.Query<Contract>(querySelect);
_logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(contracts));
return contracts;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при чтении объектов!");
throw;
}
} }
} }

View File

@ -1,5 +1,10 @@
using System; using Dapper;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Npgsql;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -7,14 +12,52 @@ using TradeAndProcurementEnterprice.Entities;
namespace TradeAndProcurementEnterprice.Repositories.Implementations; namespace TradeAndProcurementEnterprice.Repositories.Implementations;
public class DelegateToAgentRepository : IDelegateToAgentRepository internal class DelegateToAgentRepository : IDelegateToAgentRepository
{ {
private readonly IConnectionString _connectionString;
private readonly ILogger<DelegateToAgentRepository> _logger;
public DelegateToAgentRepository(IConnectionString connectionString, ILogger<DelegateToAgentRepository> logger)
{
_connectionString = connectionString;
_logger = logger;
}
public void CreateDelegatesToAgent(DelegateToAgents delegateToAgents) public void CreateDelegatesToAgent(DelegateToAgents delegateToAgents)
{ {
_logger.LogInformation("Добавление объекта.");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(delegateToAgents));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryInsert = @"
INSERT INTO DelegateToAgents (ProductArticle, AgentsID, Quantity, Date)
VALUES (@ProductArticle, @AgentsID, @Quantity, @Date)";
connection.Execute(queryInsert, delegateToAgents);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при добавлении объекта!");
throw;
}
} }
public IEnumerable<DelegateToAgents> ReadDelegatesToAgent(DateTime? dateFrom = null, DateTime? dateTo = null, int? productArticle = null, int? agentID = null) public IEnumerable<DelegateToAgents> ReadDelegatesToAgent(DateTime? dateFrom = null, DateTime? dateTo = null, int? productArticle = null, int? agentID = null)
{ {
return []; _logger.LogInformation("Получение всех объектов.");
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = "SELECT * FROM DelegateToAgents";
var delegatesToAgents = connection.Query<DelegateToAgents>(querySelect);
_logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(delegatesToAgents));
return delegatesToAgents;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при чтении объектов!");
throw;
}
} }
} }

View File

@ -1,5 +1,10 @@
using System; using Dapper;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Npgsql;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -7,27 +12,125 @@ using TradeAndProcurementEnterprice.Entities;
namespace TradeAndProcurementEnterprice.Repositories.Implementations; namespace TradeAndProcurementEnterprice.Repositories.Implementations;
public class ProductRepository : IProductRepository internal class ProductRepository : IProductRepository
{ {
private readonly IConnectionString _connectionString;
private readonly ILogger<ProductRepository> _logger;
public ProductRepository(IConnectionString connectionString, ILogger<ProductRepository> logger)
{
_connectionString = connectionString;
_logger = logger;
}
public void CreateProduct(Product product) public void CreateProduct(Product product)
{ {
} _logger.LogInformation("Добавление объекта.");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(product));
public void DeleteProduct(int article) try
{ {
} using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
public Product ReadProductByArticle(int article) var queryInsert = @"
{ INSERT INTO Products (Name, SellingPrice, Unit, Category, InventoryQuantity)
return Product.CreateEntity(0, string.Empty, 0, Entities.Enums.Unit.Piece, Entities.Enums.Category.Other, 0); VALUES (@Name, @SellingPrice, @Unit, @Category, @InventoryQuantity)";
}
public IEnumerable<Product> ReadProducts() connection.Execute(queryInsert, product);
}
catch (Exception ex)
{ {
return []; _logger.LogError(ex, "Ошибка при добавлении объекта!");
throw;
}
} }
public void UpdateProduct(Product product) public void UpdateProduct(Product product)
{ {
_logger.LogInformation("Редактирование объекта.");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(product));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryUpdate = @"
UPDATE Products
SET
Name=@Name,
SellingPrice=@SellingPrice,
Unit=@Unit,
Category=@Category,
InventoryQuantity=@InventoryQuantity
WHERE Article=@article";
connection.Execute(queryUpdate, product);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при редактировании объекта!");
throw;
}
}
public void DeleteProduct(int article)
{
_logger.LogInformation("Удаление объекта.");
_logger.LogDebug("Объект: {article}", article);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryDelete = @"
DELETE FROM Products
WHERE Article=@article";
connection.Execute(queryDelete, new { article });
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при удалении объекта!");
throw;
}
}
public Product ReadProductByArticle(int article)
{
_logger.LogInformation("Получение объекта по идентификатору.");
_logger.LogDebug("Объект: {article}", article);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = @"
SELECT * FROM Products
WHERE Article=@article";
var product = connection.QueryFirst<Product>(querySelect, new { article });
_logger.LogDebug("Найденный объект: {json}", JsonConvert.SerializeObject(product));
return product;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при поиске объекта!");
throw;
}
}
public IEnumerable<Product> ReadProducts()
{
_logger.LogInformation("Получение всех объектов.");
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = "SELECT * FROM Products";
var products = connection.Query<Product>(querySelect);
_logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(products));
return products;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при чтении объектов!");
throw;
}
} }
} }

View File

@ -1,5 +1,10 @@
using System; using Dapper;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Npgsql;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -7,27 +12,114 @@ using TradeAndProcurementEnterprice.Entities;
namespace TradeAndProcurementEnterprice.Repositories.Implementations; namespace TradeAndProcurementEnterprice.Repositories.Implementations;
public class PurchasingCompanyRepository : IPurchasingCompanyRepository internal class PurchasingCompanyRepository : IPurchasingCompanyRepository
{ {
public void CreateCompany(PurchasingCompany agent) private readonly IConnectionString _connectionString;
private readonly ILogger<PurchasingCompanyRepository> _logger;
public PurchasingCompanyRepository(IConnectionString connectionString, ILogger<PurchasingCompanyRepository> logger)
{ {
_connectionString = connectionString;
_logger = logger;
}
public void CreateCompany(PurchasingCompany company)
{
_logger.LogInformation("Добавление объекта.");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(company));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryInsert = @"
INSERT INTO PurchasingCompanies (Name)
VALUES (@Name)";
connection.Execute(queryInsert, company);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при добавлении объекта!");
throw;
}
} }
public void DeleteCompany(int id) public void DeleteCompany(int id)
{ {
_logger.LogInformation("Удаление объекта.");
_logger.LogDebug("Объект: {id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryDelete = @"
DELETE FROM purchasingCompanies
WHERE Id=@id";
connection.Execute(queryDelete, new { id });
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при удалении объекта!");
throw;
}
} }
public IEnumerable<PurchasingCompany> ReadCompanies() public IEnumerable<PurchasingCompany> ReadCompanies()
{ {
return []; _logger.LogInformation("Получение всех объектов.");
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = "SELECT * FROM purchasingCompanies";
var companies = connection.Query<PurchasingCompany>(querySelect);
_logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(companies));
return companies;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при чтении объектов!");
throw;
}
} }
public PurchasingCompany ReadCompaniesByID(int id) public PurchasingCompany ReadCompaniesByID(int id)
{ {
return PurchasingCompany.CreateEntity(0, string.Empty); _logger.LogInformation("Получение объекта по идентификатору.");
_logger.LogDebug("Объект: {id}", id);
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = @"
SELECT * FROM PurchasingCompanies
WHERE Id=@id";
var company = connection.QueryFirst<PurchasingCompany>(querySelect, new { id });
_logger.LogDebug("Найденный объект: {json}", JsonConvert.SerializeObject(company));
return company;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при поиске объекта!");
throw;
}
} }
public void UpdateCompanies(PurchasingCompany agent) public void UpdateCompanies(PurchasingCompany company)
{ {
_logger.LogInformation("Редактирование объекта.");
_logger.LogDebug("Объект: {json}", JsonConvert.SerializeObject(company));
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var queryUpdate = @"
UPDATE PurchasingCompanies
SET
Name=@Name
WHERE Id=@Id";
connection.Execute(queryUpdate, company);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при редактировании объекта!");
throw;
}
} }
} }

View File

@ -10,7 +10,19 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Dapper" Version="2.1.35" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Npgsql" Version="9.0.2" />
<PackageReference Include="Serilog" Version="4.0.2" />
<PackageReference Include="Serilog.Extensions.Logging" Version="8.0.0" />
<PackageReference Include="Serilog.Settings.Configuration" Version="8.0.4" />
<PackageReference Include="Serilog.Sinks.File" Version="6.0.0" />
<PackageReference Include="System.Data.SqlClient" Version="4.9.0" />
<PackageReference Include="Unity" Version="5.11.10" /> <PackageReference Include="Unity" Version="5.11.10" />
<PackageReference Include="Unity.Microsoft.Logging" Version="5.11.1" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -28,4 +40,10 @@
</EmbeddedResource> </EmbeddedResource>
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project> </Project>

View File

@ -0,0 +1,15 @@
{
"Serilog": {
"Using": [ "Serilog.Sinks.File" ],
"MinimumLevel": "Debug",
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "Logs/enterprice_log.txt",
"rollingInterval": "Day"
}
}
]
}
}