View project for contruction company + minor fixes in contracts and storages.
This commit is contained in:
parent
a607e89ea6
commit
a56de95ee0
@ -85,6 +85,7 @@ namespace ConstructionCompanyBusinessLogic.BusinessLogics
|
|||||||
throw new InvalidOperationException("Заказ должен быть переведен в статус выполнения перед готовностью!");
|
throw new InvalidOperationException("Заказ должен быть переведен в статус выполнения перед готовностью!");
|
||||||
}
|
}
|
||||||
model.Status = OrderStatus.Завершён;
|
model.Status = OrderStatus.Завершён;
|
||||||
|
model.DateEnd = DateTime.Today;
|
||||||
_orderStorage.Update(model);
|
_orderStorage.Update(model);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -11,11 +11,11 @@ namespace ConstructionCompanyContracts.ViewModels
|
|||||||
public class MaterialOrderViewModel : IMaterialOrderModel
|
public class MaterialOrderViewModel : IMaterialOrderModel
|
||||||
{
|
{
|
||||||
public int MaterialId { get; set; }
|
public int MaterialId { get; set; }
|
||||||
|
[DisplayName("Адресс заказа")]
|
||||||
|
public string OrderAdress { get; set; } = string.Empty;
|
||||||
[DisplayName("Название материала")]
|
[DisplayName("Название материала")]
|
||||||
public string MaterialName { get; set; } = string.Empty;
|
public string MaterialName { get; set; } = string.Empty;
|
||||||
public int OrderId { get; set; }
|
public int OrderId { get; set; }
|
||||||
[DisplayName("Адресс заказа")]
|
|
||||||
public string OrderAdress { get; set; } = string.Empty;
|
|
||||||
[DisplayName("Количество")]
|
[DisplayName("Количество")]
|
||||||
public int Quantity { get; set; }
|
public int Quantity { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,8 @@ namespace ConstructionCompanyContracts.ViewModels
|
|||||||
{
|
{
|
||||||
public class OrderViewModel : IOrderModel
|
public class OrderViewModel : IOrderModel
|
||||||
{
|
{
|
||||||
|
[DisplayName("Номер")]
|
||||||
|
public int Id { get; set; }
|
||||||
[DisplayName("Описание")]
|
[DisplayName("Описание")]
|
||||||
public string Description {get;set;} = string.Empty;
|
public string Description {get;set;} = string.Empty;
|
||||||
[DisplayName("Адрес")]
|
[DisplayName("Адрес")]
|
||||||
@ -25,10 +27,5 @@ namespace ConstructionCompanyContracts.ViewModels
|
|||||||
public DateTime DateBegin { get; set; } = DateTime.Now.Date;
|
public DateTime DateBegin { get; set; } = DateTime.Now.Date;
|
||||||
[DisplayName("Дата выполнения")]
|
[DisplayName("Дата выполнения")]
|
||||||
public DateTime? DateEnd { get; set; }
|
public DateTime? DateEnd { get; set; }
|
||||||
[DisplayName("Номер")]
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public Dictionary<int, IEmployeeModel> OrderEmployees { get; set; } = new();
|
|
||||||
public Dictionary<int, (IMaterialModel, int)> OrderMaterials { get; set; } = new();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -171,8 +171,16 @@ namespace ConstructionCompanyPsqlImplement
|
|||||||
}
|
}
|
||||||
string customerNumber = readerOrders.GetString(5);
|
string customerNumber = readerOrders.GetString(5);
|
||||||
DateTime dateBegin = readerOrders.GetDateTime(6);
|
DateTime dateBegin = readerOrders.GetDateTime(6);
|
||||||
|
Order? order;
|
||||||
|
if (status == OrderStatus.Завершён)
|
||||||
|
{
|
||||||
DateTime? dateEnd = readerOrders.GetDateTime(7);
|
DateTime? dateEnd = readerOrders.GetDateTime(7);
|
||||||
Order? order = Order.Create(new OrderBindingModel { Id = id, Description = description, Adress = adress, Price = price, Status = status, CustomerNumber = customerNumber, DateBegin = dateBegin, DateEnd = dateEnd});
|
order = Order.Create(new OrderBindingModel { Id = id, Description = description, Adress = adress, Price = price, Status = status, CustomerNumber = customerNumber, DateBegin = dateBegin, DateEnd = dateEnd });
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
order = Order.Create(new OrderBindingModel { Id = id, Description = description, Adress = adress, Price = price, Status = status, CustomerNumber = customerNumber, DateBegin = dateBegin});
|
||||||
|
}
|
||||||
if (order != null) _orders.Add(order);
|
if (order != null) _orders.Add(order);
|
||||||
}
|
}
|
||||||
readerOrders.Close();
|
readerOrders.Close();
|
||||||
|
@ -37,7 +37,7 @@ namespace ConstructionCompanyPsqlImplement.Models
|
|||||||
{
|
{
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
return $"INSERT INTO material_order(material_id, order_id, quantity) VALUES({model.MaterialId}, {model.OrderId}, {model.Quantity});";
|
return $"INSERT INTO material_order(material_id, order_id, quantiny) VALUES({model.MaterialId}, {model.OrderId}, {model.Quantity});";
|
||||||
}
|
}
|
||||||
public static string DeleteCommand(MaterialOrderBindingModel? model)
|
public static string DeleteCommand(MaterialOrderBindingModel? model)
|
||||||
{
|
{
|
||||||
|
@ -70,9 +70,7 @@ namespace ConstructionCompanyPsqlImplement.Models
|
|||||||
{
|
{
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
return $"UPDATE \"order\" SET description = \'{model.Description}\', adress = \'{model.Adress}\', " +
|
return $"UPDATE \"order\" SET status = \'{model.Status}\', date_end = {(model.DateEnd.HasValue ? $"\'{model.DateEnd}\'" : "null")} " +
|
||||||
$"price = {model.Price}, status = \'{model.Status}\', customer_number = \'{model.CustomerNumber}\', " +
|
|
||||||
$"date_begin = \'{model.CustomerNumber}\', date_end = {(model.DateEnd.HasValue ? $"\'{model.DateEnd}\'" : "null")} " +
|
|
||||||
$"WHERE id = {model.Id}";
|
$"WHERE id = {model.Id}";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,10 @@
|
|||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Remove="Logos\warehouseLogo.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
|
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
|
||||||
@ -24,4 +28,25 @@
|
|||||||
<ProjectReference Include="..\ConstructionCompanyPsqlImplement\ConstructionCompanyPsqlImplement.csproj" />
|
<ProjectReference Include="..\ConstructionCompanyPsqlImplement\ConstructionCompanyPsqlImplement.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Logos\warehouseLogo.png">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</EmbeddedResource>
|
||||||
|
</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>
|
</Project>
|
98
ConstructionCompany/ConstructionCompanyView/FormBrigadeMenu.Designer.cs
generated
Normal file
98
ConstructionCompany/ConstructionCompanyView/FormBrigadeMenu.Designer.cs
generated
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
partial class FormBrigadeMenu
|
||||||
|
{
|
||||||
|
/// <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.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||||
|
this.сотрудникиToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.должностиToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.назначитьНаЗаказToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuStrip1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// menuStrip1
|
||||||
|
//
|
||||||
|
this.menuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
|
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.сотрудникиToolStripMenuItem,
|
||||||
|
this.должностиToolStripMenuItem,
|
||||||
|
this.назначитьНаЗаказToolStripMenuItem});
|
||||||
|
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.menuStrip1.Name = "menuStrip1";
|
||||||
|
this.menuStrip1.Size = new System.Drawing.Size(645, 28);
|
||||||
|
this.menuStrip1.TabIndex = 0;
|
||||||
|
this.menuStrip1.Text = "menuStrip1";
|
||||||
|
//
|
||||||
|
// сотрудникиToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.сотрудникиToolStripMenuItem.Name = "сотрудникиToolStripMenuItem";
|
||||||
|
this.сотрудникиToolStripMenuItem.Size = new System.Drawing.Size(105, 24);
|
||||||
|
this.сотрудникиToolStripMenuItem.Text = "Сотрудники";
|
||||||
|
this.сотрудникиToolStripMenuItem.Click += new System.EventHandler(this.сотрудникиToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// должностиToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.должностиToolStripMenuItem.Name = "должностиToolStripMenuItem";
|
||||||
|
this.должностиToolStripMenuItem.Size = new System.Drawing.Size(101, 24);
|
||||||
|
this.должностиToolStripMenuItem.Text = "Должности";
|
||||||
|
this.должностиToolStripMenuItem.Click += new System.EventHandler(this.должностиToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// назначитьНаЗаказToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.назначитьНаЗаказToolStripMenuItem.Name = "назначитьНаЗаказToolStripMenuItem";
|
||||||
|
this.назначитьНаЗаказToolStripMenuItem.Size = new System.Drawing.Size(159, 24);
|
||||||
|
this.назначитьНаЗаказToolStripMenuItem.Text = "Назначить на заказ";
|
||||||
|
this.назначитьНаЗаказToolStripMenuItem.Click += new System.EventHandler(this.назначитьНаЗаказToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// FormBrigadeMenu
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackgroundImage = global::ConstructionCompanyView.Properties.Resources.users_viewfinder_solid;
|
||||||
|
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
|
||||||
|
this.ClientSize = new System.Drawing.Size(645, 352);
|
||||||
|
this.Controls.Add(this.menuStrip1);
|
||||||
|
this.DoubleBuffered = true;
|
||||||
|
this.MainMenuStrip = this.menuStrip1;
|
||||||
|
this.Name = "FormBrigadeMenu";
|
||||||
|
this.Text = "Бригадир";
|
||||||
|
this.menuStrip1.ResumeLayout(false);
|
||||||
|
this.menuStrip1.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private MenuStrip menuStrip1;
|
||||||
|
private ToolStripMenuItem сотрудникиToolStripMenuItem;
|
||||||
|
private ToolStripMenuItem должностиToolStripMenuItem;
|
||||||
|
private ToolStripMenuItem назначитьНаЗаказToolStripMenuItem;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,47 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
public partial class FormBrigadeMenu : Form
|
||||||
|
{
|
||||||
|
public FormBrigadeMenu()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void сотрудникиToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormEmployees));
|
||||||
|
if (service is FormEmployees form)
|
||||||
|
{
|
||||||
|
form.ShowDialog();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void назначитьНаЗаказToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormEmployeeOrders));
|
||||||
|
if (service is FormEmployeeOrders form)
|
||||||
|
{
|
||||||
|
form.ShowDialog();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void должностиToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormPositions));
|
||||||
|
if (service is FormPositions form)
|
||||||
|
{
|
||||||
|
form.ShowDialog();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<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="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
120
ConstructionCompany/ConstructionCompanyView/FormEmployee.Designer.cs
generated
Normal file
120
ConstructionCompany/ConstructionCompanyView/FormEmployee.Designer.cs
generated
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
partial class FormEmployee
|
||||||
|
{
|
||||||
|
/// <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.buttonCancel = new System.Windows.Forms.Button();
|
||||||
|
this.buttonCreate = new System.Windows.Forms.Button();
|
||||||
|
this.textBoxName = new System.Windows.Forms.TextBox();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.comboBoxPosition = new System.Windows.Forms.ComboBox();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// buttonCancel
|
||||||
|
//
|
||||||
|
this.buttonCancel.Location = new System.Drawing.Point(307, 117);
|
||||||
|
this.buttonCancel.Name = "buttonCancel";
|
||||||
|
this.buttonCancel.Size = new System.Drawing.Size(94, 29);
|
||||||
|
this.buttonCancel.TabIndex = 9;
|
||||||
|
this.buttonCancel.Text = "Отмена";
|
||||||
|
this.buttonCancel.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
|
||||||
|
//
|
||||||
|
// buttonCreate
|
||||||
|
//
|
||||||
|
this.buttonCreate.Location = new System.Drawing.Point(202, 117);
|
||||||
|
this.buttonCreate.Name = "buttonCreate";
|
||||||
|
this.buttonCreate.Size = new System.Drawing.Size(94, 29);
|
||||||
|
this.buttonCreate.TabIndex = 8;
|
||||||
|
this.buttonCreate.Text = "Создать";
|
||||||
|
this.buttonCreate.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonCreate.Click += new System.EventHandler(this.buttonCreate_Click);
|
||||||
|
//
|
||||||
|
// textBoxName
|
||||||
|
//
|
||||||
|
this.textBoxName.Location = new System.Drawing.Point(135, 6);
|
||||||
|
this.textBoxName.Name = "textBoxName";
|
||||||
|
this.textBoxName.Size = new System.Drawing.Size(276, 27);
|
||||||
|
this.textBoxName.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(12, 9);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(42, 20);
|
||||||
|
this.label1.TabIndex = 6;
|
||||||
|
this.label1.Text = "ФИО";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(12, 43);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(86, 20);
|
||||||
|
this.label2.TabIndex = 10;
|
||||||
|
this.label2.Text = "Должность";
|
||||||
|
//
|
||||||
|
// comboBoxPosition
|
||||||
|
//
|
||||||
|
this.comboBoxPosition.FormattingEnabled = true;
|
||||||
|
this.comboBoxPosition.Location = new System.Drawing.Point(135, 40);
|
||||||
|
this.comboBoxPosition.Name = "comboBoxPosition";
|
||||||
|
this.comboBoxPosition.Size = new System.Drawing.Size(276, 28);
|
||||||
|
this.comboBoxPosition.TabIndex = 11;
|
||||||
|
//
|
||||||
|
// FormEmployee
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(423, 165);
|
||||||
|
this.Controls.Add(this.comboBoxPosition);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.buttonCancel);
|
||||||
|
this.Controls.Add(this.buttonCreate);
|
||||||
|
this.Controls.Add(this.textBoxName);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.Name = "FormEmployee";
|
||||||
|
this.Text = "Сотрудник";
|
||||||
|
this.Load += new System.EventHandler(this.FormEmployee_Load);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private Button buttonCancel;
|
||||||
|
private Button buttonCreate;
|
||||||
|
private TextBox textBoxName;
|
||||||
|
private Label label1;
|
||||||
|
private Label label2;
|
||||||
|
private ComboBox comboBoxPosition;
|
||||||
|
}
|
||||||
|
}
|
110
ConstructionCompany/ConstructionCompanyView/FormEmployee.cs
Normal file
110
ConstructionCompany/ConstructionCompanyView/FormEmployee.cs
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
using ConstructionCompanyContracts.BindingModels;
|
||||||
|
using ConstructionCompanyContracts.BusinessLogicContracts;
|
||||||
|
using ConstructionCompanyContracts.SearchModels;
|
||||||
|
using ConstructionCompanyContracts.ViewModels;
|
||||||
|
using ConstructionCompanyPsqlImplement.Models;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
public partial class FormEmployee : Form
|
||||||
|
{
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private readonly IPositionLogic _position;
|
||||||
|
private readonly IEmployeeLogic _employee;
|
||||||
|
private List<PositionViewModel>? _list;
|
||||||
|
private int? _id;
|
||||||
|
public int Id { set { _id = value; } }
|
||||||
|
public FormEmployee(ILogger<FormEmployee> logger, IPositionLogic position, IEmployeeLogic employee)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
_logger = logger;
|
||||||
|
_position = position;
|
||||||
|
_employee = employee;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FormEmployee_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Загрузка материалов для заказа");
|
||||||
|
_list = _position.ReadList(null);
|
||||||
|
if (_list != null)
|
||||||
|
{
|
||||||
|
comboBoxPosition.DisplayMember = "PositionName";
|
||||||
|
comboBoxPosition.ValueMember = "Id";
|
||||||
|
comboBoxPosition.DataSource = _list;
|
||||||
|
comboBoxPosition.SelectedItem = null;
|
||||||
|
}
|
||||||
|
if (_id.HasValue)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Получение материала");
|
||||||
|
var view = _employee.ReadElement(new EmployeeSearchModel { Id = _id.Value });
|
||||||
|
if (view != null)
|
||||||
|
{
|
||||||
|
textBoxName.Text = view.EmployeeName;
|
||||||
|
comboBoxPosition.SelectedValue = view.PositionID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка получения материала");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonCreate_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(textBoxName.Text))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Заполните ФИО", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (comboBoxPosition.SelectedValue == null)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Выбирете должность", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_logger.LogInformation("Сохранение материала");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var model = new EmployeeBindingModel
|
||||||
|
{
|
||||||
|
Id = _id ?? 0,
|
||||||
|
EmployeeName = textBoxName.Text,
|
||||||
|
PositionID = Convert.ToInt32(comboBoxPosition.SelectedValue)
|
||||||
|
};
|
||||||
|
var operationResult = _id.HasValue ? _employee.Update(model) : _employee.Create(model);
|
||||||
|
if (!operationResult)
|
||||||
|
{
|
||||||
|
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
|
||||||
|
}
|
||||||
|
MessageBox.Show("Сохранение прошло успешно", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка сохранения компонента");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
DialogResult = DialogResult.Cancel;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<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>
|
121
ConstructionCompany/ConstructionCompanyView/FormEmployeeOrder.Designer.cs
generated
Normal file
121
ConstructionCompany/ConstructionCompanyView/FormEmployeeOrder.Designer.cs
generated
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
partial class FormEmployeeOrder
|
||||||
|
{
|
||||||
|
/// <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.buttonCancel = new System.Windows.Forms.Button();
|
||||||
|
this.buttonCreate = new System.Windows.Forms.Button();
|
||||||
|
this.comboBoxOrder = new System.Windows.Forms.ComboBox();
|
||||||
|
this.comboBoxEmployee = new System.Windows.Forms.ComboBox();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// buttonCancel
|
||||||
|
//
|
||||||
|
this.buttonCancel.Location = new System.Drawing.Point(296, 115);
|
||||||
|
this.buttonCancel.Name = "buttonCancel";
|
||||||
|
this.buttonCancel.Size = new System.Drawing.Size(94, 29);
|
||||||
|
this.buttonCancel.TabIndex = 13;
|
||||||
|
this.buttonCancel.Text = "Отмена";
|
||||||
|
this.buttonCancel.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
|
||||||
|
//
|
||||||
|
// buttonCreate
|
||||||
|
//
|
||||||
|
this.buttonCreate.Location = new System.Drawing.Point(142, 115);
|
||||||
|
this.buttonCreate.Name = "buttonCreate";
|
||||||
|
this.buttonCreate.Size = new System.Drawing.Size(94, 29);
|
||||||
|
this.buttonCreate.TabIndex = 12;
|
||||||
|
this.buttonCreate.Text = "Отправить";
|
||||||
|
this.buttonCreate.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonCreate.Click += new System.EventHandler(this.buttonCreate_Click);
|
||||||
|
//
|
||||||
|
// comboBoxOrder
|
||||||
|
//
|
||||||
|
this.comboBoxOrder.FormattingEnabled = true;
|
||||||
|
this.comboBoxOrder.Location = new System.Drawing.Point(142, 9);
|
||||||
|
this.comboBoxOrder.Name = "comboBoxOrder";
|
||||||
|
this.comboBoxOrder.Size = new System.Drawing.Size(248, 28);
|
||||||
|
this.comboBoxOrder.TabIndex = 11;
|
||||||
|
//
|
||||||
|
// comboBoxEmployee
|
||||||
|
//
|
||||||
|
this.comboBoxEmployee.FormattingEnabled = true;
|
||||||
|
this.comboBoxEmployee.Location = new System.Drawing.Point(142, 55);
|
||||||
|
this.comboBoxEmployee.Name = "comboBoxEmployee";
|
||||||
|
this.comboBoxEmployee.Size = new System.Drawing.Size(248, 28);
|
||||||
|
this.comboBoxEmployee.TabIndex = 10;
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(12, 55);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(85, 20);
|
||||||
|
this.label2.TabIndex = 9;
|
||||||
|
this.label2.Text = "Сотрудник:";
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(12, 9);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(50, 20);
|
||||||
|
this.label1.TabIndex = 8;
|
||||||
|
this.label1.Text = "Заказ:";
|
||||||
|
//
|
||||||
|
// FormEmployeeOrder
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(436, 159);
|
||||||
|
this.Controls.Add(this.buttonCancel);
|
||||||
|
this.Controls.Add(this.buttonCreate);
|
||||||
|
this.Controls.Add(this.comboBoxOrder);
|
||||||
|
this.Controls.Add(this.comboBoxEmployee);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.Name = "FormEmployeeOrder";
|
||||||
|
this.Text = "Отправка на заказ";
|
||||||
|
this.Load += new System.EventHandler(this.FormEmployeeOrder_Load);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private Button buttonCancel;
|
||||||
|
private Button buttonCreate;
|
||||||
|
private ComboBox comboBoxOrder;
|
||||||
|
private ComboBox comboBoxEmployee;
|
||||||
|
private Label label2;
|
||||||
|
private Label label1;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,99 @@
|
|||||||
|
using ConstructionCompanyContracts.BindingModels;
|
||||||
|
using ConstructionCompanyContracts.BusinessLogicContracts;
|
||||||
|
using ConstructionCompanyContracts.SearchModels;
|
||||||
|
using ConstructionCompanyContracts.ViewModels;
|
||||||
|
using ConstructionCompanyPsqlImplement.Models;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
public partial class FormEmployeeOrder : Form
|
||||||
|
{
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private readonly IOrderLogic _order;
|
||||||
|
private readonly IEmployeeLogic _employee;
|
||||||
|
private readonly IEmployeeOrderLogic _employeeOrder;
|
||||||
|
private List<EmployeeViewModel>? _listE;
|
||||||
|
private List<OrderViewModel>? _listO;
|
||||||
|
public FormEmployeeOrder(ILogger<FormEmployeeOrder> logger, IOrderLogic order, IEmployeeLogic employee, IEmployeeOrderLogic employeeOrder)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
_logger = logger;
|
||||||
|
_order = order;
|
||||||
|
_employee = employee;
|
||||||
|
_employeeOrder = employeeOrder;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FormEmployeeOrder_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Загрузка материалов для заказа");
|
||||||
|
_listE = _employee.ReadList(null);
|
||||||
|
if (_listE != null)
|
||||||
|
{
|
||||||
|
comboBoxEmployee.DisplayMember = "EmployeeName";
|
||||||
|
comboBoxEmployee.ValueMember = "Id";
|
||||||
|
comboBoxEmployee.DataSource = _listE;
|
||||||
|
comboBoxEmployee.SelectedItem = null;
|
||||||
|
}
|
||||||
|
_listO = _order.ReadList(null);
|
||||||
|
if (_listO != null)
|
||||||
|
{
|
||||||
|
comboBoxOrder.DisplayMember = "Adress";
|
||||||
|
comboBoxOrder.ValueMember = "Id";
|
||||||
|
comboBoxOrder.DataSource = _listO;
|
||||||
|
comboBoxOrder.SelectedItem = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
DialogResult = DialogResult.Cancel;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonCreate_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (comboBoxOrder.SelectedValue == null)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Выберите заказ", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (comboBoxEmployee.SelectedValue == null)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Выберите материал", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var model = new EmployeeOrderBindingModel
|
||||||
|
{
|
||||||
|
EmployeeId = Convert.ToInt32(comboBoxEmployee.SelectedValue),
|
||||||
|
OrderId = Convert.ToInt32(comboBoxOrder.SelectedValue),
|
||||||
|
};
|
||||||
|
var operationResult = _employeeOrder.Create(model);
|
||||||
|
if (!operationResult)
|
||||||
|
{
|
||||||
|
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
|
||||||
|
}
|
||||||
|
MessageBox.Show("Сохранение прошло успешно", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка сохранения компонента");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<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>
|
81
ConstructionCompany/ConstructionCompanyView/FormEmployeeOrders.Designer.cs
generated
Normal file
81
ConstructionCompany/ConstructionCompanyView/FormEmployeeOrders.Designer.cs
generated
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
partial class FormEmployeeOrders
|
||||||
|
{
|
||||||
|
/// <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.buttonCreate = new System.Windows.Forms.Button();
|
||||||
|
this.dataGridView = new System.Windows.Forms.DataGridView();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// buttonCreate
|
||||||
|
//
|
||||||
|
this.buttonCreate.Location = new System.Drawing.Point(604, 12);
|
||||||
|
this.buttonCreate.Name = "buttonCreate";
|
||||||
|
this.buttonCreate.Size = new System.Drawing.Size(141, 75);
|
||||||
|
this.buttonCreate.TabIndex = 14;
|
||||||
|
this.buttonCreate.Text = "Отправить сотрудника на заказ";
|
||||||
|
this.buttonCreate.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonCreate.Click += new System.EventHandler(this.buttonCreate_Click);
|
||||||
|
//
|
||||||
|
// dataGridView
|
||||||
|
//
|
||||||
|
this.dataGridView.BackgroundColor = System.Drawing.Color.White;
|
||||||
|
this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||||
|
this.dataGridView.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.dataGridView.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.dataGridView.MultiSelect = false;
|
||||||
|
this.dataGridView.Name = "dataGridView";
|
||||||
|
this.dataGridView.RowHeadersVisible = false;
|
||||||
|
this.dataGridView.RowHeadersWidth = 51;
|
||||||
|
this.dataGridView.RowTemplate.Height = 29;
|
||||||
|
this.dataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||||
|
this.dataGridView.Size = new System.Drawing.Size(543, 450);
|
||||||
|
this.dataGridView.TabIndex = 13;
|
||||||
|
//
|
||||||
|
// FormEmployeeOrders
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(768, 450);
|
||||||
|
this.Controls.Add(this.buttonCreate);
|
||||||
|
this.Controls.Add(this.dataGridView);
|
||||||
|
this.Name = "FormEmployeeOrders";
|
||||||
|
this.Text = "Назначение сотрудников";
|
||||||
|
this.Load += new System.EventHandler(this.FormEmployeeOrders_Load);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private Button buttonCreate;
|
||||||
|
private DataGridView dataGridView;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,64 @@
|
|||||||
|
using ConstructionCompanyContracts.BusinessLogicContracts;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
public partial class FormEmployeeOrders : Form
|
||||||
|
{
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private readonly IEmployeeOrderLogic _logic;
|
||||||
|
public FormEmployeeOrders(ILogger<FormEmployeeOrders> logger, IEmployeeOrderLogic logic)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
_logger = logger;
|
||||||
|
_logic = logic;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FormEmployeeOrders_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
private void LoadData()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var list = _logic.ReadList(null);
|
||||||
|
if (list != null)
|
||||||
|
{
|
||||||
|
dataGridView.DataSource = list;
|
||||||
|
dataGridView.Columns["EmployeeId"].Visible = false;
|
||||||
|
dataGridView.Columns["OrderId"].Visible = false;
|
||||||
|
dataGridView.Columns["EmployeeName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||||
|
}
|
||||||
|
_logger.LogInformation("Загрузка поставок");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка загрузки поставок");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonCreate_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormEmployeeOrder));
|
||||||
|
if (service is FormEmployeeOrder form)
|
||||||
|
{
|
||||||
|
if (form.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<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>
|
120
ConstructionCompany/ConstructionCompanyView/FormEmployees.Designer.cs
generated
Normal file
120
ConstructionCompany/ConstructionCompanyView/FormEmployees.Designer.cs
generated
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
partial class FormEmployees
|
||||||
|
{
|
||||||
|
/// <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.buttonRef = new System.Windows.Forms.Button();
|
||||||
|
this.buttonDel = new System.Windows.Forms.Button();
|
||||||
|
this.buttonUpd = new System.Windows.Forms.Button();
|
||||||
|
this.buttonAdd = new System.Windows.Forms.Button();
|
||||||
|
this.dataGridView = new System.Windows.Forms.DataGridView();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// buttonRef
|
||||||
|
//
|
||||||
|
this.buttonRef.Location = new System.Drawing.Point(574, 186);
|
||||||
|
this.buttonRef.Name = "buttonRef";
|
||||||
|
this.buttonRef.Size = new System.Drawing.Size(134, 29);
|
||||||
|
this.buttonRef.TabIndex = 14;
|
||||||
|
this.buttonRef.Text = "Обновить";
|
||||||
|
this.buttonRef.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonRef.Click += new System.EventHandler(this.buttonRef_Click);
|
||||||
|
//
|
||||||
|
// buttonDel
|
||||||
|
//
|
||||||
|
this.buttonDel.Location = new System.Drawing.Point(574, 128);
|
||||||
|
this.buttonDel.Name = "buttonDel";
|
||||||
|
this.buttonDel.Size = new System.Drawing.Size(134, 29);
|
||||||
|
this.buttonDel.TabIndex = 13;
|
||||||
|
this.buttonDel.Text = "Уволить";
|
||||||
|
this.buttonDel.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonDel.Click += new System.EventHandler(this.buttonDel_Click);
|
||||||
|
//
|
||||||
|
// buttonUpd
|
||||||
|
//
|
||||||
|
this.buttonUpd.Location = new System.Drawing.Point(574, 71);
|
||||||
|
this.buttonUpd.Name = "buttonUpd";
|
||||||
|
this.buttonUpd.Size = new System.Drawing.Size(134, 29);
|
||||||
|
this.buttonUpd.TabIndex = 12;
|
||||||
|
this.buttonUpd.Text = "Правка";
|
||||||
|
this.buttonUpd.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonUpd.Click += new System.EventHandler(this.buttonUpd_Click);
|
||||||
|
//
|
||||||
|
// buttonAdd
|
||||||
|
//
|
||||||
|
this.buttonAdd.Location = new System.Drawing.Point(574, 14);
|
||||||
|
this.buttonAdd.Name = "buttonAdd";
|
||||||
|
this.buttonAdd.Size = new System.Drawing.Size(134, 29);
|
||||||
|
this.buttonAdd.TabIndex = 11;
|
||||||
|
this.buttonAdd.Text = "Нанять";
|
||||||
|
this.buttonAdd.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonAdd.Click += new System.EventHandler(this.buttonAdd_Click);
|
||||||
|
//
|
||||||
|
// dataGridView
|
||||||
|
//
|
||||||
|
this.dataGridView.BackgroundColor = System.Drawing.Color.White;
|
||||||
|
this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||||
|
this.dataGridView.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.dataGridView.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.dataGridView.MultiSelect = false;
|
||||||
|
this.dataGridView.Name = "dataGridView";
|
||||||
|
this.dataGridView.RowHeadersVisible = false;
|
||||||
|
this.dataGridView.RowHeadersWidth = 51;
|
||||||
|
this.dataGridView.RowTemplate.Height = 29;
|
||||||
|
this.dataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||||
|
this.dataGridView.Size = new System.Drawing.Size(489, 450);
|
||||||
|
this.dataGridView.TabIndex = 10;
|
||||||
|
//
|
||||||
|
// FormEmployees
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(723, 450);
|
||||||
|
this.Controls.Add(this.buttonRef);
|
||||||
|
this.Controls.Add(this.buttonDel);
|
||||||
|
this.Controls.Add(this.buttonUpd);
|
||||||
|
this.Controls.Add(this.buttonAdd);
|
||||||
|
this.Controls.Add(this.dataGridView);
|
||||||
|
this.Name = "FormEmployees";
|
||||||
|
this.Text = "Сотрудники";
|
||||||
|
this.Load += new System.EventHandler(this.FormEmployees_Load);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private Button buttonRef;
|
||||||
|
private Button buttonDel;
|
||||||
|
private Button buttonUpd;
|
||||||
|
private Button buttonAdd;
|
||||||
|
private DataGridView dataGridView;
|
||||||
|
}
|
||||||
|
}
|
111
ConstructionCompany/ConstructionCompanyView/FormEmployees.cs
Normal file
111
ConstructionCompany/ConstructionCompanyView/FormEmployees.cs
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
using ConstructionCompanyContracts.BindingModels;
|
||||||
|
using ConstructionCompanyContracts.BusinessLogicContracts;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
public partial class FormEmployees : Form
|
||||||
|
{
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private readonly IEmployeeLogic _logic;
|
||||||
|
public FormEmployees(ILogger<FormEmployees> logger, IEmployeeLogic logic)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
_logger = logger;
|
||||||
|
_logic = logic;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FormEmployees_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonAdd_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormEmployee));
|
||||||
|
if (service is FormEmployee form)
|
||||||
|
{
|
||||||
|
if (form.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonUpd_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (dataGridView.SelectedRows.Count == 1)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormEmployee));
|
||||||
|
if (service is FormEmployee form)
|
||||||
|
{
|
||||||
|
form.Id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
|
||||||
|
if (form.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonDel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (dataGridView.SelectedRows.Count == 1)
|
||||||
|
{
|
||||||
|
if (MessageBox.Show("Удалить запись?", "Вопрос", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||||
|
{
|
||||||
|
int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
|
||||||
|
_logger.LogInformation("Удаление изделия");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!_logic.Delete(new EmployeeBindingModel { Id = id }))
|
||||||
|
{
|
||||||
|
throw new Exception("Ошибка при удалении. Дополнительная информация в логах.");
|
||||||
|
}
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка удаления изделия");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonRef_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LoadData()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var list = _logic.ReadList(null);
|
||||||
|
if (list != null)
|
||||||
|
{
|
||||||
|
dataGridView.DataSource = list;
|
||||||
|
dataGridView.Columns["Id"].Visible = false;
|
||||||
|
dataGridView.Columns["PositionId"].Visible = false;
|
||||||
|
dataGridView.Columns["EmployeeName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||||
|
}
|
||||||
|
_logger.LogInformation("Загрузка материалов");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка загрузки материалов");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<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>
|
101
ConstructionCompany/ConstructionCompanyView/FormLogin.Designer.cs
generated
Normal file
101
ConstructionCompany/ConstructionCompanyView/FormLogin.Designer.cs
generated
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
partial class FormLogin
|
||||||
|
{
|
||||||
|
/// <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.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.buttonWarehouse = new System.Windows.Forms.Button();
|
||||||
|
this.buttonManager = new System.Windows.Forms.Button();
|
||||||
|
this.buttonHR = new System.Windows.Forms.Button();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Font = new System.Drawing.Font("Segoe UI", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||||
|
this.label1.Location = new System.Drawing.Point(318, 9);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(128, 32);
|
||||||
|
this.label1.TabIndex = 0;
|
||||||
|
this.label1.Text = "Войти как:";
|
||||||
|
//
|
||||||
|
// buttonWarehouse
|
||||||
|
//
|
||||||
|
this.buttonWarehouse.Location = new System.Drawing.Point(33, 130);
|
||||||
|
this.buttonWarehouse.Name = "buttonWarehouse";
|
||||||
|
this.buttonWarehouse.Size = new System.Drawing.Size(174, 61);
|
||||||
|
this.buttonWarehouse.TabIndex = 1;
|
||||||
|
this.buttonWarehouse.Text = "Кладовщик";
|
||||||
|
this.buttonWarehouse.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonWarehouse.Click += new System.EventHandler(this.buttonWarehouse_Click);
|
||||||
|
//
|
||||||
|
// buttonManager
|
||||||
|
//
|
||||||
|
this.buttonManager.Location = new System.Drawing.Point(299, 130);
|
||||||
|
this.buttonManager.Name = "buttonManager";
|
||||||
|
this.buttonManager.Size = new System.Drawing.Size(174, 61);
|
||||||
|
this.buttonManager.TabIndex = 2;
|
||||||
|
this.buttonManager.Text = "Менеджер";
|
||||||
|
this.buttonManager.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonManager.Click += new System.EventHandler(this.buttonManager_Click);
|
||||||
|
//
|
||||||
|
// buttonHR
|
||||||
|
//
|
||||||
|
this.buttonHR.Location = new System.Drawing.Point(579, 130);
|
||||||
|
this.buttonHR.Name = "buttonHR";
|
||||||
|
this.buttonHR.Size = new System.Drawing.Size(174, 61);
|
||||||
|
this.buttonHR.TabIndex = 3;
|
||||||
|
this.buttonHR.Text = "Бригадир";
|
||||||
|
this.buttonHR.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonHR.Click += new System.EventHandler(this.buttonHR_Click);
|
||||||
|
//
|
||||||
|
// FormLogin
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackColor = System.Drawing.SystemColors.ActiveCaption;
|
||||||
|
this.ClientSize = new System.Drawing.Size(784, 350);
|
||||||
|
this.Controls.Add(this.buttonHR);
|
||||||
|
this.Controls.Add(this.buttonManager);
|
||||||
|
this.Controls.Add(this.buttonWarehouse);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.Name = "FormLogin";
|
||||||
|
this.Text = "Вход";
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private Label label1;
|
||||||
|
private Button buttonWarehouse;
|
||||||
|
private Button buttonManager;
|
||||||
|
private Button buttonHR;
|
||||||
|
}
|
||||||
|
}
|
53
ConstructionCompany/ConstructionCompanyView/FormLogin.cs
Normal file
53
ConstructionCompany/ConstructionCompanyView/FormLogin.cs
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
public partial class FormLogin : Form
|
||||||
|
{
|
||||||
|
public FormLogin()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonWarehouse_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormWarehouseMenu));
|
||||||
|
if (service is FormWarehouseMenu form)
|
||||||
|
{
|
||||||
|
this.Hide();
|
||||||
|
form.ShowDialog();
|
||||||
|
this.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonManager_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormManagerMenu));
|
||||||
|
if (service is FormManagerMenu form)
|
||||||
|
{
|
||||||
|
this.Hide();
|
||||||
|
form.ShowDialog();
|
||||||
|
this.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonHR_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormBrigadeMenu));
|
||||||
|
if (service is FormBrigadeMenu form)
|
||||||
|
{
|
||||||
|
this.Hide();
|
||||||
|
form.ShowDialog();
|
||||||
|
this.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
60
ConstructionCompany/ConstructionCompanyView/FormLogin.resx
Normal file
60
ConstructionCompany/ConstructionCompanyView/FormLogin.resx
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<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>
|
78
ConstructionCompany/ConstructionCompanyView/FormManagerMenu.Designer.cs
generated
Normal file
78
ConstructionCompany/ConstructionCompanyView/FormManagerMenu.Designer.cs
generated
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
partial class FormManagerMenu
|
||||||
|
{
|
||||||
|
/// <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.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||||
|
this.заказыToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuStrip1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// menuStrip1
|
||||||
|
//
|
||||||
|
this.menuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
|
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.заказыToolStripMenuItem});
|
||||||
|
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.menuStrip1.Name = "menuStrip1";
|
||||||
|
this.menuStrip1.Size = new System.Drawing.Size(626, 28);
|
||||||
|
this.menuStrip1.TabIndex = 0;
|
||||||
|
this.menuStrip1.Text = "menuStrip1";
|
||||||
|
//
|
||||||
|
// заказыToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.заказыToolStripMenuItem.Name = "заказыToolStripMenuItem";
|
||||||
|
this.заказыToolStripMenuItem.Size = new System.Drawing.Size(72, 24);
|
||||||
|
this.заказыToolStripMenuItem.Text = "Заказы";
|
||||||
|
this.заказыToolStripMenuItem.Click += new System.EventHandler(this.заказыToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// FormManagerMenu
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackgroundImage = global::ConstructionCompanyView.Properties.Resources.cash_register_solid;
|
||||||
|
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
|
||||||
|
this.ClientSize = new System.Drawing.Size(626, 328);
|
||||||
|
this.Controls.Add(this.menuStrip1);
|
||||||
|
this.DoubleBuffered = true;
|
||||||
|
this.MainMenuStrip = this.menuStrip1;
|
||||||
|
this.Name = "FormManagerMenu";
|
||||||
|
this.Text = "Менеджмент";
|
||||||
|
this.menuStrip1.ResumeLayout(false);
|
||||||
|
this.menuStrip1.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private MenuStrip menuStrip1;
|
||||||
|
private ToolStripMenuItem заказыToolStripMenuItem;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
public partial class FormManagerMenu : Form
|
||||||
|
{
|
||||||
|
public FormManagerMenu()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void заказыToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormOrders));
|
||||||
|
if (service is FormOrders form)
|
||||||
|
{
|
||||||
|
form.ShowDialog();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,66 @@
|
|||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<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="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>82</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
@ -83,6 +83,7 @@ namespace ConstructionCompanyView
|
|||||||
{
|
{
|
||||||
textBoxName.Text = view.MaterialName;
|
textBoxName.Text = view.MaterialName;
|
||||||
textBoxQuantity.Text = view.Quantity.ToString();
|
textBoxQuantity.Text = view.Quantity.ToString();
|
||||||
|
textBoxQuantity.Enabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
156
ConstructionCompany/ConstructionCompanyView/FormMaterialOrder.Designer.cs
generated
Normal file
156
ConstructionCompany/ConstructionCompanyView/FormMaterialOrder.Designer.cs
generated
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
partial class FormMaterialOrder
|
||||||
|
{
|
||||||
|
/// <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.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.comboBoxMaterial = new System.Windows.Forms.ComboBox();
|
||||||
|
this.textBoxQuantity = new System.Windows.Forms.TextBox();
|
||||||
|
this.comboBoxOrder = new System.Windows.Forms.ComboBox();
|
||||||
|
this.buttonCreate = new System.Windows.Forms.Button();
|
||||||
|
this.buttonCancel = new System.Windows.Forms.Button();
|
||||||
|
this.labelQuantity = new System.Windows.Forms.Label();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(12, 9);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(50, 20);
|
||||||
|
this.label1.TabIndex = 0;
|
||||||
|
this.label1.Text = "Заказ:";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(12, 55);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(81, 20);
|
||||||
|
this.label2.TabIndex = 1;
|
||||||
|
this.label2.Text = "Материал:";
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Location = new System.Drawing.Point(12, 138);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(93, 20);
|
||||||
|
this.label3.TabIndex = 2;
|
||||||
|
this.label3.Text = "Количество:";
|
||||||
|
//
|
||||||
|
// comboBoxMaterial
|
||||||
|
//
|
||||||
|
this.comboBoxMaterial.FormattingEnabled = true;
|
||||||
|
this.comboBoxMaterial.Location = new System.Drawing.Point(142, 55);
|
||||||
|
this.comboBoxMaterial.Name = "comboBoxMaterial";
|
||||||
|
this.comboBoxMaterial.Size = new System.Drawing.Size(248, 28);
|
||||||
|
this.comboBoxMaterial.TabIndex = 3;
|
||||||
|
this.comboBoxMaterial.SelectedValueChanged += new System.EventHandler(this.comboBoxMaterial_SelectedValueChanged);
|
||||||
|
//
|
||||||
|
// textBoxQuantity
|
||||||
|
//
|
||||||
|
this.textBoxQuantity.Location = new System.Drawing.Point(142, 135);
|
||||||
|
this.textBoxQuantity.Name = "textBoxQuantity";
|
||||||
|
this.textBoxQuantity.Size = new System.Drawing.Size(120, 27);
|
||||||
|
this.textBoxQuantity.TabIndex = 4;
|
||||||
|
//
|
||||||
|
// comboBoxOrder
|
||||||
|
//
|
||||||
|
this.comboBoxOrder.FormattingEnabled = true;
|
||||||
|
this.comboBoxOrder.Location = new System.Drawing.Point(142, 9);
|
||||||
|
this.comboBoxOrder.Name = "comboBoxOrder";
|
||||||
|
this.comboBoxOrder.Size = new System.Drawing.Size(248, 28);
|
||||||
|
this.comboBoxOrder.TabIndex = 5;
|
||||||
|
//
|
||||||
|
// buttonCreate
|
||||||
|
//
|
||||||
|
this.buttonCreate.Location = new System.Drawing.Point(142, 194);
|
||||||
|
this.buttonCreate.Name = "buttonCreate";
|
||||||
|
this.buttonCreate.Size = new System.Drawing.Size(94, 29);
|
||||||
|
this.buttonCreate.TabIndex = 6;
|
||||||
|
this.buttonCreate.Text = "Добавить";
|
||||||
|
this.buttonCreate.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonCreate.Click += new System.EventHandler(this.buttonCreate_Click);
|
||||||
|
//
|
||||||
|
// buttonCancel
|
||||||
|
//
|
||||||
|
this.buttonCancel.Location = new System.Drawing.Point(296, 194);
|
||||||
|
this.buttonCancel.Name = "buttonCancel";
|
||||||
|
this.buttonCancel.Size = new System.Drawing.Size(94, 29);
|
||||||
|
this.buttonCancel.TabIndex = 7;
|
||||||
|
this.buttonCancel.Text = "Отмена";
|
||||||
|
this.buttonCancel.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
|
||||||
|
//
|
||||||
|
// labelQuantity
|
||||||
|
//
|
||||||
|
this.labelQuantity.AutoSize = true;
|
||||||
|
this.labelQuantity.Location = new System.Drawing.Point(12, 95);
|
||||||
|
this.labelQuantity.Name = "labelQuantity";
|
||||||
|
this.labelQuantity.Size = new System.Drawing.Size(134, 20);
|
||||||
|
this.labelQuantity.TabIndex = 8;
|
||||||
|
this.labelQuantity.Text = "Едениц на складе:";
|
||||||
|
//
|
||||||
|
// FormMaterialOrder
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(408, 233);
|
||||||
|
this.Controls.Add(this.labelQuantity);
|
||||||
|
this.Controls.Add(this.buttonCancel);
|
||||||
|
this.Controls.Add(this.buttonCreate);
|
||||||
|
this.Controls.Add(this.comboBoxOrder);
|
||||||
|
this.Controls.Add(this.textBoxQuantity);
|
||||||
|
this.Controls.Add(this.comboBoxMaterial);
|
||||||
|
this.Controls.Add(this.label3);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.Name = "FormMaterialOrder";
|
||||||
|
this.Text = "Отправка материалов на заказ";
|
||||||
|
this.Load += new System.EventHandler(this.FormMaterialOrder_Load);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private Label label1;
|
||||||
|
private Label label2;
|
||||||
|
private Label label3;
|
||||||
|
private ComboBox comboBoxMaterial;
|
||||||
|
private TextBox textBoxQuantity;
|
||||||
|
private ComboBox comboBoxOrder;
|
||||||
|
private Button buttonCreate;
|
||||||
|
private Button buttonCancel;
|
||||||
|
private Label labelQuantity;
|
||||||
|
}
|
||||||
|
}
|
128
ConstructionCompany/ConstructionCompanyView/FormMaterialOrder.cs
Normal file
128
ConstructionCompany/ConstructionCompanyView/FormMaterialOrder.cs
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
using ConstructionCompanyContracts.BusinessLogicContracts;
|
||||||
|
using ConstructionCompanyContracts.ViewModels;
|
||||||
|
using ConstructionCompanyContracts.BindingModels;
|
||||||
|
using ConstructionCompanyContracts.SearchModels;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
public partial class FormMaterialOrder : Form
|
||||||
|
{
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private readonly IOrderLogic _order;
|
||||||
|
private readonly IMaterialLogic _material;
|
||||||
|
private readonly IMaterialOrderLogic _materialOrder;
|
||||||
|
private List<MaterialViewModel>? _listM;
|
||||||
|
private List<OrderViewModel>? _listO;
|
||||||
|
private int _quantity = -1;
|
||||||
|
public FormMaterialOrder(ILogger<FormMaterialOrder> logger, IOrderLogic order, IMaterialLogic material, IMaterialOrderLogic materialOrder)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
_logger = logger;
|
||||||
|
_order = order;
|
||||||
|
_material = material;
|
||||||
|
_materialOrder = materialOrder;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
DialogResult = DialogResult.Cancel;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonCreate_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (comboBoxOrder.SelectedValue == null)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Выберите заказ", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (comboBoxMaterial.SelectedValue == null)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Выберите материал", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(textBoxQuantity.Text))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Заполните количество", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (Convert.ToInt32(textBoxQuantity.Text) > _quantity)
|
||||||
|
{
|
||||||
|
MessageBox.Show("На складе столько нет!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var model = new MaterialOrderBindingModel
|
||||||
|
{
|
||||||
|
MaterialId = Convert.ToInt32(comboBoxMaterial.SelectedValue),
|
||||||
|
OrderId = Convert.ToInt32(comboBoxOrder.SelectedValue),
|
||||||
|
Quantity = Convert.ToInt32(textBoxQuantity.Text)
|
||||||
|
};
|
||||||
|
var operationResult = _materialOrder.Create(model);
|
||||||
|
if (!operationResult)
|
||||||
|
{
|
||||||
|
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
|
||||||
|
}
|
||||||
|
MessageBox.Show("Сохранение прошло успешно", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
var material = _material.ReadElement(new MaterialSearchModel { Id = Convert.ToInt32(comboBoxMaterial.SelectedValue) });
|
||||||
|
material.Quantity -= Convert.ToInt32(textBoxQuantity.Text);
|
||||||
|
_material.Update(new MaterialBindingModel { Id = material.Id, MaterialName = material.MaterialName, Quantity = material.Quantity });
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка сохранения компонента");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FormMaterialOrder_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Загрузка материалов для заказа");
|
||||||
|
_listM = _material.ReadList(null);
|
||||||
|
if (_listM != null)
|
||||||
|
{
|
||||||
|
comboBoxMaterial.DisplayMember = "MaterialName";
|
||||||
|
comboBoxMaterial.ValueMember = "Id";
|
||||||
|
comboBoxMaterial.DataSource = _listM;
|
||||||
|
comboBoxMaterial.SelectedItem = null;
|
||||||
|
}
|
||||||
|
_listO = _order.ReadList(null);
|
||||||
|
if (_listO != null)
|
||||||
|
{
|
||||||
|
comboBoxOrder.DisplayMember = "Adress";
|
||||||
|
comboBoxOrder.ValueMember = "Id";
|
||||||
|
comboBoxOrder.DataSource = _listO;
|
||||||
|
comboBoxOrder.SelectedItem = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void comboBoxMaterial_SelectedValueChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (comboBoxMaterial.SelectedValue == null)
|
||||||
|
{
|
||||||
|
labelQuantity.Text = "Единиц на складе: ";
|
||||||
|
_quantity = -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var quantity = _material.ReadElement(new MaterialSearchModel { Id = Convert.ToInt32(comboBoxMaterial.SelectedValue) })?.Quantity;
|
||||||
|
labelQuantity.Text = $"Единиц на складе: {(quantity.HasValue ? quantity.Value : "")}";
|
||||||
|
_quantity = quantity.HasValue ? quantity.Value : -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<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>
|
81
ConstructionCompany/ConstructionCompanyView/FormMaterialOrders.Designer.cs
generated
Normal file
81
ConstructionCompany/ConstructionCompanyView/FormMaterialOrders.Designer.cs
generated
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
partial class FormMaterialOrders
|
||||||
|
{
|
||||||
|
/// <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.dataGridView = new System.Windows.Forms.DataGridView();
|
||||||
|
this.buttonCreate = new System.Windows.Forms.Button();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// dataGridView
|
||||||
|
//
|
||||||
|
this.dataGridView.BackgroundColor = System.Drawing.Color.White;
|
||||||
|
this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||||
|
this.dataGridView.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.dataGridView.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.dataGridView.MultiSelect = false;
|
||||||
|
this.dataGridView.Name = "dataGridView";
|
||||||
|
this.dataGridView.RowHeadersVisible = false;
|
||||||
|
this.dataGridView.RowHeadersWidth = 51;
|
||||||
|
this.dataGridView.RowTemplate.Height = 29;
|
||||||
|
this.dataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||||
|
this.dataGridView.Size = new System.Drawing.Size(543, 450);
|
||||||
|
this.dataGridView.TabIndex = 11;
|
||||||
|
//
|
||||||
|
// buttonCreate
|
||||||
|
//
|
||||||
|
this.buttonCreate.Location = new System.Drawing.Point(549, 12);
|
||||||
|
this.buttonCreate.Name = "buttonCreate";
|
||||||
|
this.buttonCreate.Size = new System.Drawing.Size(141, 64);
|
||||||
|
this.buttonCreate.TabIndex = 12;
|
||||||
|
this.buttonCreate.Text = "Отправить материалы";
|
||||||
|
this.buttonCreate.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonCreate.Click += new System.EventHandler(this.buttonCreate_Click);
|
||||||
|
//
|
||||||
|
// FormMaterialOrders
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(702, 450);
|
||||||
|
this.Controls.Add(this.buttonCreate);
|
||||||
|
this.Controls.Add(this.dataGridView);
|
||||||
|
this.Name = "FormMaterialOrders";
|
||||||
|
this.Text = "Отправленные материалы";
|
||||||
|
this.Load += new System.EventHandler(this.FormMaterialOrders_Load);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private DataGridView dataGridView;
|
||||||
|
private Button buttonCreate;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,67 @@
|
|||||||
|
using ConstructionCompanyContracts.BusinessLogicContracts;
|
||||||
|
using Microsoft.EntityFrameworkCore.Diagnostics;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
public partial class FormMaterialOrders : Form
|
||||||
|
{
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private readonly IMaterialOrderLogic _logic;
|
||||||
|
|
||||||
|
public FormMaterialOrders(ILogger<FormMaterialOrders> logger, IMaterialOrderLogic logic)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
_logger = logger;
|
||||||
|
_logic = logic;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FormMaterialOrders_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LoadData()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var list = _logic.ReadList(null);
|
||||||
|
if (list != null)
|
||||||
|
{
|
||||||
|
dataGridView.DataSource = list;
|
||||||
|
dataGridView.Columns["MaterialId"].Visible = false;
|
||||||
|
dataGridView.Columns["OrderId"].Visible = false;
|
||||||
|
dataGridView.Columns["Quantity"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||||
|
}
|
||||||
|
_logger.LogInformation("Загрузка поставок");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка загрузки поставок");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonCreate_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormMaterialOrder));
|
||||||
|
if (service is FormMaterialOrder form)
|
||||||
|
{
|
||||||
|
if (form.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<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>
|
@ -38,9 +38,9 @@
|
|||||||
//
|
//
|
||||||
// buttonRef
|
// buttonRef
|
||||||
//
|
//
|
||||||
this.buttonRef.Location = new System.Drawing.Point(523, 186);
|
this.buttonRef.Location = new System.Drawing.Point(495, 186);
|
||||||
this.buttonRef.Name = "buttonRef";
|
this.buttonRef.Name = "buttonRef";
|
||||||
this.buttonRef.Size = new System.Drawing.Size(94, 29);
|
this.buttonRef.Size = new System.Drawing.Size(134, 29);
|
||||||
this.buttonRef.TabIndex = 9;
|
this.buttonRef.TabIndex = 9;
|
||||||
this.buttonRef.Text = "Обновить";
|
this.buttonRef.Text = "Обновить";
|
||||||
this.buttonRef.UseVisualStyleBackColor = true;
|
this.buttonRef.UseVisualStyleBackColor = true;
|
||||||
@ -48,19 +48,19 @@
|
|||||||
//
|
//
|
||||||
// buttonDel
|
// buttonDel
|
||||||
//
|
//
|
||||||
this.buttonDel.Location = new System.Drawing.Point(523, 128);
|
this.buttonDel.Location = new System.Drawing.Point(495, 128);
|
||||||
this.buttonDel.Name = "buttonDel";
|
this.buttonDel.Name = "buttonDel";
|
||||||
this.buttonDel.Size = new System.Drawing.Size(94, 29);
|
this.buttonDel.Size = new System.Drawing.Size(134, 29);
|
||||||
this.buttonDel.TabIndex = 8;
|
this.buttonDel.TabIndex = 8;
|
||||||
this.buttonDel.Text = "Удалить";
|
this.buttonDel.Text = "Списать";
|
||||||
this.buttonDel.UseVisualStyleBackColor = true;
|
this.buttonDel.UseVisualStyleBackColor = true;
|
||||||
this.buttonDel.Click += new System.EventHandler(this.buttonDel_Click);
|
this.buttonDel.Click += new System.EventHandler(this.buttonDel_Click);
|
||||||
//
|
//
|
||||||
// buttonUpd
|
// buttonUpd
|
||||||
//
|
//
|
||||||
this.buttonUpd.Location = new System.Drawing.Point(523, 71);
|
this.buttonUpd.Location = new System.Drawing.Point(495, 71);
|
||||||
this.buttonUpd.Name = "buttonUpd";
|
this.buttonUpd.Name = "buttonUpd";
|
||||||
this.buttonUpd.Size = new System.Drawing.Size(94, 29);
|
this.buttonUpd.Size = new System.Drawing.Size(134, 29);
|
||||||
this.buttonUpd.TabIndex = 7;
|
this.buttonUpd.TabIndex = 7;
|
||||||
this.buttonUpd.Text = "Изменить";
|
this.buttonUpd.Text = "Изменить";
|
||||||
this.buttonUpd.UseVisualStyleBackColor = true;
|
this.buttonUpd.UseVisualStyleBackColor = true;
|
||||||
@ -68,11 +68,11 @@
|
|||||||
//
|
//
|
||||||
// buttonAdd
|
// buttonAdd
|
||||||
//
|
//
|
||||||
this.buttonAdd.Location = new System.Drawing.Point(523, 14);
|
this.buttonAdd.Location = new System.Drawing.Point(495, 14);
|
||||||
this.buttonAdd.Name = "buttonAdd";
|
this.buttonAdd.Name = "buttonAdd";
|
||||||
this.buttonAdd.Size = new System.Drawing.Size(94, 29);
|
this.buttonAdd.Size = new System.Drawing.Size(134, 29);
|
||||||
this.buttonAdd.TabIndex = 6;
|
this.buttonAdd.TabIndex = 6;
|
||||||
this.buttonAdd.Text = "Добавить";
|
this.buttonAdd.Text = "Приемка";
|
||||||
this.buttonAdd.UseVisualStyleBackColor = true;
|
this.buttonAdd.UseVisualStyleBackColor = true;
|
||||||
this.buttonAdd.Click += new System.EventHandler(this.buttonAdd_Click);
|
this.buttonAdd.Click += new System.EventHandler(this.buttonAdd_Click);
|
||||||
//
|
//
|
||||||
|
163
ConstructionCompany/ConstructionCompanyView/FormOrder.Designer.cs
generated
Normal file
163
ConstructionCompany/ConstructionCompanyView/FormOrder.Designer.cs
generated
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
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()
|
||||||
|
{
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.textBoxDescription = new System.Windows.Forms.TextBox();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.textBoxAdress = new System.Windows.Forms.TextBox();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.textBoxPrice = new System.Windows.Forms.TextBox();
|
||||||
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
|
this.textBoxNumber = new System.Windows.Forms.TextBox();
|
||||||
|
this.buttonCreate = new System.Windows.Forms.Button();
|
||||||
|
this.buttonCancel = new System.Windows.Forms.Button();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(12, 9);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(79, 20);
|
||||||
|
this.label1.TabIndex = 0;
|
||||||
|
this.label1.Text = "Описание";
|
||||||
|
//
|
||||||
|
// textBoxDescription
|
||||||
|
//
|
||||||
|
this.textBoxDescription.Location = new System.Drawing.Point(183, 6);
|
||||||
|
this.textBoxDescription.Multiline = true;
|
||||||
|
this.textBoxDescription.Name = "textBoxDescription";
|
||||||
|
this.textBoxDescription.Size = new System.Drawing.Size(266, 56);
|
||||||
|
this.textBoxDescription.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(12, 76);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(51, 20);
|
||||||
|
this.label2.TabIndex = 2;
|
||||||
|
this.label2.Text = "Адрес";
|
||||||
|
//
|
||||||
|
// textBoxAdress
|
||||||
|
//
|
||||||
|
this.textBoxAdress.Location = new System.Drawing.Point(183, 73);
|
||||||
|
this.textBoxAdress.Name = "textBoxAdress";
|
||||||
|
this.textBoxAdress.Size = new System.Drawing.Size(266, 27);
|
||||||
|
this.textBoxAdress.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Location = new System.Drawing.Point(12, 114);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(45, 20);
|
||||||
|
this.label3.TabIndex = 4;
|
||||||
|
this.label3.Text = "Цена";
|
||||||
|
//
|
||||||
|
// textBoxPrice
|
||||||
|
//
|
||||||
|
this.textBoxPrice.Location = new System.Drawing.Point(183, 111);
|
||||||
|
this.textBoxPrice.Name = "textBoxPrice";
|
||||||
|
this.textBoxPrice.Size = new System.Drawing.Size(266, 27);
|
||||||
|
this.textBoxPrice.TabIndex = 5;
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
this.label4.AutoSize = true;
|
||||||
|
this.label4.Location = new System.Drawing.Point(12, 146);
|
||||||
|
this.label4.Name = "label4";
|
||||||
|
this.label4.Size = new System.Drawing.Size(130, 20);
|
||||||
|
this.label4.TabIndex = 6;
|
||||||
|
this.label4.Text = "Номер заказчика";
|
||||||
|
//
|
||||||
|
// textBoxNumber
|
||||||
|
//
|
||||||
|
this.textBoxNumber.Location = new System.Drawing.Point(183, 144);
|
||||||
|
this.textBoxNumber.Name = "textBoxNumber";
|
||||||
|
this.textBoxNumber.Size = new System.Drawing.Size(266, 27);
|
||||||
|
this.textBoxNumber.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// buttonCreate
|
||||||
|
//
|
||||||
|
this.buttonCreate.Location = new System.Drawing.Point(213, 186);
|
||||||
|
this.buttonCreate.Name = "buttonCreate";
|
||||||
|
this.buttonCreate.Size = new System.Drawing.Size(94, 29);
|
||||||
|
this.buttonCreate.TabIndex = 8;
|
||||||
|
this.buttonCreate.Text = "Принять";
|
||||||
|
this.buttonCreate.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonCreate.Click += new System.EventHandler(this.buttonCreate_Click);
|
||||||
|
//
|
||||||
|
// buttonCancel
|
||||||
|
//
|
||||||
|
this.buttonCancel.Location = new System.Drawing.Point(342, 186);
|
||||||
|
this.buttonCancel.Name = "buttonCancel";
|
||||||
|
this.buttonCancel.Size = new System.Drawing.Size(94, 29);
|
||||||
|
this.buttonCancel.TabIndex = 9;
|
||||||
|
this.buttonCancel.Text = "Отмена";
|
||||||
|
this.buttonCancel.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
|
||||||
|
//
|
||||||
|
// FormOrder
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(461, 227);
|
||||||
|
this.Controls.Add(this.buttonCancel);
|
||||||
|
this.Controls.Add(this.buttonCreate);
|
||||||
|
this.Controls.Add(this.textBoxNumber);
|
||||||
|
this.Controls.Add(this.label4);
|
||||||
|
this.Controls.Add(this.textBoxPrice);
|
||||||
|
this.Controls.Add(this.label3);
|
||||||
|
this.Controls.Add(this.textBoxAdress);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.textBoxDescription);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.Name = "FormOrder";
|
||||||
|
this.Text = "Создание заказа";
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private Label label1;
|
||||||
|
private TextBox textBoxDescription;
|
||||||
|
private Label label2;
|
||||||
|
private TextBox textBoxAdress;
|
||||||
|
private Label label3;
|
||||||
|
private TextBox textBoxPrice;
|
||||||
|
private Label label4;
|
||||||
|
private TextBox textBoxNumber;
|
||||||
|
private Button buttonCreate;
|
||||||
|
private Button buttonCancel;
|
||||||
|
}
|
||||||
|
}
|
82
ConstructionCompany/ConstructionCompanyView/FormOrder.cs
Normal file
82
ConstructionCompany/ConstructionCompanyView/FormOrder.cs
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
using ConstructionCompanyContracts.BindingModels;
|
||||||
|
using ConstructionCompanyContracts.BusinessLogicContracts;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
public partial class FormOrder : Form
|
||||||
|
{
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private readonly IOrderLogic _logic;
|
||||||
|
public FormOrder(ILogger<FormOrder> logger, IOrderLogic logic)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
_logger = logger;
|
||||||
|
_logic = logic;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
DialogResult = DialogResult.Cancel;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonCreate_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(textBoxDescription.Text))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Заполните описание", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(textBoxAdress.Text))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Заполните адрес", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(textBoxPrice.Text))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Заполните цену", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(textBoxNumber.Text))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Заполните цену", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_logger.LogInformation("Сохранение материала");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var model = new OrderBindingModel
|
||||||
|
{
|
||||||
|
Id = 0,
|
||||||
|
Description = textBoxDescription.Text,
|
||||||
|
Adress = textBoxAdress.Text,
|
||||||
|
Price = Convert.ToInt32(textBoxPrice.Text),
|
||||||
|
CustomerNumber = textBoxNumber.Text
|
||||||
|
};
|
||||||
|
var operationResult = _logic.CreateOrder(model);
|
||||||
|
if (!operationResult)
|
||||||
|
{
|
||||||
|
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
|
||||||
|
}
|
||||||
|
MessageBox.Show("Сохранение прошло успешно", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка сохранения компонента");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
60
ConstructionCompany/ConstructionCompanyView/FormOrder.resx
Normal file
60
ConstructionCompany/ConstructionCompanyView/FormOrder.resx
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<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>
|
119
ConstructionCompany/ConstructionCompanyView/FormOrders.Designer.cs
generated
Normal file
119
ConstructionCompany/ConstructionCompanyView/FormOrders.Designer.cs
generated
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
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()
|
||||||
|
{
|
||||||
|
this.buttonRef = new System.Windows.Forms.Button();
|
||||||
|
this.buttonDone = new System.Windows.Forms.Button();
|
||||||
|
this.buttonTakeInWork = new System.Windows.Forms.Button();
|
||||||
|
this.buttonAdd = new System.Windows.Forms.Button();
|
||||||
|
this.dataGridView = new System.Windows.Forms.DataGridView();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// buttonRef
|
||||||
|
//
|
||||||
|
this.buttonRef.Location = new System.Drawing.Point(1236, 207);
|
||||||
|
this.buttonRef.Name = "buttonRef";
|
||||||
|
this.buttonRef.Size = new System.Drawing.Size(157, 29);
|
||||||
|
this.buttonRef.TabIndex = 14;
|
||||||
|
this.buttonRef.Text = "Обновить";
|
||||||
|
this.buttonRef.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// buttonDone
|
||||||
|
//
|
||||||
|
this.buttonDone.Location = new System.Drawing.Point(1236, 138);
|
||||||
|
this.buttonDone.Name = "buttonDone";
|
||||||
|
this.buttonDone.Size = new System.Drawing.Size(157, 29);
|
||||||
|
this.buttonDone.TabIndex = 13;
|
||||||
|
this.buttonDone.Text = "Заказ готов ";
|
||||||
|
this.buttonDone.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonDone.Click += new System.EventHandler(this.buttonDone_Click);
|
||||||
|
//
|
||||||
|
// buttonTakeInWork
|
||||||
|
//
|
||||||
|
this.buttonTakeInWork.Location = new System.Drawing.Point(1236, 73);
|
||||||
|
this.buttonTakeInWork.Name = "buttonTakeInWork";
|
||||||
|
this.buttonTakeInWork.Size = new System.Drawing.Size(157, 30);
|
||||||
|
this.buttonTakeInWork.TabIndex = 12;
|
||||||
|
this.buttonTakeInWork.Text = "Перевести в работу";
|
||||||
|
this.buttonTakeInWork.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonTakeInWork.Click += new System.EventHandler(this.buttonTakeInWork_Click);
|
||||||
|
//
|
||||||
|
// buttonAdd
|
||||||
|
//
|
||||||
|
this.buttonAdd.Location = new System.Drawing.Point(1236, 11);
|
||||||
|
this.buttonAdd.Name = "buttonAdd";
|
||||||
|
this.buttonAdd.Size = new System.Drawing.Size(157, 29);
|
||||||
|
this.buttonAdd.TabIndex = 11;
|
||||||
|
this.buttonAdd.Text = "Принять заказ";
|
||||||
|
this.buttonAdd.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonAdd.Click += new System.EventHandler(this.buttonAdd_Click);
|
||||||
|
//
|
||||||
|
// dataGridView
|
||||||
|
//
|
||||||
|
this.dataGridView.BackgroundColor = System.Drawing.Color.White;
|
||||||
|
this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||||
|
this.dataGridView.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.dataGridView.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.dataGridView.MultiSelect = false;
|
||||||
|
this.dataGridView.Name = "dataGridView";
|
||||||
|
this.dataGridView.RowHeadersVisible = false;
|
||||||
|
this.dataGridView.RowHeadersWidth = 51;
|
||||||
|
this.dataGridView.RowTemplate.Height = 29;
|
||||||
|
this.dataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||||
|
this.dataGridView.Size = new System.Drawing.Size(1193, 450);
|
||||||
|
this.dataGridView.TabIndex = 10;
|
||||||
|
//
|
||||||
|
// FormOrders
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(1405, 450);
|
||||||
|
this.Controls.Add(this.buttonRef);
|
||||||
|
this.Controls.Add(this.buttonDone);
|
||||||
|
this.Controls.Add(this.buttonTakeInWork);
|
||||||
|
this.Controls.Add(this.buttonAdd);
|
||||||
|
this.Controls.Add(this.dataGridView);
|
||||||
|
this.Name = "FormOrders";
|
||||||
|
this.Text = "Заказы";
|
||||||
|
this.Load += new System.EventHandler(this.FormOrders_Load);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private Button buttonRef;
|
||||||
|
private Button buttonDone;
|
||||||
|
private Button buttonTakeInWork;
|
||||||
|
private Button buttonAdd;
|
||||||
|
private DataGridView dataGridView;
|
||||||
|
}
|
||||||
|
}
|
110
ConstructionCompany/ConstructionCompanyView/FormOrders.cs
Normal file
110
ConstructionCompany/ConstructionCompanyView/FormOrders.cs
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
using ConstructionCompanyBusinessLogic.BusinessLogics;
|
||||||
|
using ConstructionCompanyContracts.BindingModels;
|
||||||
|
using ConstructionCompanyContracts.BusinessLogicContracts;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
public partial class FormOrders : Form
|
||||||
|
{
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private readonly IOrderLogic _logic;
|
||||||
|
public FormOrders(ILogger<FormOrders> logger, IOrderLogic logic)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
_logger = logger;
|
||||||
|
_logic = logic;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonAdd_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormOrder));
|
||||||
|
if (service is FormOrder form)
|
||||||
|
{
|
||||||
|
if (form.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FormOrders_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LoadData()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var list = _logic.ReadList(null);
|
||||||
|
if (list != null)
|
||||||
|
{
|
||||||
|
dataGridView.DataSource = list;
|
||||||
|
dataGridView.Columns["Description"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||||
|
}
|
||||||
|
_logger.LogInformation("Загрузка заказов");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка загрузки заказов");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonTakeInWork_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (dataGridView.SelectedRows.Count == 1)
|
||||||
|
{
|
||||||
|
int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
|
||||||
|
_logger.LogInformation("Заказ №{id}. Меняется статус на 'В работе'", id);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var operationResult = _logic.TakeOrderInWork(new OrderBindingModel { Id = id });
|
||||||
|
if (!operationResult)
|
||||||
|
{
|
||||||
|
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
|
||||||
|
}
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка передачи заказа в работу");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonDone_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (dataGridView.SelectedRows.Count == 1)
|
||||||
|
{
|
||||||
|
int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
|
||||||
|
_logger.LogInformation("Заказ №{id}. Меняется статус на 'Готов'", id);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var operationResult = _logic.FinishOrder(new OrderBindingModel { Id = id });
|
||||||
|
if (!operationResult)
|
||||||
|
{
|
||||||
|
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
|
||||||
|
}
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка отметки о готовности заказа");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
60
ConstructionCompany/ConstructionCompanyView/FormOrders.resx
Normal file
60
ConstructionCompany/ConstructionCompanyView/FormOrders.resx
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<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>
|
119
ConstructionCompany/ConstructionCompanyView/FormPosition.Designer.cs
generated
Normal file
119
ConstructionCompany/ConstructionCompanyView/FormPosition.Designer.cs
generated
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
partial class FormPosition
|
||||||
|
{
|
||||||
|
/// <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.buttonCancel = new System.Windows.Forms.Button();
|
||||||
|
this.buttonCreate = new System.Windows.Forms.Button();
|
||||||
|
this.textBoxSalary = new System.Windows.Forms.TextBox();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.textBoxName = new System.Windows.Forms.TextBox();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// buttonCancel
|
||||||
|
//
|
||||||
|
this.buttonCancel.Location = new System.Drawing.Point(307, 117);
|
||||||
|
this.buttonCancel.Name = "buttonCancel";
|
||||||
|
this.buttonCancel.Size = new System.Drawing.Size(94, 29);
|
||||||
|
this.buttonCancel.TabIndex = 11;
|
||||||
|
this.buttonCancel.Text = "Отмена";
|
||||||
|
this.buttonCancel.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
|
||||||
|
//
|
||||||
|
// buttonCreate
|
||||||
|
//
|
||||||
|
this.buttonCreate.Location = new System.Drawing.Point(202, 117);
|
||||||
|
this.buttonCreate.Name = "buttonCreate";
|
||||||
|
this.buttonCreate.Size = new System.Drawing.Size(94, 29);
|
||||||
|
this.buttonCreate.TabIndex = 10;
|
||||||
|
this.buttonCreate.Text = "Создать";
|
||||||
|
this.buttonCreate.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonCreate.Click += new System.EventHandler(this.buttonCreate_Click);
|
||||||
|
//
|
||||||
|
// textBoxSalary
|
||||||
|
//
|
||||||
|
this.textBoxSalary.Location = new System.Drawing.Point(108, 56);
|
||||||
|
this.textBoxSalary.Name = "textBoxSalary";
|
||||||
|
this.textBoxSalary.Size = new System.Drawing.Size(113, 27);
|
||||||
|
this.textBoxSalary.TabIndex = 9;
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(12, 59);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(73, 20);
|
||||||
|
this.label2.TabIndex = 8;
|
||||||
|
this.label2.Text = "Зарплата";
|
||||||
|
//
|
||||||
|
// textBoxName
|
||||||
|
//
|
||||||
|
this.textBoxName.Location = new System.Drawing.Point(108, 6);
|
||||||
|
this.textBoxName.Name = "textBoxName";
|
||||||
|
this.textBoxName.Size = new System.Drawing.Size(276, 27);
|
||||||
|
this.textBoxName.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(12, 9);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(77, 20);
|
||||||
|
this.label1.TabIndex = 6;
|
||||||
|
this.label1.Text = "Название";
|
||||||
|
//
|
||||||
|
// FormPosition
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(422, 165);
|
||||||
|
this.Controls.Add(this.buttonCancel);
|
||||||
|
this.Controls.Add(this.buttonCreate);
|
||||||
|
this.Controls.Add(this.textBoxSalary);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.textBoxName);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.Name = "FormPosition";
|
||||||
|
this.Text = "Должность";
|
||||||
|
this.Load += new System.EventHandler(this.FormPosition_Load);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private Button buttonCancel;
|
||||||
|
private Button buttonCreate;
|
||||||
|
private TextBox textBoxSalary;
|
||||||
|
private Label label2;
|
||||||
|
private TextBox textBoxName;
|
||||||
|
private Label label1;
|
||||||
|
}
|
||||||
|
}
|
95
ConstructionCompany/ConstructionCompanyView/FormPosition.cs
Normal file
95
ConstructionCompany/ConstructionCompanyView/FormPosition.cs
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
using ConstructionCompanyContracts.BindingModels;
|
||||||
|
using ConstructionCompanyContracts.BusinessLogicContracts;
|
||||||
|
using ConstructionCompanyContracts.SearchModels;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
public partial class FormPosition : Form
|
||||||
|
{
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private readonly IPositionLogic _logic;
|
||||||
|
private int? _id;
|
||||||
|
public int Id { set { _id = value; } }
|
||||||
|
public FormPosition(ILogger<FormPosition> logger, IPositionLogic logic)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
_logic = logic;
|
||||||
|
_logger = logger;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonCreate_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(textBoxName.Text))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Заполните название", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(textBoxSalary.Text))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Заполните зарплату", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_logger.LogInformation("Сохранение материала");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var model = new PositionBindingModel
|
||||||
|
{
|
||||||
|
Id = _id ?? 0,
|
||||||
|
PositionName = textBoxName.Text,
|
||||||
|
Salary = Convert.ToInt32(textBoxSalary.Text)
|
||||||
|
};
|
||||||
|
var operationResult = _id.HasValue ? _logic.Update(model) : _logic.Create(model);
|
||||||
|
if (!operationResult)
|
||||||
|
{
|
||||||
|
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
|
||||||
|
}
|
||||||
|
MessageBox.Show("Сохранение прошло успешно", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка сохранения компонента");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
DialogResult = DialogResult.Cancel;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FormPosition_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (_id.HasValue)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Получение материала");
|
||||||
|
var view = _logic.ReadElement(new PositionSearchModel { Id = _id.Value });
|
||||||
|
if (view != null)
|
||||||
|
{
|
||||||
|
textBoxName.Text = view.PositionName;
|
||||||
|
textBoxSalary.Text = view.Salary.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка получения материала");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<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>
|
120
ConstructionCompany/ConstructionCompanyView/FormPositions.Designer.cs
generated
Normal file
120
ConstructionCompany/ConstructionCompanyView/FormPositions.Designer.cs
generated
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
partial class FormPositions
|
||||||
|
{
|
||||||
|
/// <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.dataGridView = new System.Windows.Forms.DataGridView();
|
||||||
|
this.buttonRef = new System.Windows.Forms.Button();
|
||||||
|
this.buttonDel = new System.Windows.Forms.Button();
|
||||||
|
this.buttonUpd = new System.Windows.Forms.Button();
|
||||||
|
this.buttonAdd = new System.Windows.Forms.Button();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// dataGridView
|
||||||
|
//
|
||||||
|
this.dataGridView.BackgroundColor = System.Drawing.Color.White;
|
||||||
|
this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||||
|
this.dataGridView.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.dataGridView.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.dataGridView.MultiSelect = false;
|
||||||
|
this.dataGridView.Name = "dataGridView";
|
||||||
|
this.dataGridView.RowHeadersVisible = false;
|
||||||
|
this.dataGridView.RowHeadersWidth = 51;
|
||||||
|
this.dataGridView.RowTemplate.Height = 29;
|
||||||
|
this.dataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||||
|
this.dataGridView.Size = new System.Drawing.Size(415, 450);
|
||||||
|
this.dataGridView.TabIndex = 11;
|
||||||
|
//
|
||||||
|
// buttonRef
|
||||||
|
//
|
||||||
|
this.buttonRef.Location = new System.Drawing.Point(448, 184);
|
||||||
|
this.buttonRef.Name = "buttonRef";
|
||||||
|
this.buttonRef.Size = new System.Drawing.Size(134, 29);
|
||||||
|
this.buttonRef.TabIndex = 15;
|
||||||
|
this.buttonRef.Text = "Обновить";
|
||||||
|
this.buttonRef.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonRef.Click += new System.EventHandler(this.buttonRef_Click);
|
||||||
|
//
|
||||||
|
// buttonDel
|
||||||
|
//
|
||||||
|
this.buttonDel.Location = new System.Drawing.Point(448, 126);
|
||||||
|
this.buttonDel.Name = "buttonDel";
|
||||||
|
this.buttonDel.Size = new System.Drawing.Size(134, 29);
|
||||||
|
this.buttonDel.TabIndex = 14;
|
||||||
|
this.buttonDel.Text = "Упразднить";
|
||||||
|
this.buttonDel.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonDel.Click += new System.EventHandler(this.buttonDel_Click);
|
||||||
|
//
|
||||||
|
// buttonUpd
|
||||||
|
//
|
||||||
|
this.buttonUpd.Location = new System.Drawing.Point(448, 69);
|
||||||
|
this.buttonUpd.Name = "buttonUpd";
|
||||||
|
this.buttonUpd.Size = new System.Drawing.Size(134, 29);
|
||||||
|
this.buttonUpd.TabIndex = 13;
|
||||||
|
this.buttonUpd.Text = "Изменить";
|
||||||
|
this.buttonUpd.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonUpd.Click += new System.EventHandler(this.buttonUpd_Click);
|
||||||
|
//
|
||||||
|
// buttonAdd
|
||||||
|
//
|
||||||
|
this.buttonAdd.Location = new System.Drawing.Point(448, 12);
|
||||||
|
this.buttonAdd.Name = "buttonAdd";
|
||||||
|
this.buttonAdd.Size = new System.Drawing.Size(134, 29);
|
||||||
|
this.buttonAdd.TabIndex = 12;
|
||||||
|
this.buttonAdd.Text = "Добавить";
|
||||||
|
this.buttonAdd.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonAdd.Click += new System.EventHandler(this.buttonAdd_Click);
|
||||||
|
//
|
||||||
|
// FormPositions
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(611, 450);
|
||||||
|
this.Controls.Add(this.buttonRef);
|
||||||
|
this.Controls.Add(this.buttonDel);
|
||||||
|
this.Controls.Add(this.buttonUpd);
|
||||||
|
this.Controls.Add(this.buttonAdd);
|
||||||
|
this.Controls.Add(this.dataGridView);
|
||||||
|
this.Name = "FormPositions";
|
||||||
|
this.Text = "Должности";
|
||||||
|
this.Load += new System.EventHandler(this.FormPositions_Load);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private DataGridView dataGridView;
|
||||||
|
private Button buttonRef;
|
||||||
|
private Button buttonDel;
|
||||||
|
private Button buttonUpd;
|
||||||
|
private Button buttonAdd;
|
||||||
|
}
|
||||||
|
}
|
110
ConstructionCompany/ConstructionCompanyView/FormPositions.cs
Normal file
110
ConstructionCompany/ConstructionCompanyView/FormPositions.cs
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
using ConstructionCompanyContracts.BindingModels;
|
||||||
|
using ConstructionCompanyContracts.BusinessLogicContracts;
|
||||||
|
using ConstructionCompanyContracts.StorageContracts;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
public partial class FormPositions : Form
|
||||||
|
{
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private readonly IPositionLogic _logic;
|
||||||
|
public FormPositions(ILogger<FormPositions> logger, IPositionLogic logic)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
_logger = logger;
|
||||||
|
_logic = logic;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FormPositions_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
private void LoadData()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var list = _logic.ReadList(null);
|
||||||
|
if (list != null)
|
||||||
|
{
|
||||||
|
dataGridView.DataSource = list;
|
||||||
|
dataGridView.Columns["Id"].Visible = false;
|
||||||
|
dataGridView.Columns["PositionName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||||
|
}
|
||||||
|
_logger.LogInformation("Загрузка материалов");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка загрузки материалов");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonAdd_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormPosition));
|
||||||
|
if (service is FormPosition form)
|
||||||
|
{
|
||||||
|
if (form.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonUpd_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (dataGridView.SelectedRows.Count == 1)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormPosition));
|
||||||
|
if (service is FormPosition form)
|
||||||
|
{
|
||||||
|
form.Id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
|
||||||
|
if (form.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonDel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (dataGridView.SelectedRows.Count == 1)
|
||||||
|
{
|
||||||
|
if (MessageBox.Show("Удалить запись?", "Вопрос", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||||
|
{
|
||||||
|
int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
|
||||||
|
_logger.LogInformation("Удаление изделия");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!_logic.Delete(new PositionBindingModel { Id = id }))
|
||||||
|
{
|
||||||
|
throw new Exception("Ошибка при удалении. Дополнительная информация в логах.");
|
||||||
|
}
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка удаления изделия");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void buttonRef_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
LoadData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<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>
|
100
ConstructionCompany/ConstructionCompanyView/FormWarehouseMenu.Designer.cs
generated
Normal file
100
ConstructionCompany/ConstructionCompanyView/FormWarehouseMenu.Designer.cs
generated
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
partial class FormWarehouseMenu
|
||||||
|
{
|
||||||
|
/// <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(FormWarehouseMenu));
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||||
|
this.материалыToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.поставкиToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.panel1.SuspendLayout();
|
||||||
|
this.menuStrip1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
this.panel1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("panel1.BackgroundImage")));
|
||||||
|
this.panel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
|
||||||
|
this.panel1.Controls.Add(this.menuStrip1);
|
||||||
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
this.panel1.Size = new System.Drawing.Size(542, 327);
|
||||||
|
this.panel1.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// menuStrip1
|
||||||
|
//
|
||||||
|
this.menuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
|
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.материалыToolStripMenuItem,
|
||||||
|
this.поставкиToolStripMenuItem});
|
||||||
|
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.menuStrip1.Name = "menuStrip1";
|
||||||
|
this.menuStrip1.Size = new System.Drawing.Size(542, 28);
|
||||||
|
this.menuStrip1.TabIndex = 0;
|
||||||
|
this.menuStrip1.Text = "menuStrip1";
|
||||||
|
//
|
||||||
|
// материалыToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.материалыToolStripMenuItem.Name = "материалыToolStripMenuItem";
|
||||||
|
this.материалыToolStripMenuItem.Size = new System.Drawing.Size(103, 24);
|
||||||
|
this.материалыToolStripMenuItem.Text = "Материалы";
|
||||||
|
this.материалыToolStripMenuItem.Click += new System.EventHandler(this.материалыToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// поставкиToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.поставкиToolStripMenuItem.Name = "поставкиToolStripMenuItem";
|
||||||
|
this.поставкиToolStripMenuItem.Size = new System.Drawing.Size(88, 24);
|
||||||
|
this.поставкиToolStripMenuItem.Text = "Поставки";
|
||||||
|
this.поставкиToolStripMenuItem.Click += new System.EventHandler(this.поставкиToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// FormWarehouseMenu
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(542, 327);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
this.MainMenuStrip = this.menuStrip1;
|
||||||
|
this.Name = "FormWarehouseMenu";
|
||||||
|
this.Text = "Склад";
|
||||||
|
this.panel1.ResumeLayout(false);
|
||||||
|
this.panel1.PerformLayout();
|
||||||
|
this.menuStrip1.ResumeLayout(false);
|
||||||
|
this.menuStrip1.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
private Panel panel1;
|
||||||
|
private MenuStrip menuStrip1;
|
||||||
|
private ToolStripMenuItem материалыToolStripMenuItem;
|
||||||
|
private ToolStripMenuItem поставкиToolStripMenuItem;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore.Metadata.Conventions;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ConstructionCompanyView
|
||||||
|
{
|
||||||
|
public partial class FormWarehouseMenu : Form
|
||||||
|
{
|
||||||
|
public FormWarehouseMenu()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void материалыToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormMaterials));
|
||||||
|
if (service is FormMaterials form)
|
||||||
|
{
|
||||||
|
form.ShowDialog();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void поставкиToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var service = Program.ServiceProvider?.GetService(typeof(FormMaterialOrders));
|
||||||
|
if (service is FormMaterialOrders form)
|
||||||
|
{
|
||||||
|
form.ShowDialog();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,283 @@
|
|||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<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="panel1.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
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
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>78</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
Binary file not shown.
After Width: | Height: | Size: 7.5 KiB |
@ -24,7 +24,7 @@ namespace ConstructionCompanyView
|
|||||||
var services = new ServiceCollection();
|
var services = new ServiceCollection();
|
||||||
ConfigureServices(services);
|
ConfigureServices(services);
|
||||||
_serviceProvider = services.BuildServiceProvider();
|
_serviceProvider = services.BuildServiceProvider();
|
||||||
Application.Run(_serviceProvider.GetRequiredService<FormMaterials>());
|
Application.Run(_serviceProvider.GetRequiredService<FormLogin>());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void ConfigureServices(ServiceCollection services)
|
private static void ConfigureServices(ServiceCollection services)
|
||||||
@ -50,6 +50,20 @@ namespace ConstructionCompanyView
|
|||||||
|
|
||||||
services.AddTransient<FormMaterials>();
|
services.AddTransient<FormMaterials>();
|
||||||
services.AddTransient<FormMaterial>();
|
services.AddTransient<FormMaterial>();
|
||||||
|
services.AddTransient<FormLogin>();
|
||||||
|
services.AddTransient<FormWarehouseMenu>();
|
||||||
|
services.AddTransient<FormManagerMenu>();
|
||||||
|
services.AddTransient<FormOrders>();
|
||||||
|
services.AddTransient<FormOrder>();
|
||||||
|
services.AddTransient<FormMaterialOrders>();
|
||||||
|
services.AddTransient<FormMaterialOrder>();
|
||||||
|
services.AddTransient<FormBrigadeMenu>();
|
||||||
|
services.AddTransient<FormPositions>();
|
||||||
|
services.AddTransient<FormPosition>();
|
||||||
|
services.AddTransient<FormEmployees>();
|
||||||
|
services.AddTransient<FormEmployee>();
|
||||||
|
services.AddTransient<FormEmployeeOrders>();
|
||||||
|
services.AddTransient<FormEmployeeOrder>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
83
ConstructionCompany/ConstructionCompanyView/Properties/Resources.Designer.cs
generated
Normal file
83
ConstructionCompany/ConstructionCompanyView/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// Этот код создан программой.
|
||||||
|
// Исполняемая версия:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
|
||||||
|
// повторной генерации кода.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace ConstructionCompanyView.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("ConstructionCompanyView.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 cash_register_solid {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("cash-register-solid", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap users_viewfinder_solid {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("users-viewfinder-solid", 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="cash-register-solid" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\cash-register-solid.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="users-viewfinder-solid" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\users-viewfinder-solid.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
Binary file not shown.
After Width: | Height: | Size: 5.9 KiB |
Binary file not shown.
After Width: | Height: | Size: 9.1 KiB |
Loading…
Reference in New Issue
Block a user