PiBD-23_IvanovD.A._LabWork1_Simple #1
23
Travel_Agency/Travel_Agency/Entities/Client.cs
Normal file
23
Travel_Agency/Travel_Agency/Entities/Client.cs
Normal file
@ -0,0 +1,23 @@
|
||||
|
||||
using Travel_Agency.Entities.Enums;
|
||||
|
||||
namespace Travel_Agency.Entities;
|
||||
|
||||
public class Client
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
public string PassportDetails { get; private set; } = string.Empty;
|
||||
public PositionInSociety PositionInSociety { get; private set; }
|
||||
|
||||
public static Client CreateEntity(int id , string name, string passportDetails, PositionInSociety positionInSociety)
|
||||
{
|
||||
return new Client
|
||||
{
|
||||
Id = id,
|
||||
Name = name,
|
||||
PassportDetails = passportDetails,
|
||||
PositionInSociety = positionInSociety
|
||||
};
|
||||
}
|
||||
}
|
28
Travel_Agency/Travel_Agency/Entities/Contract.cs
Normal file
28
Travel_Agency/Travel_Agency/Entities/Contract.cs
Normal file
@ -0,0 +1,28 @@
|
||||
|
||||
namespace Travel_Agency.Entities;
|
||||
public class Contract
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
public int ContractNumber { get; private set; }
|
||||
public int Discount { get; private set; } = 0;
|
||||
public int TouristNumber { get; private set; }
|
||||
public int FinalPrice { get; private set; }
|
||||
public int ClientId { get; private set; }
|
||||
public DateTime Date { get; private set; }
|
||||
public IEnumerable<Contract_Tour> Tours { get; private set; } = [];
|
||||
|
||||
public static Contract CreateOperation(int id, int contractNumber, int discount, int touristNumber, int finalprice, int clientId, IEnumerable<Contract_Tour> tours)
|
||||
{
|
||||
return new Contract
|
||||
{
|
||||
Id = id,
|
||||
ContractNumber = contractNumber,
|
||||
Discount = discount,
|
||||
TouristNumber = touristNumber,
|
||||
FinalPrice = finalprice - finalprice * (discount / 100),
|
||||
ClientId = clientId,
|
||||
Date = DateTime.Now,
|
||||
Tours = tours
|
||||
};
|
||||
}
|
||||
}
|
19
Travel_Agency/Travel_Agency/Entities/Contract_Tour.cs
Normal file
19
Travel_Agency/Travel_Agency/Entities/Contract_Tour.cs
Normal file
@ -0,0 +1,19 @@
|
||||
|
||||
namespace Travel_Agency.Entities;
|
||||
public class Contract_Tour
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
public int TourId { get; private set; }
|
||||
public string StartDate { get; private set; } = string.Empty;
|
||||
public string EndDate { get; private set; } = string.Empty;
|
||||
public static Contract_Tour CreateElement(int id, int tourId, string startDate, string endDate)
|
||||
{
|
||||
return new Contract_Tour
|
||||
{
|
||||
Id = id,
|
||||
TourId = tourId,
|
||||
StartDate = startDate,
|
||||
EndDate = endDate
|
||||
};
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
|
||||
namespace Travel_Agency.Entities.Enums
|
||||
{
|
||||
public enum PositionInSociety
|
||||
{
|
||||
Unemployed = 0,
|
||||
Employed = 1,
|
||||
LargeFamily = 2,
|
||||
Pensioner = 3,
|
||||
}
|
||||
}
|
13
Travel_Agency/Travel_Agency/Entities/Enums/TypeOfTour.cs
Normal file
13
Travel_Agency/Travel_Agency/Entities/Enums/TypeOfTour.cs
Normal file
@ -0,0 +1,13 @@
|
||||
|
||||
namespace Travel_Agency.Entities.Enums;
|
||||
|
||||
[Flags]
|
||||
public enum TypeOfTour
|
||||
{
|
||||
None = 0,
|
||||
OnFoot = 1,
|
||||
Bycar = 2,
|
||||
ByTrain = 4,
|
||||
ByPlane = 8,
|
||||
ByShip = 16,
|
||||
}
|
18
Travel_Agency/Travel_Agency/Entities/Payment.cs
Normal file
18
Travel_Agency/Travel_Agency/Entities/Payment.cs
Normal file
@ -0,0 +1,18 @@
|
||||
|
||||
namespace Travel_Agency.Entities;
|
||||
public class Payment
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
public int Sum { get; private set; } = 0;
|
||||
public int ClientId { get; private set; }
|
||||
public DateTime Date { get; private set; }
|
||||
public static Payment CreateOperation(int id, int sum, int clientId)
|
||||
{
|
||||
return new Payment {
|
||||
Id = id,
|
||||
Sum = sum,
|
||||
ClientId = clientId,
|
||||
Date = DateTime.Now
|
||||
};
|
||||
}
|
||||
}
|
23
Travel_Agency/Travel_Agency/Entities/Route.cs
Normal file
23
Travel_Agency/Travel_Agency/Entities/Route.cs
Normal file
@ -0,0 +1,23 @@
|
||||
|
||||
namespace Travel_Agency.Entities;
|
||||
public class Route
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
public int Rating { get; private set; } = 0;
|
||||
public string Places { get; private set; } = string.Empty;
|
||||
public int Price { get; private set; } = 0;
|
||||
public int TourId { get; private set; }
|
||||
public static Route CreateEntity(int id, string name, int rating, string places, int price, int tourId)
|
||||
{
|
||||
return new Route
|
||||
{
|
||||
Id = id,
|
||||
Name = name,
|
||||
Rating = rating,
|
||||
Places = places,
|
||||
Price = price,
|
||||
TourId = tourId
|
||||
};
|
||||
}
|
||||
}
|
22
Travel_Agency/Travel_Agency/Entities/Tour.cs
Normal file
22
Travel_Agency/Travel_Agency/Entities/Tour.cs
Normal file
@ -0,0 +1,22 @@
|
||||
|
||||
using Travel_Agency.Entities.Enums;
|
||||
|
||||
namespace Travel_Agency.Entities;
|
||||
|
||||
public class Tour
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
public TypeOfTour TypeOfTour { get; private set; }
|
||||
public int Price { get; private set; } = 0;
|
||||
public static Tour CreateEntity(int id, string name, TypeOfTour typeOfTour, int price)
|
||||
{
|
||||
return new Tour
|
||||
{
|
||||
Id = id,
|
||||
Name = name,
|
||||
TypeOfTour = typeOfTour,
|
||||
Price = price
|
||||
};
|
||||
}
|
||||
}
|
39
Travel_Agency/Travel_Agency/Form1.Designer.cs
generated
39
Travel_Agency/Travel_Agency/Form1.Designer.cs
generated
@ -1,39 +0,0 @@
|
||||
namespace Travel_Agency
|
||||
{
|
||||
partial class Form1
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(800, 450);
|
||||
this.Text = "Form1";
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
namespace Travel_Agency
|
||||
{
|
||||
public partial class Form1 : Form
|
||||
{
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
138
Travel_Agency/Travel_Agency/FormTravel_Agency.Designer.cs
generated
Normal file
138
Travel_Agency/Travel_Agency/FormTravel_Agency.Designer.cs
generated
Normal file
@ -0,0 +1,138 @@
|
||||
namespace Travel_Agency
|
||||
{
|
||||
partial class FormTravel_Agency
|
||||
{
|
||||
/// <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()
|
||||
{
|
||||
menuStrip = new MenuStrip();
|
||||
справочникиToolStripMenuItem = new ToolStripMenuItem();
|
||||
ClientsToolStripMenuItem = new ToolStripMenuItem();
|
||||
ToursToolStripMenuItem = new ToolStripMenuItem();
|
||||
RoutesToolStripMenuItem = new ToolStripMenuItem();
|
||||
операцииToolStripMenuItem = new ToolStripMenuItem();
|
||||
ContractToolStripMenuItem = new ToolStripMenuItem();
|
||||
PaymentToolStripMenuItem = new ToolStripMenuItem();
|
||||
отчётыToolStripMenuItem = new ToolStripMenuItem();
|
||||
menuStrip.SuspendLayout();
|
||||
SuspendLayout();
|
||||
//
|
||||
// menuStrip
|
||||
//
|
||||
menuStrip.ImageScalingSize = new Size(20, 20);
|
||||
menuStrip.Items.AddRange(new ToolStripItem[] { справочникиToolStripMenuItem, операцииToolStripMenuItem, отчётыToolStripMenuItem });
|
||||
menuStrip.Location = new Point(0, 0);
|
||||
menuStrip.Name = "menuStrip";
|
||||
menuStrip.Size = new Size(782, 28);
|
||||
menuStrip.TabIndex = 0;
|
||||
menuStrip.Text = "menuStrip";
|
||||
//
|
||||
// справочникиToolStripMenuItem
|
||||
//
|
||||
справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { ClientsToolStripMenuItem, ToursToolStripMenuItem, RoutesToolStripMenuItem });
|
||||
справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem";
|
||||
справочникиToolStripMenuItem.Size = new Size(117, 24);
|
||||
справочникиToolStripMenuItem.Text = "Справочники";
|
||||
//
|
||||
// ClientsToolStripMenuItem
|
||||
//
|
||||
ClientsToolStripMenuItem.Name = "ClientsToolStripMenuItem";
|
||||
ClientsToolStripMenuItem.Size = new Size(167, 26);
|
||||
ClientsToolStripMenuItem.Text = "Клиенты";
|
||||
ClientsToolStripMenuItem.Click += ClientsToolStripMenuItem_Click;
|
||||
//
|
||||
// ToursToolStripMenuItem
|
||||
//
|
||||
ToursToolStripMenuItem.Name = "ToursToolStripMenuItem";
|
||||
ToursToolStripMenuItem.Size = new Size(167, 26);
|
||||
ToursToolStripMenuItem.Text = "Туры";
|
||||
ToursToolStripMenuItem.Click += ToursToolStripMenuItem_Click;
|
||||
//
|
||||
// RoutesToolStripMenuItem
|
||||
//
|
||||
RoutesToolStripMenuItem.Name = "RoutesToolStripMenuItem";
|
||||
RoutesToolStripMenuItem.Size = new Size(167, 26);
|
||||
RoutesToolStripMenuItem.Text = "Маршруты";
|
||||
RoutesToolStripMenuItem.Click += RoutesToolStripMenuItem_Click;
|
||||
//
|
||||
// операцииToolStripMenuItem
|
||||
//
|
||||
операцииToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { ContractToolStripMenuItem, PaymentToolStripMenuItem });
|
||||
операцииToolStripMenuItem.Name = "операцииToolStripMenuItem";
|
||||
операцииToolStripMenuItem.Size = new Size(95, 24);
|
||||
операцииToolStripMenuItem.Text = "Операции";
|
||||
//
|
||||
// ContractToolStripMenuItem
|
||||
//
|
||||
ContractToolStripMenuItem.Name = "ContractToolStripMenuItem";
|
||||
ContractToolStripMenuItem.Size = new Size(254, 26);
|
||||
ContractToolStripMenuItem.Text = "Оформление договора";
|
||||
ContractToolStripMenuItem.Click += ContractToolStripMenuItem_Click;
|
||||
//
|
||||
// PaymentToolStripMenuItem
|
||||
//
|
||||
PaymentToolStripMenuItem.Name = "PaymentToolStripMenuItem";
|
||||
PaymentToolStripMenuItem.Size = new Size(254, 26);
|
||||
PaymentToolStripMenuItem.Text = "Оплата";
|
||||
PaymentToolStripMenuItem.Click += PaymentToolStripMenuItem_Click;
|
||||
//
|
||||
// отчётыToolStripMenuItem
|
||||
//
|
||||
отчётыToolStripMenuItem.Name = "отчётыToolStripMenuItem";
|
||||
отчётыToolStripMenuItem.Size = new Size(73, 24);
|
||||
отчётыToolStripMenuItem.Text = "Отчёты";
|
||||
//
|
||||
// FormTravel_Agency
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
BackgroundImage = Properties.Resources.Picture_Travel_Agency;
|
||||
BackgroundImageLayout = ImageLayout.Stretch;
|
||||
ClientSize = new Size(782, 403);
|
||||
Controls.Add(menuStrip);
|
||||
MainMenuStrip = menuStrip;
|
||||
Name = "FormTravel_Agency";
|
||||
StartPosition = FormStartPosition.CenterScreen;
|
||||
Text = "Туристическое агенство";
|
||||
menuStrip.ResumeLayout(false);
|
||||
menuStrip.PerformLayout();
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private MenuStrip menuStrip;
|
||||
private ToolStripMenuItem справочникиToolStripMenuItem;
|
||||
private ToolStripMenuItem ClientsToolStripMenuItem;
|
||||
private ToolStripMenuItem ToursToolStripMenuItem;
|
||||
private ToolStripMenuItem RoutesToolStripMenuItem;
|
||||
private ToolStripMenuItem операцииToolStripMenuItem;
|
||||
private ToolStripMenuItem ContractToolStripMenuItem;
|
||||
private ToolStripMenuItem PaymentToolStripMenuItem;
|
||||
private ToolStripMenuItem отчётыToolStripMenuItem;
|
||||
}
|
||||
}
|
82
Travel_Agency/Travel_Agency/FormTravel_Agency.cs
Normal file
82
Travel_Agency/Travel_Agency/FormTravel_Agency.cs
Normal file
@ -0,0 +1,82 @@
|
||||
|
||||
using Travel_Agency.Forms;
|
||||
using Unity;
|
||||
|
||||
namespace Travel_Agency
|
||||
{
|
||||
public partial class FormTravel_Agency : Form
|
||||
{
|
||||
private readonly IUnityContainer _container;
|
||||
public FormTravel_Agency(IUnityContainer container)
|
||||
{
|
||||
InitializeComponent();
|
||||
_container = container ??
|
||||
throw new ArgumentNullException(nameof(container));
|
||||
}
|
||||
|
||||
private void ClientsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormClients>().ShowDialog();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ToursToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormTours>().ShowDialog();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void RoutesToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormRoutes>().ShowDialog();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ContractToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormContracts>().ShowDialog();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void PaymentToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormPayments>().ShowDialog();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
123
Travel_Agency/Travel_Agency/FormTravel_Agency.resx
Normal file
123
Travel_Agency/Travel_Agency/FormTravel_Agency.resx
Normal file
@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
141
Travel_Agency/Travel_Agency/Forms/FormClient.Designer.cs
generated
Normal file
141
Travel_Agency/Travel_Agency/Forms/FormClient.Designer.cs
generated
Normal file
@ -0,0 +1,141 @@
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
partial class FormClient
|
||||
{
|
||||
/// <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()
|
||||
{
|
||||
comboBoxPosition = new ComboBox();
|
||||
labelName = new Label();
|
||||
labelPosition = new Label();
|
||||
labelPassport = new Label();
|
||||
textBoxName = new TextBox();
|
||||
textBoxPassport = new TextBox();
|
||||
ButtonSave = new Button();
|
||||
ButtonCencel = new Button();
|
||||
SuspendLayout();
|
||||
//
|
||||
// comboBoxPosition
|
||||
//
|
||||
comboBoxPosition.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
comboBoxPosition.FormattingEnabled = true;
|
||||
comboBoxPosition.Location = new Point(250, 113);
|
||||
comboBoxPosition.Name = "comboBoxPosition";
|
||||
comboBoxPosition.Size = new Size(194, 28);
|
||||
comboBoxPosition.TabIndex = 0;
|
||||
//
|
||||
// labelName
|
||||
//
|
||||
labelName.AutoSize = true;
|
||||
labelName.Location = new Point(50, 50);
|
||||
labelName.Name = "labelName";
|
||||
labelName.Size = new Size(117, 20);
|
||||
labelName.TabIndex = 1;
|
||||
labelName.Text = "Ф.И.О. клиента :";
|
||||
//
|
||||
// labelPosition
|
||||
//
|
||||
labelPosition.AutoSize = true;
|
||||
labelPosition.Location = new Point(50, 113);
|
||||
labelPosition.Name = "labelPosition";
|
||||
labelPosition.Size = new Size(181, 20);
|
||||
labelPosition.TabIndex = 2;
|
||||
labelPosition.Text = "Положение в обществе :";
|
||||
//
|
||||
// labelPassport
|
||||
//
|
||||
labelPassport.AutoSize = true;
|
||||
labelPassport.Location = new Point(50, 184);
|
||||
labelPassport.Name = "labelPassport";
|
||||
labelPassport.Size = new Size(160, 20);
|
||||
labelPassport.TabIndex = 3;
|
||||
labelPassport.Text = "Паспортные данные :";
|
||||
//
|
||||
// textBoxName
|
||||
//
|
||||
textBoxName.Location = new Point(250, 50);
|
||||
textBoxName.Name = "textBoxName";
|
||||
textBoxName.Size = new Size(194, 27);
|
||||
textBoxName.TabIndex = 4;
|
||||
//
|
||||
// textBoxPassport
|
||||
//
|
||||
textBoxPassport.Location = new Point(250, 177);
|
||||
textBoxPassport.Name = "textBoxPassport";
|
||||
textBoxPassport.Size = new Size(194, 27);
|
||||
textBoxPassport.TabIndex = 5;
|
||||
//
|
||||
// ButtonSave
|
||||
//
|
||||
ButtonSave.Location = new Point(73, 269);
|
||||
ButtonSave.Name = "ButtonSave";
|
||||
ButtonSave.Size = new Size(94, 29);
|
||||
ButtonSave.TabIndex = 6;
|
||||
ButtonSave.Text = "Сохранить";
|
||||
ButtonSave.UseVisualStyleBackColor = true;
|
||||
ButtonSave.Click += ButtonSave_Click;
|
||||
//
|
||||
// ButtonCencel
|
||||
//
|
||||
ButtonCencel.Location = new Point(291, 269);
|
||||
ButtonCencel.Name = "ButtonCencel";
|
||||
ButtonCencel.Size = new Size(94, 29);
|
||||
ButtonCencel.TabIndex = 7;
|
||||
ButtonCencel.Text = "Отмена";
|
||||
ButtonCencel.UseVisualStyleBackColor = true;
|
||||
ButtonCencel.Click += ButtonCencel_Click;
|
||||
//
|
||||
// FormClient
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(479, 323);
|
||||
Controls.Add(ButtonCencel);
|
||||
Controls.Add(ButtonSave);
|
||||
Controls.Add(textBoxPassport);
|
||||
Controls.Add(textBoxName);
|
||||
Controls.Add(labelPassport);
|
||||
Controls.Add(labelPosition);
|
||||
Controls.Add(labelName);
|
||||
Controls.Add(comboBoxPosition);
|
||||
Name = "FormClient";
|
||||
Text = "Клиент";
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private ComboBox comboBoxPosition;
|
||||
private Label labelName;
|
||||
private Label labelPosition;
|
||||
private Label labelPassport;
|
||||
private TextBox textBoxName;
|
||||
private TextBox textBoxPassport;
|
||||
private Button ButtonSave;
|
||||
private Button ButtonCencel;
|
||||
}
|
||||
}
|
83
Travel_Agency/Travel_Agency/Forms/FormClient.cs
Normal file
83
Travel_Agency/Travel_Agency/Forms/FormClient.cs
Normal file
@ -0,0 +1,83 @@
|
||||
|
||||
using Travel_Agency.Entities;
|
||||
using Travel_Agency.Entities.Enums;
|
||||
using Travel_Agency.Repositories;
|
||||
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
public partial class FormClient : Form
|
||||
{
|
||||
private readonly IClientRepository _clientRepository;
|
||||
|
||||
private int? _clientId;
|
||||
|
||||
public int Id
|
||||
{
|
||||
set
|
||||
{
|
||||
try
|
||||
{
|
||||
var client =
|
||||
_clientRepository.ReadClientById(value);
|
||||
if (client == null)
|
||||
{
|
||||
throw new
|
||||
InvalidDataException(nameof(client));
|
||||
}
|
||||
textBoxName.Text = client.Name;
|
||||
textBoxPassport.Text = client.PassportDetails;
|
||||
comboBoxPosition.SelectedItem =
|
||||
client.PositionInSociety;
|
||||
_clientId = value;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
public FormClient(IClientRepository clientRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_clientRepository = clientRepository ??
|
||||
throw new
|
||||
ArgumentNullException(nameof(clientRepository));
|
||||
comboBoxPosition.DataSource =
|
||||
Enum.GetValues(typeof(PositionInSociety));
|
||||
}
|
||||
|
||||
private void ButtonSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(textBoxName.Text) ||
|
||||
string.IsNullOrWhiteSpace(textBoxPassport.Text)
|
||||
||
|
||||
comboBoxPosition.SelectedIndex < 1)
|
||||
{
|
||||
throw new Exception("Имеются незаполненные поля");
|
||||
}
|
||||
if (_clientId.HasValue)
|
||||
{
|
||||
_clientRepository.UpdateClient(CreateClient(_clientId.Value));
|
||||
}
|
||||
else
|
||||
{
|
||||
_clientRepository.CreateClient(CreateClient(0));
|
||||
}
|
||||
Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при сохранении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonCencel_Click(object sender, EventArgs e) => Close();
|
||||
|
||||
private Client CreateClient(int id) => Client.CreateEntity(id, textBoxName.Text, textBoxPassport.Text,
|
||||
(PositionInSociety)comboBoxPosition.SelectedItem!);
|
||||
}
|
||||
}
|
@ -1,17 +1,17 @@
|
||||
<?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
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
@ -26,36 +26,36 @@
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
128
Travel_Agency/Travel_Agency/Forms/FormClients.Designer.cs
generated
Normal file
128
Travel_Agency/Travel_Agency/Forms/FormClients.Designer.cs
generated
Normal file
@ -0,0 +1,128 @@
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
partial class FormClients
|
||||
{
|
||||
/// <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(FormClients));
|
||||
panel1 = new Panel();
|
||||
ButtonDel = new Button();
|
||||
ButtonUpd = new Button();
|
||||
ButtonAdd = new Button();
|
||||
dataGridView = new DataGridView();
|
||||
panel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.Controls.Add(ButtonDel);
|
||||
panel1.Controls.Add(ButtonUpd);
|
||||
panel1.Controls.Add(ButtonAdd);
|
||||
panel1.Dock = DockStyle.Right;
|
||||
panel1.Location = new Point(651, 0);
|
||||
panel1.Name = "panel1";
|
||||
panel1.Size = new Size(149, 450);
|
||||
panel1.TabIndex = 1;
|
||||
//
|
||||
// ButtonDel
|
||||
//
|
||||
ButtonDel.BackgroundImage = (Image)resources.GetObject("ButtonDel.BackgroundImage");
|
||||
ButtonDel.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
ButtonDel.Location = new Point(55, 213);
|
||||
ButtonDel.Name = "ButtonDel";
|
||||
ButtonDel.Size = new Size(65, 59);
|
||||
ButtonDel.TabIndex = 2;
|
||||
ButtonDel.UseVisualStyleBackColor = true;
|
||||
ButtonDel.Click += ButtonDel_Click;
|
||||
//
|
||||
// ButtonUpd
|
||||
//
|
||||
ButtonUpd.BackgroundImage = (Image)resources.GetObject("ButtonUpd.BackgroundImage");
|
||||
ButtonUpd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
ButtonUpd.Location = new Point(55, 121);
|
||||
ButtonUpd.Name = "ButtonUpd";
|
||||
ButtonUpd.Size = new Size(65, 59);
|
||||
ButtonUpd.TabIndex = 1;
|
||||
ButtonUpd.UseVisualStyleBackColor = true;
|
||||
ButtonUpd.Click += ButtonUpd_Click;
|
||||
//
|
||||
// ButtonAdd
|
||||
//
|
||||
ButtonAdd.BackgroundImage = (Image)resources.GetObject("ButtonAdd.BackgroundImage");
|
||||
ButtonAdd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
ButtonAdd.Location = new Point(55, 32);
|
||||
ButtonAdd.Name = "ButtonAdd";
|
||||
ButtonAdd.Size = new Size(65, 59);
|
||||
ButtonAdd.TabIndex = 0;
|
||||
ButtonAdd.UseVisualStyleBackColor = true;
|
||||
ButtonAdd.Click += ButtonAdd_Click;
|
||||
//
|
||||
// dataGridView
|
||||
//
|
||||
dataGridView.AllowUserToAddRows = false;
|
||||
dataGridView.AllowUserToDeleteRows = false;
|
||||
dataGridView.AllowUserToResizeColumns = false;
|
||||
dataGridView.AllowUserToResizeRows = false;
|
||||
dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
||||
dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
dataGridView.Dock = DockStyle.Fill;
|
||||
dataGridView.Location = new Point(0, 0);
|
||||
dataGridView.MultiSelect = false;
|
||||
dataGridView.Name = "dataGridView";
|
||||
dataGridView.ReadOnly = true;
|
||||
dataGridView.RowHeadersVisible = false;
|
||||
dataGridView.RowHeadersWidth = 51;
|
||||
dataGridView.RowTemplate.Height = 29;
|
||||
dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
|
||||
dataGridView.Size = new Size(651, 450);
|
||||
dataGridView.TabIndex = 2;
|
||||
//
|
||||
// FormClients
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(800, 450);
|
||||
Controls.Add(dataGridView);
|
||||
Controls.Add(panel1);
|
||||
Name = "FormClients";
|
||||
Text = "Клиенты";
|
||||
Load += FormClients_Load;
|
||||
panel1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Panel panel1;
|
||||
private Button ButtonDel;
|
||||
private Button ButtonUpd;
|
||||
private Button ButtonAdd;
|
||||
private DataGridView dataGridView;
|
||||
}
|
||||
}
|
105
Travel_Agency/Travel_Agency/Forms/FormClients.cs
Normal file
105
Travel_Agency/Travel_Agency/Forms/FormClients.cs
Normal file
@ -0,0 +1,105 @@
|
||||
|
||||
using Travel_Agency.Repositories;
|
||||
using Unity;
|
||||
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
public partial class FormClients : Form
|
||||
{
|
||||
private readonly IUnityContainer _container;
|
||||
|
||||
private readonly IClientRepository _clientRepository;
|
||||
public FormClients(IUnityContainer container, IClientRepository clientRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_container = container ??
|
||||
throw new ArgumentNullException(nameof(container));
|
||||
_clientRepository = clientRepository ??
|
||||
throw new ArgumentNullException(nameof(clientRepository));
|
||||
}
|
||||
|
||||
private void FormClients_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при загрузке",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonAdd_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormClient>().ShowDialog();
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при добавлении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonUpd_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectedRow(out var findId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
var form = _container.Resolve<FormClient>();
|
||||
form.Id = findId;
|
||||
form.ShowDialog();
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при изменении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonDel_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectedRow(out var findId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (MessageBox.Show("Удалить запись?", "Удаление",
|
||||
MessageBoxButtons.YesNo) != DialogResult.Yes)
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
_clientRepository.DeleteClientById(findId);
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при удалении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
private void LoadList() => dataGridView.DataSource = _clientRepository.ReadClients();
|
||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||
{
|
||||
id = 0;
|
||||
if (dataGridView.SelectedRows.Count < 1)
|
||||
{
|
||||
MessageBox.Show("Нет выбранной записи", "Ошибка",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return false;
|
||||
}
|
||||
id =
|
||||
Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
356
Travel_Agency/Travel_Agency/Forms/FormClients.resx
Normal file
356
Travel_Agency/Travel_Agency/Forms/FormClients.resx
Normal file
@ -0,0 +1,356 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="ButtonDel.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
UBMAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="ButtonUpd.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
Pv74YzkH4man7PPnz7/++usSY5Lly5evX79enmS2d+9eOQGiZ6fs2dnZrVu3So+aMK9xLztlq5Gd/qs0
|
||||
VWBe414WylbfPr777rt6y+buNe5joezff//90KFDkmTNevjbdkhioexLly49++yzDz30kLSZU1NTU3d3
|
||||
965du4aGhvgLYCjHQtk//PDDiy++KJ3m8eCDDz733HNvvvmmepO///67+G5AIgtlnzp16vHHH5daM3vq
|
||||
qad27tz51Vdfzc7OyhsB5VkoW43sFStWSLAZNDQ0qP9+9NFHZ8+elbcAKjFd9q1bt95+++1ishm9/PLL
|
||||
Kms5HsjGwjVbbWVpthI1rF999dUvv/xSjgQyM132999/v2nTJik31fr169XV/fLly3/++accDGRmtOw7
|
||||
d+5MTk6uXLlS4i2jqampvb3922+/vXbtmhwJ5GT6mv3WW29Jv+UdOHDg66+/lgOAqhgtu1Ao7Nu3r3iv
|
||||
I5FaIG+88Ya6tM/Pz8sxQFWMlv3rr7++8sorUvFSq1ev7ujo+OSTT7hdDS2Mlj0xMdHS0iIt36OxsVF9
|
||||
s/jjjz/euHFDXgrUxlzZamCMjIyU/pmldevWffDBBz/99JO8DtDBXNlqPb///vuS811dXV3Dw8PyCkAf
|
||||
c2WrpaE6XrZsWbHpJ5544vnnn7948SILBPVgruzF33189NFHV65cefz48dOnT8vnAN3MlT09PV28Wu/a
|
||||
teuLL76QjwL1Ya7so0ePbty4cffu3TMzM/IhoG4Mlf3HH3989913AwMDV65ckQ8B9WTumv3zzz9funRJ
|
||||
ngB1Zq5swCTKRpgoG2GibISJshEmykaYKBthomyEibIRooWF/wOJOuh6obV2FwAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="ButtonAdd.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
262
Travel_Agency/Travel_Agency/Forms/FormContract.Designer.cs
generated
Normal file
262
Travel_Agency/Travel_Agency/Forms/FormContract.Designer.cs
generated
Normal file
@ -0,0 +1,262 @@
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
partial class FormContract
|
||||
{
|
||||
/// <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()
|
||||
{
|
||||
ButtonSave = new Button();
|
||||
ButtonCancel = new Button();
|
||||
comboBoxClient = new ComboBox();
|
||||
labelClient = new Label();
|
||||
labelContractNumber = new Label();
|
||||
labelDiscount = new Label();
|
||||
labelTouristNumber = new Label();
|
||||
labelFinalPrice = new Label();
|
||||
numericUpDownContractNumber = new NumericUpDown();
|
||||
numericUpDownDiscount = new NumericUpDown();
|
||||
numericUpDownTouristNumber = new NumericUpDown();
|
||||
numericUpDownFinalPrice = new NumericUpDown();
|
||||
groupBoxTour = new GroupBox();
|
||||
dataGridViewTours = new DataGridView();
|
||||
ColumnTour = new DataGridViewComboBoxColumn();
|
||||
ColumnStartDate = new DataGridViewTextBoxColumn();
|
||||
ColumEndDate = new DataGridViewTextBoxColumn();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownContractNumber).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownDiscount).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownTouristNumber).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownFinalPrice).BeginInit();
|
||||
groupBoxTour.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewTours).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// ButtonSave
|
||||
//
|
||||
ButtonSave.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
|
||||
ButtonSave.Location = new Point(35, 401);
|
||||
ButtonSave.Name = "ButtonSave";
|
||||
ButtonSave.Size = new Size(94, 29);
|
||||
ButtonSave.TabIndex = 0;
|
||||
ButtonSave.Text = "Сохранить";
|
||||
ButtonSave.UseVisualStyleBackColor = true;
|
||||
ButtonSave.Click += ButtonSave_Click;
|
||||
//
|
||||
// ButtonCancel
|
||||
//
|
||||
ButtonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
|
||||
ButtonCancel.Location = new Point(214, 401);
|
||||
ButtonCancel.Name = "ButtonCancel";
|
||||
ButtonCancel.Size = new Size(94, 29);
|
||||
ButtonCancel.TabIndex = 1;
|
||||
ButtonCancel.Text = "Отмена";
|
||||
ButtonCancel.UseVisualStyleBackColor = true;
|
||||
ButtonCancel.Click += ButtonCancel_Click;
|
||||
//
|
||||
// comboBoxClient
|
||||
//
|
||||
comboBoxClient.FormattingEnabled = true;
|
||||
comboBoxClient.Location = new Point(211, 247);
|
||||
comboBoxClient.Name = "comboBoxClient";
|
||||
comboBoxClient.Size = new Size(151, 28);
|
||||
comboBoxClient.TabIndex = 7;
|
||||
//
|
||||
// labelClient
|
||||
//
|
||||
labelClient.AutoSize = true;
|
||||
labelClient.Location = new Point(37, 250);
|
||||
labelClient.Name = "labelClient";
|
||||
labelClient.Size = new Size(65, 20);
|
||||
labelClient.TabIndex = 6;
|
||||
labelClient.Text = "Клиент :";
|
||||
//
|
||||
// labelContractNumber
|
||||
//
|
||||
labelContractNumber.AutoSize = true;
|
||||
labelContractNumber.Location = new Point(37, 35);
|
||||
labelContractNumber.Name = "labelContractNumber";
|
||||
labelContractNumber.Size = new Size(134, 20);
|
||||
labelContractNumber.TabIndex = 8;
|
||||
labelContractNumber.Text = "Номер договора :";
|
||||
//
|
||||
// labelDiscount
|
||||
//
|
||||
labelDiscount.AutoSize = true;
|
||||
labelDiscount.Location = new Point(37, 87);
|
||||
labelDiscount.Name = "labelDiscount";
|
||||
labelDiscount.Size = new Size(92, 20);
|
||||
labelDiscount.TabIndex = 9;
|
||||
labelDiscount.Text = "Скидка в % :";
|
||||
//
|
||||
// labelTouristNumber
|
||||
//
|
||||
labelTouristNumber.AutoSize = true;
|
||||
labelTouristNumber.Location = new Point(37, 141);
|
||||
labelTouristNumber.Name = "labelTouristNumber";
|
||||
labelTouristNumber.Size = new Size(130, 20);
|
||||
labelTouristNumber.TabIndex = 10;
|
||||
labelTouristNumber.Text = "Кол-во туристов :";
|
||||
//
|
||||
// labelFinalPrice
|
||||
//
|
||||
labelFinalPrice.AutoSize = true;
|
||||
labelFinalPrice.Location = new Point(37, 192);
|
||||
labelFinalPrice.Name = "labelFinalPrice";
|
||||
labelFinalPrice.Size = new Size(132, 20);
|
||||
labelFinalPrice.TabIndex = 11;
|
||||
labelFinalPrice.Text = "Финальная цена :";
|
||||
//
|
||||
// numericUpDownContractNumber
|
||||
//
|
||||
numericUpDownContractNumber.Location = new Point(211, 33);
|
||||
numericUpDownContractNumber.Name = "numericUpDownContractNumber";
|
||||
numericUpDownContractNumber.Size = new Size(150, 27);
|
||||
numericUpDownContractNumber.TabIndex = 12;
|
||||
//
|
||||
// numericUpDownDiscount
|
||||
//
|
||||
numericUpDownDiscount.Location = new Point(211, 85);
|
||||
numericUpDownDiscount.Name = "numericUpDownDiscount";
|
||||
numericUpDownDiscount.Size = new Size(150, 27);
|
||||
numericUpDownDiscount.TabIndex = 13;
|
||||
//
|
||||
// numericUpDownTouristNumber
|
||||
//
|
||||
numericUpDownTouristNumber.Location = new Point(211, 139);
|
||||
numericUpDownTouristNumber.Maximum = new decimal(new int[] { 20, 0, 0, 0 });
|
||||
numericUpDownTouristNumber.Name = "numericUpDownTouristNumber";
|
||||
numericUpDownTouristNumber.Size = new Size(150, 27);
|
||||
numericUpDownTouristNumber.TabIndex = 14;
|
||||
//
|
||||
// numericUpDownFinalPrice
|
||||
//
|
||||
numericUpDownFinalPrice.Location = new Point(211, 190);
|
||||
numericUpDownFinalPrice.Maximum = new decimal(new int[] { 200000, 0, 0, 0 });
|
||||
numericUpDownFinalPrice.Name = "numericUpDownFinalPrice";
|
||||
numericUpDownFinalPrice.Size = new Size(150, 27);
|
||||
numericUpDownFinalPrice.TabIndex = 15;
|
||||
//
|
||||
// groupBoxTour
|
||||
//
|
||||
groupBoxTour.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
|
||||
groupBoxTour.Controls.Add(dataGridViewTours);
|
||||
groupBoxTour.Location = new Point(403, 33);
|
||||
groupBoxTour.Name = "groupBoxTour";
|
||||
groupBoxTour.Size = new Size(463, 428);
|
||||
groupBoxTour.TabIndex = 16;
|
||||
groupBoxTour.TabStop = false;
|
||||
groupBoxTour.Text = "Туры";
|
||||
//
|
||||
// dataGridViewTours
|
||||
//
|
||||
dataGridViewTours.AllowUserToResizeColumns = false;
|
||||
dataGridViewTours.AllowUserToResizeRows = false;
|
||||
dataGridViewTours.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
dataGridViewTours.Columns.AddRange(new DataGridViewColumn[] { ColumnTour, ColumnStartDate, ColumEndDate });
|
||||
dataGridViewTours.Dock = DockStyle.Fill;
|
||||
dataGridViewTours.Location = new Point(3, 23);
|
||||
dataGridViewTours.MultiSelect = false;
|
||||
dataGridViewTours.Name = "dataGridViewTours";
|
||||
dataGridViewTours.RowHeadersVisible = false;
|
||||
dataGridViewTours.RowHeadersWidth = 51;
|
||||
dataGridViewTours.RowTemplate.Height = 29;
|
||||
dataGridViewTours.Size = new Size(457, 402);
|
||||
dataGridViewTours.StandardTab = true;
|
||||
dataGridViewTours.TabIndex = 0;
|
||||
//
|
||||
// ColumnTour
|
||||
//
|
||||
ColumnTour.HeaderText = "Тур";
|
||||
ColumnTour.MinimumWidth = 6;
|
||||
ColumnTour.Name = "ColumnTour";
|
||||
ColumnTour.Width = 200;
|
||||
//
|
||||
// ColumnStartDate
|
||||
//
|
||||
ColumnStartDate.HeaderText = "Дата начала путишествия";
|
||||
ColumnStartDate.MinimumWidth = 6;
|
||||
ColumnStartDate.Name = "ColumnStartDate";
|
||||
ColumnStartDate.Resizable = DataGridViewTriState.True;
|
||||
ColumnStartDate.Width = 125;
|
||||
//
|
||||
// ColumEndDate
|
||||
//
|
||||
ColumEndDate.HeaderText = "Дата конца путешествия";
|
||||
ColumEndDate.MinimumWidth = 6;
|
||||
ColumEndDate.Name = "ColumEndDate";
|
||||
ColumEndDate.Width = 125;
|
||||
//
|
||||
// FormContract
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(897, 496);
|
||||
Controls.Add(groupBoxTour);
|
||||
Controls.Add(numericUpDownFinalPrice);
|
||||
Controls.Add(numericUpDownTouristNumber);
|
||||
Controls.Add(numericUpDownDiscount);
|
||||
Controls.Add(numericUpDownContractNumber);
|
||||
Controls.Add(labelFinalPrice);
|
||||
Controls.Add(labelTouristNumber);
|
||||
Controls.Add(labelDiscount);
|
||||
Controls.Add(labelContractNumber);
|
||||
Controls.Add(comboBoxClient);
|
||||
Controls.Add(labelClient);
|
||||
Controls.Add(ButtonCancel);
|
||||
Controls.Add(ButtonSave);
|
||||
Name = "FormContract";
|
||||
StartPosition = FormStartPosition.CenterParent;
|
||||
Text = "Контракт";
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownContractNumber).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownDiscount).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownTouristNumber).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownFinalPrice).EndInit();
|
||||
groupBoxTour.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewTours).EndInit();
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Button ButtonSave;
|
||||
private Button ButtonCancel;
|
||||
private ComboBox comboBoxClient;
|
||||
private Label labelClient;
|
||||
private Label labelContractNumber;
|
||||
private Label labelDiscount;
|
||||
private Label labelTouristNumber;
|
||||
private Label labelFinalPrice;
|
||||
private NumericUpDown numericUpDownContractNumber;
|
||||
private NumericUpDown numericUpDownDiscount;
|
||||
private NumericUpDown numericUpDownTouristNumber;
|
||||
private NumericUpDown numericUpDownFinalPrice;
|
||||
private GroupBox groupBoxTour;
|
||||
private DataGridView dataGridViewTours;
|
||||
private DataGridViewComboBoxColumn ColumnTour;
|
||||
private DataGridViewTextBoxColumn ColumnStartDate;
|
||||
private DataGridViewTextBoxColumn ColumEndDate;
|
||||
}
|
||||
}
|
69
Travel_Agency/Travel_Agency/Forms/FormContract.cs
Normal file
69
Travel_Agency/Travel_Agency/Forms/FormContract.cs
Normal file
@ -0,0 +1,69 @@
|
||||
|
||||
using Travel_Agency.Entities;
|
||||
using Travel_Agency.Repositories;
|
||||
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
public partial class FormContract : Form
|
||||
{
|
||||
private readonly IContractRepository _contractRepository;
|
||||
public FormContract(IContractRepository contractRepository, IClientRepository clientRepository, ITourRepository tourRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_contractRepository = contractRepository ??
|
||||
throw new ArgumentNullException(nameof(contractRepository));
|
||||
comboBoxClient.DataSource = clientRepository.ReadClients();
|
||||
comboBoxClient.DisplayMember = "Name";
|
||||
comboBoxClient.ValueMember = "Id";
|
||||
ColumnTour.DataSource = tourRepository.ReadTours();
|
||||
ColumnTour.DisplayMember = "Name";
|
||||
ColumnTour.ValueMember = "Id";
|
||||
}
|
||||
|
||||
private void ButtonSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (dataGridViewTours.RowCount < 1 ||
|
||||
comboBoxClient.SelectedIndex < 0 || numericUpDownContractNumber.Value == 0 || numericUpDownDiscount.Value == 0 ||
|
||||
numericUpDownFinalPrice.Value == 0 || numericUpDownTouristNumber.Value == 0)
|
||||
{
|
||||
throw new Exception("Имеются незаполненные поля");
|
||||
}
|
||||
_contractRepository.CreateContract(Contract.CreateOperation(0,
|
||||
Convert.ToInt32(numericUpDownContractNumber.Value),
|
||||
Convert.ToInt32(numericUpDownDiscount.Value),
|
||||
Convert.ToInt32(numericUpDownTouristNumber.Value),
|
||||
Convert.ToInt32(numericUpDownFinalPrice.Value),
|
||||
(int)comboBoxClient.SelectedValue!,
|
||||
CreateListContract_TourFromDataGrid()));
|
||||
Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при сохранении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonCancel_Click(object sender, EventArgs e) => Close();
|
||||
private List<Contract_Tour> CreateListContract_TourFromDataGrid()
|
||||
{
|
||||
var list = new List<Contract_Tour>();
|
||||
foreach (DataGridViewRow row in dataGridViewTours.Rows)
|
||||
{
|
||||
if (row.Cells["ColumnTour"].Value == null ||
|
||||
row.Cells["ColumnPrice"].Value == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
list.Add(Contract_Tour.CreateElement(0,
|
||||
Convert.ToInt32(row.Cells["ColumnTour"].Value),
|
||||
row.Cells["ColumnStartDate"].Value.ToString(),
|
||||
row.Cells["ColumnEndDate"].Value.ToString()
|
||||
));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
129
Travel_Agency/Travel_Agency/Forms/FormContract.resx
Normal file
129
Travel_Agency/Travel_Agency/Forms/FormContract.resx
Normal file
@ -0,0 +1,129 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="ColumnTour.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ColumnStartDate.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ColumEndDate.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
115
Travel_Agency/Travel_Agency/Forms/FormContracts.Designer.cs
generated
Normal file
115
Travel_Agency/Travel_Agency/Forms/FormContracts.Designer.cs
generated
Normal file
@ -0,0 +1,115 @@
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
partial class FormContracts
|
||||
{
|
||||
/// <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(FormContracts));
|
||||
panel1 = new Panel();
|
||||
ButtonDel = new Button();
|
||||
ButtonAdd = new Button();
|
||||
dataGridView = new DataGridView();
|
||||
panel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.Controls.Add(ButtonDel);
|
||||
panel1.Controls.Add(ButtonAdd);
|
||||
panel1.Dock = DockStyle.Right;
|
||||
panel1.Location = new Point(651, 0);
|
||||
panel1.Name = "panel1";
|
||||
panel1.Size = new Size(149, 450);
|
||||
panel1.TabIndex = 3;
|
||||
//
|
||||
// ButtonDel
|
||||
//
|
||||
ButtonDel.BackgroundImage = (Image)resources.GetObject("ButtonDel.BackgroundImage");
|
||||
ButtonDel.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
ButtonDel.Location = new Point(42, 169);
|
||||
ButtonDel.Name = "ButtonDel";
|
||||
ButtonDel.Size = new Size(65, 59);
|
||||
ButtonDel.TabIndex = 5;
|
||||
ButtonDel.UseVisualStyleBackColor = true;
|
||||
ButtonDel.Click += ButtonDel_Click;
|
||||
//
|
||||
// ButtonAdd
|
||||
//
|
||||
ButtonAdd.BackgroundImage = (Image)resources.GetObject("ButtonAdd.BackgroundImage");
|
||||
ButtonAdd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
ButtonAdd.Location = new Point(42, 38);
|
||||
ButtonAdd.Name = "ButtonAdd";
|
||||
ButtonAdd.Size = new Size(65, 59);
|
||||
ButtonAdd.TabIndex = 3;
|
||||
ButtonAdd.UseVisualStyleBackColor = true;
|
||||
ButtonAdd.Click += ButtonAdd_Click;
|
||||
//
|
||||
// dataGridView
|
||||
//
|
||||
dataGridView.AllowUserToAddRows = false;
|
||||
dataGridView.AllowUserToDeleteRows = false;
|
||||
dataGridView.AllowUserToResizeColumns = false;
|
||||
dataGridView.AllowUserToResizeRows = false;
|
||||
dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
||||
dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
dataGridView.Dock = DockStyle.Fill;
|
||||
dataGridView.Location = new Point(0, 0);
|
||||
dataGridView.MultiSelect = false;
|
||||
dataGridView.Name = "dataGridView";
|
||||
dataGridView.ReadOnly = true;
|
||||
dataGridView.RowHeadersVisible = false;
|
||||
dataGridView.RowHeadersWidth = 51;
|
||||
dataGridView.RowTemplate.Height = 29;
|
||||
dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
|
||||
dataGridView.Size = new Size(651, 450);
|
||||
dataGridView.TabIndex = 4;
|
||||
//
|
||||
// FormContracts
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(800, 450);
|
||||
Controls.Add(dataGridView);
|
||||
Controls.Add(panel1);
|
||||
Name = "FormContracts";
|
||||
StartPosition = FormStartPosition.CenterParent;
|
||||
Text = "Договоры";
|
||||
Load += FormContracts_Load;
|
||||
panel1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Panel panel1;
|
||||
private DataGridView dataGridView;
|
||||
private Button ButtonDel;
|
||||
private Button ButtonAdd;
|
||||
}
|
||||
}
|
88
Travel_Agency/Travel_Agency/Forms/FormContracts.cs
Normal file
88
Travel_Agency/Travel_Agency/Forms/FormContracts.cs
Normal file
@ -0,0 +1,88 @@
|
||||
|
||||
using Travel_Agency.Repositories;
|
||||
using Unity;
|
||||
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
public partial class FormContracts : Form
|
||||
{
|
||||
private readonly IUnityContainer _container;
|
||||
private readonly IContractRepository _contractRepository;
|
||||
public FormContracts(IUnityContainer container, IContractRepository contractRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_container = container ??
|
||||
throw new ArgumentNullException(nameof(container));
|
||||
_contractRepository = contractRepository ??
|
||||
throw new ArgumentNullException(nameof(contractRepository));
|
||||
}
|
||||
|
||||
private void FormContracts_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при загрузке",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void LoadList() => dataGridView.DataSource = _contractRepository.ReadContracts();
|
||||
|
||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||
{
|
||||
id = 0;
|
||||
if (dataGridView.SelectedRows.Count < 1)
|
||||
{
|
||||
MessageBox.Show("Нет выбранной записи", "Ошибка",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return false;
|
||||
}
|
||||
id =
|
||||
Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
|
||||
return true;
|
||||
}
|
||||
|
||||
private void ButtonDel_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectedRow(out var findId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (MessageBox.Show("Удалить запись?", "Удаление",
|
||||
MessageBoxButtons.YesNo) != DialogResult.Yes)
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
_contractRepository.DeleteContract(findId);
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при удалении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonAdd_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormContract>().ShowDialog();
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при добавлении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
299
Travel_Agency/Travel_Agency/Forms/FormContracts.resx
Normal file
299
Travel_Agency/Travel_Agency/Forms/FormContracts.resx
Normal file
@ -0,0 +1,299 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="ButtonDel.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
UBMAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="ButtonAdd.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
121
Travel_Agency/Travel_Agency/Forms/FormPayment.Designer.cs
generated
Normal file
121
Travel_Agency/Travel_Agency/Forms/FormPayment.Designer.cs
generated
Normal file
@ -0,0 +1,121 @@
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
partial class FormPayment
|
||||
{
|
||||
/// <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()
|
||||
{
|
||||
labelSum = new Label();
|
||||
labelClient = new Label();
|
||||
ButtonSave = new Button();
|
||||
ButtonCencel = new Button();
|
||||
numericUpDownSum = new NumericUpDown();
|
||||
comboBoxClient = new ComboBox();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownSum).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// labelSum
|
||||
//
|
||||
labelSum.AutoSize = true;
|
||||
labelSum.Location = new Point(40, 43);
|
||||
labelSum.Name = "labelSum";
|
||||
labelSum.Size = new Size(117, 20);
|
||||
labelSum.TabIndex = 0;
|
||||
labelSum.Text = "Сумма оплаты :";
|
||||
//
|
||||
// labelClient
|
||||
//
|
||||
labelClient.AutoSize = true;
|
||||
labelClient.Location = new Point(40, 95);
|
||||
labelClient.Name = "labelClient";
|
||||
labelClient.Size = new Size(65, 20);
|
||||
labelClient.TabIndex = 1;
|
||||
labelClient.Text = "Клиент :";
|
||||
//
|
||||
// ButtonSave
|
||||
//
|
||||
ButtonSave.Location = new Point(48, 197);
|
||||
ButtonSave.Name = "ButtonSave";
|
||||
ButtonSave.Size = new Size(94, 29);
|
||||
ButtonSave.TabIndex = 2;
|
||||
ButtonSave.Text = "Сохранить";
|
||||
ButtonSave.UseVisualStyleBackColor = true;
|
||||
ButtonSave.Click += ButtonSave_Click;
|
||||
//
|
||||
// ButtonCencel
|
||||
//
|
||||
ButtonCencel.Location = new Point(211, 197);
|
||||
ButtonCencel.Name = "ButtonCencel";
|
||||
ButtonCencel.Size = new Size(94, 29);
|
||||
ButtonCencel.TabIndex = 3;
|
||||
ButtonCencel.Text = "Отмена";
|
||||
ButtonCencel.UseVisualStyleBackColor = true;
|
||||
ButtonCencel.Click += ButtonCencel_Click;
|
||||
//
|
||||
// numericUpDownSum
|
||||
//
|
||||
numericUpDownSum.Location = new Point(195, 36);
|
||||
numericUpDownSum.Maximum = new decimal(new int[] { 200000, 0, 0, 0 });
|
||||
numericUpDownSum.Name = "numericUpDownSum";
|
||||
numericUpDownSum.Size = new Size(150, 27);
|
||||
numericUpDownSum.TabIndex = 4;
|
||||
//
|
||||
// comboBoxClient
|
||||
//
|
||||
comboBoxClient.FormattingEnabled = true;
|
||||
comboBoxClient.Location = new Point(194, 92);
|
||||
comboBoxClient.Name = "comboBoxClient";
|
||||
comboBoxClient.Size = new Size(151, 28);
|
||||
comboBoxClient.TabIndex = 5;
|
||||
//
|
||||
// FormPayment
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(387, 254);
|
||||
Controls.Add(comboBoxClient);
|
||||
Controls.Add(numericUpDownSum);
|
||||
Controls.Add(ButtonCencel);
|
||||
Controls.Add(ButtonSave);
|
||||
Controls.Add(labelClient);
|
||||
Controls.Add(labelSum);
|
||||
Name = "FormPayment";
|
||||
Text = "Оплата";
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownSum).EndInit();
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label labelSum;
|
||||
private Label labelClient;
|
||||
private Button ButtonSave;
|
||||
private Button ButtonCencel;
|
||||
private NumericUpDown numericUpDownSum;
|
||||
private ComboBox comboBoxClient;
|
||||
}
|
||||
}
|
43
Travel_Agency/Travel_Agency/Forms/FormPayment.cs
Normal file
43
Travel_Agency/Travel_Agency/Forms/FormPayment.cs
Normal file
@ -0,0 +1,43 @@
|
||||
|
||||
using Travel_Agency.Entities;
|
||||
using Travel_Agency.Repositories;
|
||||
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
public partial class FormPayment : Form
|
||||
{
|
||||
private readonly IPaymentRepository _paymentRepository;
|
||||
public FormPayment(IClientRepository clientRepository, IPaymentRepository paymentRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_paymentRepository = paymentRepository ??
|
||||
throw new
|
||||
ArgumentNullException(nameof(paymentRepository));
|
||||
comboBoxClient.DataSource = clientRepository.ReadClients();
|
||||
comboBoxClient.DisplayMember = "Name";
|
||||
comboBoxClient.ValueMember = "Id";
|
||||
}
|
||||
|
||||
private void ButtonSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (comboBoxClient.SelectedIndex < 0 || numericUpDownSum.Value == 0)
|
||||
{
|
||||
throw new Exception("Имеются незаполненные поля");
|
||||
}
|
||||
_paymentRepository.CreatePayment(Payment.CreateOperation(0,
|
||||
(int)comboBoxClient.SelectedValue!,
|
||||
Convert.ToInt32(numericUpDownSum.Value)));
|
||||
Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при сохранении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonCencel_Click(object sender, EventArgs e) => Close();
|
||||
}
|
||||
}
|
120
Travel_Agency/Travel_Agency/Forms/FormPayment.resx
Normal file
120
Travel_Agency/Travel_Agency/Forms/FormPayment.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
100
Travel_Agency/Travel_Agency/Forms/FormPayments.Designer.cs
generated
Normal file
100
Travel_Agency/Travel_Agency/Forms/FormPayments.Designer.cs
generated
Normal file
@ -0,0 +1,100 @@
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
partial class FormPayments
|
||||
{
|
||||
/// <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(FormPayments));
|
||||
panel1 = new Panel();
|
||||
ButtonAdd = new Button();
|
||||
dataGridView = new DataGridView();
|
||||
panel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.Controls.Add(ButtonAdd);
|
||||
panel1.Dock = DockStyle.Right;
|
||||
panel1.Location = new Point(651, 0);
|
||||
panel1.Name = "panel1";
|
||||
panel1.Size = new Size(149, 388);
|
||||
panel1.TabIndex = 2;
|
||||
//
|
||||
// ButtonAdd
|
||||
//
|
||||
ButtonAdd.BackgroundImage = (Image)resources.GetObject("ButtonAdd.BackgroundImage");
|
||||
ButtonAdd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
ButtonAdd.Location = new Point(40, 30);
|
||||
ButtonAdd.Name = "ButtonAdd";
|
||||
ButtonAdd.Size = new Size(65, 59);
|
||||
ButtonAdd.TabIndex = 0;
|
||||
ButtonAdd.UseVisualStyleBackColor = true;
|
||||
ButtonAdd.Click += ButtonAdd_Click;
|
||||
//
|
||||
// dataGridView
|
||||
//
|
||||
dataGridView.AllowUserToAddRows = false;
|
||||
dataGridView.AllowUserToDeleteRows = false;
|
||||
dataGridView.AllowUserToResizeColumns = false;
|
||||
dataGridView.AllowUserToResizeRows = false;
|
||||
dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
||||
dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
dataGridView.Dock = DockStyle.Fill;
|
||||
dataGridView.Location = new Point(0, 0);
|
||||
dataGridView.MultiSelect = false;
|
||||
dataGridView.Name = "dataGridView";
|
||||
dataGridView.ReadOnly = true;
|
||||
dataGridView.RowHeadersVisible = false;
|
||||
dataGridView.RowHeadersWidth = 51;
|
||||
dataGridView.RowTemplate.Height = 29;
|
||||
dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
|
||||
dataGridView.Size = new Size(651, 388);
|
||||
dataGridView.TabIndex = 3;
|
||||
//
|
||||
// FormPayments
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(800, 388);
|
||||
Controls.Add(dataGridView);
|
||||
Controls.Add(panel1);
|
||||
Name = "FormPayments";
|
||||
Text = "FormPayments";
|
||||
Load += FormPayments_Load;
|
||||
panel1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Panel panel1;
|
||||
private Button ButtonAdd;
|
||||
private DataGridView dataGridView;
|
||||
}
|
||||
}
|
50
Travel_Agency/Travel_Agency/Forms/FormPayments.cs
Normal file
50
Travel_Agency/Travel_Agency/Forms/FormPayments.cs
Normal file
@ -0,0 +1,50 @@
|
||||
|
||||
using Travel_Agency.Repositories;
|
||||
using Unity;
|
||||
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
public partial class FormPayments : Form
|
||||
{
|
||||
private readonly IUnityContainer _container;
|
||||
private readonly IPaymentRepository _paymentRepository;
|
||||
public FormPayments(IUnityContainer container, IPaymentRepository paymentRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_container = container ??
|
||||
throw new ArgumentNullException(nameof(container));
|
||||
_paymentRepository = paymentRepository ??
|
||||
throw new ArgumentNullException(nameof(paymentRepository));
|
||||
}
|
||||
|
||||
|
||||
private void FormPayments_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при загрузке",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonAdd_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormPayment>().ShowDialog();
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при добавлении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadList() => dataGridView.DataSource = _paymentRepository.ReadPayments();
|
||||
}
|
||||
}
|
229
Travel_Agency/Travel_Agency/Forms/FormPayments.resx
Normal file
229
Travel_Agency/Travel_Agency/Forms/FormPayments.resx
Normal file
@ -0,0 +1,229 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="ButtonAdd.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
191
Travel_Agency/Travel_Agency/Forms/FormRoute.Designer.cs
generated
Normal file
191
Travel_Agency/Travel_Agency/Forms/FormRoute.Designer.cs
generated
Normal file
@ -0,0 +1,191 @@
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
partial class FormRoute
|
||||
{
|
||||
/// <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()
|
||||
{
|
||||
labelName = new Label();
|
||||
labelRating = new Label();
|
||||
labelPlaces = new Label();
|
||||
labelPrice = new Label();
|
||||
labelTourId = new Label();
|
||||
textBoxName = new TextBox();
|
||||
textBoxPlaces = new TextBox();
|
||||
numericUpDownRating = new NumericUpDown();
|
||||
numericUpDownPrice = new NumericUpDown();
|
||||
buttonSave = new Button();
|
||||
buttonCancel = new Button();
|
||||
comboBoxTour = new ComboBox();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownRating).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownPrice).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// labelName
|
||||
//
|
||||
labelName.AutoSize = true;
|
||||
labelName.Location = new Point(48, 52);
|
||||
labelName.Name = "labelName";
|
||||
labelName.Size = new Size(118, 20);
|
||||
labelName.TabIndex = 0;
|
||||
labelName.Text = "Название тура :";
|
||||
//
|
||||
// labelRating
|
||||
//
|
||||
labelRating.AutoSize = true;
|
||||
labelRating.Location = new Point(48, 116);
|
||||
labelRating.Name = "labelRating";
|
||||
labelRating.Size = new Size(145, 20);
|
||||
labelRating.TabIndex = 1;
|
||||
labelRating.Text = "Рейтинг маршрута :";
|
||||
//
|
||||
// labelPlaces
|
||||
//
|
||||
labelPlaces.AutoSize = true;
|
||||
labelPlaces.Location = new Point(48, 183);
|
||||
labelPlaces.Name = "labelPlaces";
|
||||
labelPlaces.Size = new Size(224, 20);
|
||||
labelPlaces.TabIndex = 2;
|
||||
labelPlaces.Text = "Места или города посещения :";
|
||||
//
|
||||
// labelPrice
|
||||
//
|
||||
labelPrice.AutoSize = true;
|
||||
labelPrice.Location = new Point(48, 245);
|
||||
labelPrice.Name = "labelPrice";
|
||||
labelPrice.Size = new Size(164, 20);
|
||||
labelPrice.TabIndex = 3;
|
||||
labelPrice.Text = "Стоимость маршрута :";
|
||||
//
|
||||
// labelTourId
|
||||
//
|
||||
labelTourId.AutoSize = true;
|
||||
labelTourId.Location = new Point(48, 311);
|
||||
labelTourId.Name = "labelTourId";
|
||||
labelTourId.Size = new Size(40, 20);
|
||||
labelTourId.TabIndex = 4;
|
||||
labelTourId.Text = "Тур :";
|
||||
//
|
||||
// textBoxName
|
||||
//
|
||||
textBoxName.Location = new Point(278, 45);
|
||||
textBoxName.Name = "textBoxName";
|
||||
textBoxName.Size = new Size(293, 27);
|
||||
textBoxName.TabIndex = 5;
|
||||
//
|
||||
// textBoxPlaces
|
||||
//
|
||||
textBoxPlaces.Location = new Point(278, 176);
|
||||
textBoxPlaces.Name = "textBoxPlaces";
|
||||
textBoxPlaces.Size = new Size(293, 27);
|
||||
textBoxPlaces.TabIndex = 6;
|
||||
//
|
||||
// numericUpDownRating
|
||||
//
|
||||
numericUpDownRating.Location = new Point(278, 109);
|
||||
numericUpDownRating.Name = "numericUpDownRating";
|
||||
numericUpDownRating.Size = new Size(293, 27);
|
||||
numericUpDownRating.TabIndex = 7;
|
||||
//
|
||||
// numericUpDownPrice
|
||||
//
|
||||
numericUpDownPrice.Location = new Point(278, 238);
|
||||
numericUpDownPrice.Maximum = new decimal(new int[] { 200000, 0, 0, 0 });
|
||||
numericUpDownPrice.Name = "numericUpDownPrice";
|
||||
numericUpDownPrice.Size = new Size(150, 27);
|
||||
numericUpDownPrice.TabIndex = 8;
|
||||
numericUpDownPrice.Value = new decimal(new int[] { 1, 0, 0, 131072 });
|
||||
//
|
||||
// buttonSave
|
||||
//
|
||||
buttonSave.Location = new Point(129, 372);
|
||||
buttonSave.Name = "buttonSave";
|
||||
buttonSave.Size = new Size(100, 41);
|
||||
buttonSave.TabIndex = 10;
|
||||
buttonSave.Text = "Сохранить";
|
||||
buttonSave.UseVisualStyleBackColor = true;
|
||||
buttonSave.Click += ButtonSave_Click;
|
||||
//
|
||||
// buttonCancel
|
||||
//
|
||||
buttonCancel.Location = new Point(383, 372);
|
||||
buttonCancel.Name = "buttonCancel";
|
||||
buttonCancel.Size = new Size(110, 41);
|
||||
buttonCancel.TabIndex = 11;
|
||||
buttonCancel.Text = "Отмена";
|
||||
buttonCancel.UseVisualStyleBackColor = true;
|
||||
buttonCancel.Click += ButtonCancel_Click;
|
||||
//
|
||||
// comboBoxTour
|
||||
//
|
||||
comboBoxTour.FormattingEnabled = true;
|
||||
comboBoxTour.Location = new Point(278, 303);
|
||||
comboBoxTour.Name = "comboBoxTour";
|
||||
comboBoxTour.Size = new Size(151, 28);
|
||||
comboBoxTour.TabIndex = 12;
|
||||
//
|
||||
// FormRoute
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(597, 444);
|
||||
Controls.Add(comboBoxTour);
|
||||
Controls.Add(buttonCancel);
|
||||
Controls.Add(buttonSave);
|
||||
Controls.Add(numericUpDownPrice);
|
||||
Controls.Add(numericUpDownRating);
|
||||
Controls.Add(textBoxPlaces);
|
||||
Controls.Add(textBoxName);
|
||||
Controls.Add(labelTourId);
|
||||
Controls.Add(labelPrice);
|
||||
Controls.Add(labelPlaces);
|
||||
Controls.Add(labelRating);
|
||||
Controls.Add(labelName);
|
||||
Name = "FormRoute";
|
||||
StartPosition = FormStartPosition.CenterScreen;
|
||||
Text = "Маршрут";
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownRating).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownPrice).EndInit();
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label labelName;
|
||||
private Label labelRating;
|
||||
private Label labelPlaces;
|
||||
private Label labelPrice;
|
||||
private Label labelTourId;
|
||||
private TextBox textBoxName;
|
||||
private TextBox textBoxPlaces;
|
||||
private NumericUpDown numericUpDownRating;
|
||||
private NumericUpDown numericUpDownPrice;
|
||||
private Button buttonSave;
|
||||
private Button buttonCancel;
|
||||
private ComboBox comboBoxTour;
|
||||
}
|
||||
}
|
78
Travel_Agency/Travel_Agency/Forms/FormRoute.cs
Normal file
78
Travel_Agency/Travel_Agency/Forms/FormRoute.cs
Normal file
@ -0,0 +1,78 @@
|
||||
|
||||
using Travel_Agency.Entities;
|
||||
using Travel_Agency.Repositories;
|
||||
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
public partial class FormRoute : Form
|
||||
{
|
||||
private readonly IRouteRepository _routeRepository;
|
||||
private int? _routeId;
|
||||
public int Id
|
||||
{
|
||||
set
|
||||
{
|
||||
try
|
||||
{
|
||||
var route = _routeRepository.ReadRouteById(value);
|
||||
if (route == null)
|
||||
{
|
||||
throw new InvalidDataException(nameof(route));
|
||||
}
|
||||
|
||||
textBoxName.Text = route.Name;
|
||||
textBoxPlaces.Text = route.Places;
|
||||
numericUpDownPrice.Value = route.Price;
|
||||
numericUpDownRating.Value = route.Rating;
|
||||
comboBoxTour.SelectedValue = route.TourId;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
public FormRoute(IRouteRepository routeRepository, ITourRepository tourRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_routeRepository = routeRepository ??
|
||||
throw new ArgumentNullException(nameof(routeRepository));
|
||||
comboBoxTour.DataSource = tourRepository.ReadTours();
|
||||
comboBoxTour.DisplayMember = "Name";
|
||||
comboBoxTour.ValueMember = "Id";
|
||||
}
|
||||
|
||||
private void ButtonSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(textBoxName.Text) || string.IsNullOrWhiteSpace(textBoxPlaces.Text) || numericUpDownPrice.Value == 0)
|
||||
{
|
||||
throw new Exception("Имеются незаполненные поля");
|
||||
}
|
||||
if (_routeId.HasValue)
|
||||
{
|
||||
_routeRepository.UpdateRoute(CreateRoute(_routeId.Value));
|
||||
}
|
||||
else
|
||||
{
|
||||
_routeRepository.CreateRoute(CreateRoute(0));
|
||||
}
|
||||
Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при сохранении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonCancel_Click(object sender, EventArgs e) => Close();
|
||||
|
||||
private Route CreateRoute(int id) => Route.CreateEntity(id, textBoxName.Text,
|
||||
Convert.ToInt32(numericUpDownRating.Value), textBoxPlaces.Text,
|
||||
Convert.ToInt32(numericUpDownPrice.Value),
|
||||
(int)comboBoxTour.SelectedValue);
|
||||
}
|
||||
}
|
120
Travel_Agency/Travel_Agency/Forms/FormRoute.resx
Normal file
120
Travel_Agency/Travel_Agency/Forms/FormRoute.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
129
Travel_Agency/Travel_Agency/Forms/FormRoutes.Designer.cs
generated
Normal file
129
Travel_Agency/Travel_Agency/Forms/FormRoutes.Designer.cs
generated
Normal file
@ -0,0 +1,129 @@
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
partial class FormRoutes
|
||||
{
|
||||
/// <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(FormRoutes));
|
||||
panel1 = new Panel();
|
||||
ButtonDel = new Button();
|
||||
ButtonUpd = new Button();
|
||||
ButtonAdd = new Button();
|
||||
dataGridView = new DataGridView();
|
||||
panel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.Controls.Add(ButtonDel);
|
||||
panel1.Controls.Add(ButtonUpd);
|
||||
panel1.Controls.Add(ButtonAdd);
|
||||
panel1.Dock = DockStyle.Right;
|
||||
panel1.Location = new Point(651, 0);
|
||||
panel1.Name = "panel1";
|
||||
panel1.Size = new Size(149, 450);
|
||||
panel1.TabIndex = 0;
|
||||
//
|
||||
// ButtonDel
|
||||
//
|
||||
ButtonDel.BackgroundImage = (Image)resources.GetObject("ButtonDel.BackgroundImage");
|
||||
ButtonDel.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
ButtonDel.Location = new Point(55, 213);
|
||||
ButtonDel.Name = "ButtonDel";
|
||||
ButtonDel.Size = new Size(65, 59);
|
||||
ButtonDel.TabIndex = 2;
|
||||
ButtonDel.UseVisualStyleBackColor = true;
|
||||
ButtonDel.Click += ButtonDel_Click;
|
||||
//
|
||||
// ButtonUpd
|
||||
//
|
||||
ButtonUpd.BackgroundImage = (Image)resources.GetObject("ButtonUpd.BackgroundImage");
|
||||
ButtonUpd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
ButtonUpd.Location = new Point(55, 121);
|
||||
ButtonUpd.Name = "ButtonUpd";
|
||||
ButtonUpd.Size = new Size(65, 59);
|
||||
ButtonUpd.TabIndex = 1;
|
||||
ButtonUpd.UseVisualStyleBackColor = true;
|
||||
ButtonUpd.Click += ButtonUpd_Click;
|
||||
//
|
||||
// ButtonAdd
|
||||
//
|
||||
ButtonAdd.BackgroundImage = (Image)resources.GetObject("ButtonAdd.BackgroundImage");
|
||||
ButtonAdd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
ButtonAdd.Location = new Point(55, 32);
|
||||
ButtonAdd.Name = "ButtonAdd";
|
||||
ButtonAdd.Size = new Size(65, 59);
|
||||
ButtonAdd.TabIndex = 0;
|
||||
ButtonAdd.UseVisualStyleBackColor = true;
|
||||
ButtonAdd.Click += ButtonAdd_Click;
|
||||
//
|
||||
// dataGridView
|
||||
//
|
||||
dataGridView.AllowUserToAddRows = false;
|
||||
dataGridView.AllowUserToDeleteRows = false;
|
||||
dataGridView.AllowUserToResizeColumns = false;
|
||||
dataGridView.AllowUserToResizeRows = false;
|
||||
dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
||||
dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
dataGridView.Dock = DockStyle.Fill;
|
||||
dataGridView.Location = new Point(0, 0);
|
||||
dataGridView.MultiSelect = false;
|
||||
dataGridView.Name = "dataGridView";
|
||||
dataGridView.ReadOnly = true;
|
||||
dataGridView.RowHeadersVisible = false;
|
||||
dataGridView.RowHeadersWidth = 51;
|
||||
dataGridView.RowTemplate.Height = 29;
|
||||
dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
|
||||
dataGridView.Size = new Size(651, 450);
|
||||
dataGridView.TabIndex = 1;
|
||||
//
|
||||
// FormRoutes
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(800, 450);
|
||||
Controls.Add(dataGridView);
|
||||
Controls.Add(panel1);
|
||||
Name = "FormRoutes";
|
||||
StartPosition = FormStartPosition.CenterParent;
|
||||
Text = "Маршруты";
|
||||
Load += FormRoutes_Load;
|
||||
panel1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Panel panel1;
|
||||
private Button ButtonDel;
|
||||
private Button ButtonUpd;
|
||||
private Button ButtonAdd;
|
||||
private DataGridView dataGridView;
|
||||
}
|
||||
}
|
106
Travel_Agency/Travel_Agency/Forms/FormRoutes.cs
Normal file
106
Travel_Agency/Travel_Agency/Forms/FormRoutes.cs
Normal file
@ -0,0 +1,106 @@
|
||||
|
||||
using Travel_Agency.Repositories;
|
||||
using Unity;
|
||||
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
public partial class FormRoutes : Form
|
||||
{
|
||||
private readonly IUnityContainer _container;
|
||||
|
||||
private readonly IRouteRepository _routeRepository;
|
||||
public FormRoutes(IUnityContainer container, IRouteRepository routeRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_container = container ??
|
||||
throw new ArgumentNullException(nameof(container));
|
||||
_routeRepository = routeRepository ??
|
||||
throw new ArgumentNullException(nameof(routeRepository));
|
||||
}
|
||||
|
||||
private void FormRoutes_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при загрузке",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonAdd_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormRoute>().ShowDialog();
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при добавлении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonUpd_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectedRow(out var findId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
var form = _container.Resolve<FormRoute>();
|
||||
form.Id = findId;
|
||||
form.ShowDialog();
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при изменении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonDel_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectedRow(out var findId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (MessageBox.Show("Удалить запись?", "Удаление",
|
||||
MessageBoxButtons.YesNo) != DialogResult.Yes)
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
_routeRepository.DeleteRoute(findId);
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при удалении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadList() => dataGridView.DataSource = _routeRepository.ReadRoutes();
|
||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||
{
|
||||
id = 0;
|
||||
if (dataGridView.SelectedRows.Count < 1)
|
||||
{
|
||||
MessageBox.Show("Нет выбранной записи", "Ошибка",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return false;
|
||||
}
|
||||
id =
|
||||
Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
356
Travel_Agency/Travel_Agency/Forms/FormRoutes.resx
Normal file
356
Travel_Agency/Travel_Agency/Forms/FormRoutes.resx
Normal file
@ -0,0 +1,356 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="ButtonDel.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
UBMAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="ButtonUpd.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
Pv74YzkH4man7PPnz7/++usSY5Lly5evX79enmS2d+9eOQGiZ6fs2dnZrVu3So+aMK9xLztlq5Gd/qs0
|
||||
VWBe414WylbfPr777rt6y+buNe5joezff//90KFDkmTNevjbdkhioexLly49++yzDz30kLSZU1NTU3d3
|
||||
965du4aGhvgLYCjHQtk//PDDiy++KJ3m8eCDDz733HNvvvmmepO///67+G5AIgtlnzp16vHHH5daM3vq
|
||||
qad27tz51Vdfzc7OyhsB5VkoW43sFStWSLAZNDQ0qP9+9NFHZ8+elbcAKjFd9q1bt95+++1ishm9/PLL
|
||||
Kms5HsjGwjVbbWVpthI1rF999dUvv/xSjgQyM132999/v2nTJik31fr169XV/fLly3/++accDGRmtOw7
|
||||
d+5MTk6uXLlS4i2jqampvb3922+/vXbtmhwJ5GT6mv3WW29Jv+UdOHDg66+/lgOAqhgtu1Ao7Nu3r3iv
|
||||
I5FaIG+88Ya6tM/Pz8sxQFWMlv3rr7++8sorUvFSq1ev7ujo+OSTT7hdDS2Mlj0xMdHS0iIt36OxsVF9
|
||||
s/jjjz/euHFDXgrUxlzZamCMjIyU/pmldevWffDBBz/99JO8DtDBXNlqPb///vuS811dXV3Dw8PyCkAf
|
||||
c2WrpaE6XrZsWbHpJ5544vnnn7948SILBPVgruzF33189NFHV65cefz48dOnT8vnAN3MlT09PV28Wu/a
|
||||
teuLL76QjwL1Ya7so0ePbty4cffu3TMzM/IhoG4Mlf3HH3989913AwMDV65ckQ8B9WTumv3zzz9funRJ
|
||||
ngB1Zq5swCTKRpgoG2GibISJshEmykaYKBthomyEibIRooWF/wOJOuh6obV2FwAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="ButtonAdd.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
143
Travel_Agency/Travel_Agency/Forms/FormTour.Designer.cs
generated
Normal file
143
Travel_Agency/Travel_Agency/Forms/FormTour.Designer.cs
generated
Normal file
@ -0,0 +1,143 @@
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
partial class FormTour
|
||||
{
|
||||
/// <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()
|
||||
{
|
||||
labelName = new Label();
|
||||
labelPrice = new Label();
|
||||
textBoxName = new TextBox();
|
||||
numericUpDownPrice = new NumericUpDown();
|
||||
ButtonSave = new Button();
|
||||
ButtonCencel = new Button();
|
||||
labelTypeOfTour = new Label();
|
||||
checkedListBoxType = new CheckedListBox();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownPrice).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// labelName
|
||||
//
|
||||
labelName.AutoSize = true;
|
||||
labelName.Location = new Point(46, 51);
|
||||
labelName.Name = "labelName";
|
||||
labelName.Size = new Size(118, 20);
|
||||
labelName.TabIndex = 0;
|
||||
labelName.Text = "Название тура :";
|
||||
//
|
||||
// labelPrice
|
||||
//
|
||||
labelPrice.AutoSize = true;
|
||||
labelPrice.Location = new Point(46, 115);
|
||||
labelPrice.Name = "labelPrice";
|
||||
labelPrice.Size = new Size(124, 20);
|
||||
labelPrice.TabIndex = 1;
|
||||
labelPrice.Text = "Стоимость тура :";
|
||||
//
|
||||
// textBoxName
|
||||
//
|
||||
textBoxName.Location = new Point(211, 44);
|
||||
textBoxName.Name = "textBoxName";
|
||||
textBoxName.Size = new Size(172, 27);
|
||||
textBoxName.TabIndex = 2;
|
||||
//
|
||||
// numericUpDownPrice
|
||||
//
|
||||
numericUpDownPrice.Location = new Point(211, 108);
|
||||
numericUpDownPrice.Name = "numericUpDownPrice";
|
||||
numericUpDownPrice.Size = new Size(172, 27);
|
||||
numericUpDownPrice.TabIndex = 3;
|
||||
//
|
||||
// ButtonSave
|
||||
//
|
||||
ButtonSave.Location = new Point(60, 339);
|
||||
ButtonSave.Name = "ButtonSave";
|
||||
ButtonSave.Size = new Size(94, 29);
|
||||
ButtonSave.TabIndex = 4;
|
||||
ButtonSave.Text = "Сохранить";
|
||||
ButtonSave.UseVisualStyleBackColor = true;
|
||||
ButtonSave.Click += ButtonSave_Click;
|
||||
//
|
||||
// ButtonCencel
|
||||
//
|
||||
ButtonCencel.Location = new Point(255, 339);
|
||||
ButtonCencel.Name = "ButtonCencel";
|
||||
ButtonCencel.Size = new Size(94, 29);
|
||||
ButtonCencel.TabIndex = 5;
|
||||
ButtonCencel.Text = "Отмена";
|
||||
ButtonCencel.UseVisualStyleBackColor = true;
|
||||
ButtonCencel.Click += ButtonCencel_Click;
|
||||
//
|
||||
// labelTypeOfTour
|
||||
//
|
||||
labelTypeOfTour.AutoSize = true;
|
||||
labelTypeOfTour.Location = new Point(46, 179);
|
||||
labelTypeOfTour.Name = "labelTypeOfTour";
|
||||
labelTypeOfTour.Size = new Size(76, 20);
|
||||
labelTypeOfTour.TabIndex = 6;
|
||||
labelTypeOfTour.Text = "Тип тура :";
|
||||
//
|
||||
// checkedListBoxType
|
||||
//
|
||||
checkedListBoxType.FormattingEnabled = true;
|
||||
checkedListBoxType.Location = new Point(211, 179);
|
||||
checkedListBoxType.Name = "checkedListBoxType";
|
||||
checkedListBoxType.Size = new Size(172, 114);
|
||||
checkedListBoxType.TabIndex = 7;
|
||||
//
|
||||
// FormTour
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(427, 414);
|
||||
Controls.Add(checkedListBoxType);
|
||||
Controls.Add(labelTypeOfTour);
|
||||
Controls.Add(ButtonCencel);
|
||||
Controls.Add(ButtonSave);
|
||||
Controls.Add(numericUpDownPrice);
|
||||
Controls.Add(textBoxName);
|
||||
Controls.Add(labelPrice);
|
||||
Controls.Add(labelName);
|
||||
Name = "FormTour";
|
||||
StartPosition = FormStartPosition.CenterParent;
|
||||
Text = "Тур";
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownPrice).EndInit();
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label labelName;
|
||||
private Label labelPrice;
|
||||
private TextBox textBoxName;
|
||||
private NumericUpDown numericUpDownPrice;
|
||||
private Button ButtonSave;
|
||||
private Button ButtonCencel;
|
||||
private Label labelTypeOfTour;
|
||||
private CheckedListBox checkedListBoxType;
|
||||
}
|
||||
}
|
92
Travel_Agency/Travel_Agency/Forms/FormTour.cs
Normal file
92
Travel_Agency/Travel_Agency/Forms/FormTour.cs
Normal file
@ -0,0 +1,92 @@
|
||||
|
||||
using Travel_Agency.Entities;
|
||||
using Travel_Agency.Entities.Enums;
|
||||
using Travel_Agency.Repositories;
|
||||
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
public partial class FormTour : Form
|
||||
{
|
||||
private readonly ITourRepository _tourRepository;
|
||||
private int? _tourId;
|
||||
public int Id
|
||||
{
|
||||
set
|
||||
{
|
||||
try
|
||||
{
|
||||
var tour = _tourRepository.ReadTourById(value);
|
||||
if (tour == null)
|
||||
{
|
||||
throw new InvalidDataException(nameof(tour));
|
||||
}
|
||||
|
||||
foreach (TypeOfTour elem in Enum.GetValues(typeof(TypeOfTour)))
|
||||
{
|
||||
if ((elem & tour.TypeOfTour) != 0)
|
||||
{
|
||||
checkedListBoxType.SetItemChecked(checkedListBoxType.Items.IndexOf(elem), true);
|
||||
}
|
||||
}
|
||||
|
||||
textBoxName.Text = tour.Name;
|
||||
numericUpDownPrice.Value = tour.Price;
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
public FormTour(ITourRepository tourRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_tourRepository = tourRepository ??
|
||||
throw new ArgumentNullException(nameof(tourRepository));
|
||||
foreach (var elem in Enum.GetValues(typeof(TypeOfTour)))
|
||||
{
|
||||
checkedListBoxType.Items.Add(elem);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(textBoxName.Text) || numericUpDownPrice.Value == 0 || checkedListBoxType.CheckedItems.Count == 0)
|
||||
{
|
||||
throw new Exception("Имеются незаполненные поля");
|
||||
}
|
||||
if (_tourId.HasValue)
|
||||
{
|
||||
_tourRepository.UpdateTour(CreateTour(_tourId.Value));
|
||||
}
|
||||
else
|
||||
{
|
||||
_tourRepository.CreateTour(CreateTour(0));
|
||||
}
|
||||
Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при сохранении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonCencel_Click(object sender, EventArgs e) => Close();
|
||||
|
||||
private Tour CreateTour(int id)
|
||||
{
|
||||
TypeOfTour typeOfTour = TypeOfTour.None;
|
||||
foreach (var elem in checkedListBoxType.CheckedItems)
|
||||
{
|
||||
typeOfTour |= (TypeOfTour)elem;
|
||||
}
|
||||
|
||||
return Tour.CreateEntity(id, textBoxName.Text, typeOfTour, Convert.ToInt32(numericUpDownPrice.Value));
|
||||
}
|
||||
}
|
||||
}
|
120
Travel_Agency/Travel_Agency/Forms/FormTour.resx
Normal file
120
Travel_Agency/Travel_Agency/Forms/FormTour.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
129
Travel_Agency/Travel_Agency/Forms/FormTours.Designer.cs
generated
Normal file
129
Travel_Agency/Travel_Agency/Forms/FormTours.Designer.cs
generated
Normal file
@ -0,0 +1,129 @@
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
partial class FormTours
|
||||
{
|
||||
/// <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(FormTours));
|
||||
panel1 = new Panel();
|
||||
ButtonDel = new Button();
|
||||
ButtonUpd = new Button();
|
||||
ButtonAdd = new Button();
|
||||
dataGridView = new DataGridView();
|
||||
panel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.Controls.Add(ButtonDel);
|
||||
panel1.Controls.Add(ButtonUpd);
|
||||
panel1.Controls.Add(ButtonAdd);
|
||||
panel1.Dock = DockStyle.Right;
|
||||
panel1.Location = new Point(651, 0);
|
||||
panel1.Name = "panel1";
|
||||
panel1.Size = new Size(149, 450);
|
||||
panel1.TabIndex = 1;
|
||||
//
|
||||
// ButtonDel
|
||||
//
|
||||
ButtonDel.BackgroundImage = (Image)resources.GetObject("ButtonDel.BackgroundImage");
|
||||
ButtonDel.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
ButtonDel.Location = new Point(55, 213);
|
||||
ButtonDel.Name = "ButtonDel";
|
||||
ButtonDel.Size = new Size(65, 59);
|
||||
ButtonDel.TabIndex = 2;
|
||||
ButtonDel.UseVisualStyleBackColor = true;
|
||||
ButtonDel.Click += ButtonDel_Click;
|
||||
//
|
||||
// ButtonUpd
|
||||
//
|
||||
ButtonUpd.BackgroundImage = (Image)resources.GetObject("ButtonUpd.BackgroundImage");
|
||||
ButtonUpd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
ButtonUpd.Location = new Point(55, 121);
|
||||
ButtonUpd.Name = "ButtonUpd";
|
||||
ButtonUpd.Size = new Size(65, 59);
|
||||
ButtonUpd.TabIndex = 1;
|
||||
ButtonUpd.UseVisualStyleBackColor = true;
|
||||
ButtonUpd.Click += ButtonUpd_Click;
|
||||
//
|
||||
// ButtonAdd
|
||||
//
|
||||
ButtonAdd.BackgroundImage = (Image)resources.GetObject("ButtonAdd.BackgroundImage");
|
||||
ButtonAdd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
ButtonAdd.Location = new Point(55, 32);
|
||||
ButtonAdd.Name = "ButtonAdd";
|
||||
ButtonAdd.Size = new Size(65, 59);
|
||||
ButtonAdd.TabIndex = 0;
|
||||
ButtonAdd.UseVisualStyleBackColor = true;
|
||||
ButtonAdd.Click += ButtonAdd_Click;
|
||||
//
|
||||
// dataGridView
|
||||
//
|
||||
dataGridView.AllowUserToAddRows = false;
|
||||
dataGridView.AllowUserToDeleteRows = false;
|
||||
dataGridView.AllowUserToResizeColumns = false;
|
||||
dataGridView.AllowUserToResizeRows = false;
|
||||
dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
||||
dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
dataGridView.Dock = DockStyle.Fill;
|
||||
dataGridView.Location = new Point(0, 0);
|
||||
dataGridView.MultiSelect = false;
|
||||
dataGridView.Name = "dataGridView";
|
||||
dataGridView.ReadOnly = true;
|
||||
dataGridView.RowHeadersVisible = false;
|
||||
dataGridView.RowHeadersWidth = 51;
|
||||
dataGridView.RowTemplate.Height = 29;
|
||||
dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
|
||||
dataGridView.Size = new Size(651, 450);
|
||||
dataGridView.TabIndex = 2;
|
||||
//
|
||||
// FormTours
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(800, 450);
|
||||
Controls.Add(dataGridView);
|
||||
Controls.Add(panel1);
|
||||
Name = "FormTours";
|
||||
StartPosition = FormStartPosition.CenterParent;
|
||||
Text = "Туры";
|
||||
Load += FormTours_Load;
|
||||
panel1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Panel panel1;
|
||||
private Button ButtonDel;
|
||||
private Button ButtonUpd;
|
||||
private Button ButtonAdd;
|
||||
private DataGridView dataGridView;
|
||||
}
|
||||
}
|
105
Travel_Agency/Travel_Agency/Forms/FormTours.cs
Normal file
105
Travel_Agency/Travel_Agency/Forms/FormTours.cs
Normal file
@ -0,0 +1,105 @@
|
||||
|
||||
using Travel_Agency.Repositories;
|
||||
using Unity;
|
||||
|
||||
namespace Travel_Agency.Forms
|
||||
{
|
||||
public partial class FormTours : Form
|
||||
{
|
||||
private readonly IUnityContainer _container;
|
||||
|
||||
private readonly ITourRepository _tourRepository;
|
||||
public FormTours(IUnityContainer container, ITourRepository tourRepository)
|
||||
{
|
||||
InitializeComponent();
|
||||
_container = container ??
|
||||
throw new ArgumentNullException(nameof(container));
|
||||
_tourRepository = tourRepository ??
|
||||
throw new ArgumentNullException(nameof(tourRepository));
|
||||
}
|
||||
|
||||
private void FormTours_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при загрузке",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonAdd_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
_container.Resolve<FormTour>().ShowDialog();
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при добавлении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonUpd_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectedRow(out var findId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
var form = _container.Resolve<FormTour>();
|
||||
form.Id = findId;
|
||||
form.ShowDialog();
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при изменении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonDel_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectedRow(out var findId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (MessageBox.Show("Удалить запись?", "Удаление",
|
||||
MessageBoxButtons.YesNo) != DialogResult.Yes)
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
_tourRepository.DeleteTour(findId);
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при удалении",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
private void LoadList() => dataGridView.DataSource = _tourRepository.ReadTours();
|
||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||
{
|
||||
id = 0;
|
||||
if (dataGridView.SelectedRows.Count < 1)
|
||||
{
|
||||
MessageBox.Show("Нет выбранной записи", "Ошибка",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return false;
|
||||
}
|
||||
id =
|
||||
Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
356
Travel_Agency/Travel_Agency/Forms/FormTours.resx
Normal file
356
Travel_Agency/Travel_Agency/Forms/FormTours.resx
Normal file
@ -0,0 +1,356 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="ButtonDel.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAANMAAADPCAIAAADgcXNuAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
vgAADr4B6kKxwAAADuxJREFUeF7tnUGOJDsRhp8EQiC9xZNACNAsWHAFFpyCFYdg2Wdg3zfgAn0BbtAH
|
||||
4Aq15Q5DaPxPql6U7YqwIxzOrPj0L0Yz1ZFO+ytn2lld88PXJIkgzUtiSPOSGNK8JIY0L4khzUtiSPOS
|
||||
GNK8JIY0L4khzUtiSPOSGNK8JIY0L4khzUtiSPOSGNK8JIY0L4khzUtiSPOSGNK8JIY0L4khzUtiSPOa
|
||||
3G63z8/P9/f3t7e3v33ny3d+uKP8TXnBP75BP/LxDSqCcsnPSfNA8axIxsSahwoeOuJ4L89Lm+en2lNS
|
||||
xJczj+Y2uoCSbVBgA8jCF1TwVcwr09v6uU1FuSi/iIUXN49mOBrIzYV7hBp8ef8uax45R/MHRvK0XHgK
|
||||
vKB5Z5zk+tBd6fX8u5R513OOcSX/LmLeSuf+9+Uv1eCf/bmGf6c3z8k5ZtVkUNSU9/d3dME5ObF5ts4x
|
||||
V1yDQ05Dp3/e+e+U5lmtW5kQIUFTJqCuoA5B15yH85n39vaGLh+Fjf0mQeNGoW5BB52EM5k3eXllI71t
|
||||
0Fw957r4nsa8mamODe0pgqbrOcvkdwLz6CZm+AE/G87TBaehhLpr/zu/3c37/PwcuMKy8Tt7cFZKqOvQ
|
||||
iVuytXnv7+/oRTFszK4UnKGGnff89jVvYN+EDdUlg1MVQ92IDt2MHc0buLFjw3P54LRl7Hnbt5152hs7
|
||||
NiQvFXSBAOrS3W779jLv4+MDXSWDjcQLBh0hY6vdvo3M064n2Bi8bNAdMvZZc+xinko71vUZCrpGwCby
|
||||
bWGe6iLLejxzBB0kYIfLbrx5dOeL/hDA+jrDgm4SEL7gCDYvtTMPOktArHyR5t1uN+EGCuvczNOg47pQ
|
||||
5wfu80Wal9q5Bt3XhYYAg7GcMPOETylYb2ZUQSd2oYHAkKwlxjzhh+1YP2YGgq7sEvKRvgDzhFt3rAcz
|
||||
w0GHdlm/ybfaPOFilvVdZjLo1i6Ll7qrzcNZdmG9ljEJOrfN4qXuUvMkH7lj/WWY//z+y59+8cv//vHP
|
||||
7O+3CjWPGklNZX9vEnRxm5Uf5ltnnvARGessq9BYlvo7y1e0K+30kK9U7rPswdo683BmXVhPWeXfv/0D
|
||||
DvAdp0llJmVKRvu+8a+ffsdeMx+UbrNsh2+ReYHXWRo/HODnbCXfMSUzQuRbc81dYZ7kOst6xyot7Qo0
|
||||
F7LXh+RxSr4nRL4F69wV5j19Ssb6xSr//PEnHKCNx7iq0n9vFOhE2E/NB6UbLLjmupsXNeFJtCsEyifR
|
||||
rmAuH+q28V5quJuH82jDesQkf/3Vr1Fdhsek8jTy90aBTopVmAzqNvCe9nzNe/qgjPWFSbTaFRbLp9Wu
|
||||
sFg+12nP1zycQRvWEZO53w8b4O+/+ZEVdAodCIfUQ/IZ7keiaBu/pxqO5j39QArrhclMalcwn1QeMzYl
|
||||
32O7GY6iDfx2WBzNQ9vbsC6YyeM27DC2k8p9qOy8dgU6Wav9SFRs4zTteZn3dOuYnf9MWtuww9hOKiUm
|
||||
UzJjjXxO056XeWh1G3byw1FpJ7/BspVPpZ3qLtBqMxzlajgtcl3Me7qHx057OPL9MKLs26kWlSaTiuq9
|
||||
UZbYA+c1GdRq4LHIdTGv/9CCnfNwhodnpXwD2pVsJZ/HtGdv3poJb9KeNeM6eZRha8eCQg3Mpz178xas
|
||||
LUwmLW/5TOrvI5/5r6jZm4eWNmCnOhDDVYLfuJq8N0q0qxP246qgSgPb7RVj87wvtfL9MOHi1EM+Q+1K
|
||||
VPLNbIajRAPb308zNq9/qWXnqY1cO9VuMI29fFyfyifXTvjeKKFXqk6f/bg8KFHDdp1hbB7a2ICdpDZ+
|
||||
b32rynI5VNpR/CqzoEoDwwuupXn9Sy07w7G4yicf3WrlC2hXglo1DFe4lua5Xmrvo1JkwRjTH/zeD06V
|
||||
O0G5GoYrXEvz0LoG7PQmM6aIJNrKF9OOgooNrC64ZuYtuNSyqO7lJUvII6rFqVyOp6uT+6i0U1WWBHVr
|
||||
WP1ykJl5yy6191Ep4iefBJUcHns9qqB0Dasvnjq3eRQ/+VQPIfqoHoGEa0dB9RpWt3pm5qFdDdiJ2cbk
|
||||
OVU1JvL5HVFVWRUcoAGGfA6bKv3vJmNn5RG/Aev/GvZTVJ+f20S7Ehymhskiw8a89cuLx/hdpFSV71Fd
|
||||
3P1uG8aCI9UweYxmY17UTR7LPvK5rqYXaEfBwWrQcGPgJ7Axr/912+yUXEOjIt+MUH2yQ77NQS+jF7Mf
|
||||
7yTqM/r94JA1TB7gGt0ttmHnsyB+G7CSylo5/LbE54MD18DAT3BB8yg0QvIR1e7+dyrTP8nl0DZysXYU
|
||||
HLvG/CLDwLzwhW0r8nE1majoL9nLOqHDOU3MhsHha8w/yTAwb4eFbSt+t1CsstMtIxGlHQUtqDG/vDUw
|
||||
r/8tFuxk1sdv2XhU1i6T5dqpKpsHjagx/wzNwLxNtlQ6cZVPqx0OIyBWOwraUWN+Y+UlzKOoHg84fYut
|
||||
6nGI9yMKSdCUGvNPbw3M22czr5/YZ1OxRx8LWlNjC/PWfKOASaJmHZV2TjPuWNCmB+Y3k33NY6exQ9bf
|
||||
afndZS4ImvXAFuahLTXYaWySlatLuXbUpN20o6BxD6R5g1mzo1bdcK5CjVHtJi4L2lcDwz/Ki5pH8Zbv
|
||||
AtpR0MQaGP5R0jwRad4jGP5RDMw71wqjxFu7kgvIh/bVwPCP8orm5QpDHjTugS1WGOcyj0YXjRMwqV2J
|
||||
XD5iK/nQphpbmHeWZxiU3ElWBQ2qkU/PFFENv6F2JbFHHwtaUyM/MSDNDrNO1Iw7HDSlxhbmbf75PIrf
|
||||
nRZVVt0Lrr/LnAnaUWOLz+f1/0NHdjLrI9dOu7o8Kl9VPjSixvwX6RmYt+3vYVAu8Gl4VWXboAU1tvg9
|
||||
jNvthubUYCezMn4budXKqg3nNVvZk8Hha2DsJzAoQaA5NdjJrAmNq1w7eqVcu35lrSJOjbQKjl0DAz+B
|
||||
jXmdzWSCnY93/KYTSWWT6bOKtvJkcNQa85t5hI15+2ysqLRzujnTKuJ3MzoTHLLG/JYKYWPeJstbv2Uj
|
||||
VZYLXRhbJktQVR4ODlbD5BvibczbYZHhqh1+TMmp5cORaswvbAkb8wg0qgE7K/P4PZtSPXh4RPU4xO8s
|
||||
tMExGmDI5zAzL/Dprd+AqSq38DuiqrIqOEANk5s8wsy8qGdofhcpE+0KKkX8bhvkQfUa25kX8iTDTztV
|
||||
ZQkqRcLlQ+kaJssLwsy8/iKDYOc2H7kc2s0IVWX8SYBWPnlxW/lQtAHGexqzQsTKWz2/DVhtZYpcEfON
|
||||
6wNV5X5QsYbVpZawNG/ZF+nto135KVf55E2ykg/lalhdaglL8xZccF3HeLKySpHDWknklbXvtMegUAOM
|
||||
tAWWtQjXB7g7a1fip8gy+VClhuGlljA2r/8YjWDnqYq89+mV8t5Xaff0Xl61OpEvt6mRqtNnPy4Mfr6B
|
||||
4aWWMDbP+4Jr/tb32L+Qy0dI5FO9N4a1o6BEA4yxEcblCO8VruEnO/y2zQzlU2k38wFmlGhge6kl7M3r
|
||||
r3AJdsIDMRlX7+dUJvX93huPQZUGtpdawt48YsEHRSfl89auZPIoK7WjoFCN+W8UeMTFvAXTHmV4XA0v
|
||||
hU8zbM+ktdqgUAPzCY9wMY9Y8/n4geFZqV3JgHxbaUdgUE3xMo9uSNHqBuzkh6P6/FzU585JPtUqAX8S
|
||||
YPLeQK0G5muLgpd5T7dXCHb+w1FNKhJstStRLVGFLNCOwIha41WXWDbtUVSTSh/VLrQqVFa+H9mHTtZE
|
||||
OwoqNpj/FosWjuatnPYoJpPKzDasMPPyGU7JqNgGY+mAY2lizSL3yOSkMrMNq4rqTo5hqB0FRRvM/4eO
|
||||
HXzNI/qLXIL1xXzG5JvfD1NFtcQ+sJ2SUbQNhtAHd/OeTnsE65H5aOVbrF2JVr7F2nns4d3jbh6xftqj
|
||||
yMd1fj9sOPJ9O/P3Buo28HhowVhhXv+XgwqsX0wikS9QuxKJfIu1I7wnPGKFecTTHRaC9Y5J+uPq9K20
|
||||
2vQ3w83fG6jbxmnrmLHIPOLpNZdgfWSSlnxW+2EmaW2Gr9eOwIA5s848yVKDYD1lEiaf4TasYR43w82n
|
||||
ZNTtsuA6W1hnHhF1zaUck4rtfpht7jfDPd4bpXKHNdfZwlLzbrdb1DWXUiaVbbUrKfKFaEdgnJaw9GCE
|
||||
ZJ1LsF7LTAbd2sXku8nkrDaPePr7aQXWd5nhoEO7uD4oqxJgHtH/4qkD1oOZgaAru/h9IKVDjHlE/1fU
|
||||
Dlg/ZlRBJ3Yx+brtAcLMIySrDYL1ZkYYdF+XBU/JWkSaJ1zqEqxPM0+DjutCnU9DgMFYTqR5hHCpW2Cd
|
||||
m6kGnSVg8WKWEWwekfIZBt0kIFY7It48QvhgrcD6OnMEHSRg2SOyDluYRwg3+QqsxzMUdI2A9Vt3VXYx
|
||||
j1DJR7Cuf9mgO2Rsoh2xkXmE6rJLsDF4waAjZOxwkT3YyzyC7nyFWy0FNhIvFXSBAOrS8CUFYzvziNvt
|
||||
JnzCccCG5PLBacugzgzct2uxo3kFyYf5GGx4LhmcqpiVH7lTsa95hHbNUWBDdaXgDMXss554ZGvzCNU+
|
||||
8z1szM4enJWYDW/sGLubRwzc9h2w8TtdcBpK9ryxY5zAvILwI31V2HCeImi6npAP2w1wGvOIj48P1YYL
|
||||
gw3ttkFz9VDnbLVj1+dM5hVmJr8CG+lNgsaNcpap7uB85hF0EzOw5/IIG/uQoCkTUFfsf1f3yCnNK0xe
|
||||
fBlMCNfgkNOc6/LKOLF5hbE9v6cwVyaDonac2rnC6c0r0DBgTPxhVh3BPztzAecKFzGvsNK/9VzGucKl
|
||||
zCvQ8AzvPO/JxZwrXNC8Ag2Vyfo3lpOuWyVc1rwDUpDmDIzkSSiT3FWdK1zfvEKZAjdXkJr39va2+ZN+
|
||||
K17FvHt2uxDTXen7+/u1Z7hHXtG8A1KQ5pj1FtLcRra9zvRW5aXNYxwiml+U71V7tbmtRZrXhBQhFw8d
|
||||
CbKHII2YmuVviPICgn6ELqDpWYc0L4khzUtiSPOSGNK8JIY0L4khzUtiSPOSGNK8JIY0L4khzUtiSPOS
|
||||
GNK8JIY0L4khzUtiSPOSGNK8JIY0L4khzUtiSPOSGNK8JIY0L4khzUtiSPOSGNK8JIKvX/8PIX0F0fFO
|
||||
UBMAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="ButtonUpd.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
Pv74YzkH4man7PPnz7/++usSY5Lly5evX79enmS2d+9eOQGiZ6fs2dnZrVu3So+aMK9xLztlq5Gd/qs0
|
||||
VWBe414WylbfPr777rt6y+buNe5joezff//90KFDkmTNevjbdkhioexLly49++yzDz30kLSZU1NTU3d3
|
||||
965du4aGhvgLYCjHQtk//PDDiy++KJ3m8eCDDz733HNvvvmmepO///67+G5AIgtlnzp16vHHH5daM3vq
|
||||
qad27tz51Vdfzc7OyhsB5VkoW43sFStWSLAZNDQ0qP9+9NFHZ8+elbcAKjFd9q1bt95+++1ishm9/PLL
|
||||
Kms5HsjGwjVbbWVpthI1rF999dUvv/xSjgQyM132999/v2nTJik31fr169XV/fLly3/++accDGRmtOw7
|
||||
d+5MTk6uXLlS4i2jqampvb3922+/vXbtmhwJ5GT6mv3WW29Jv+UdOHDg66+/lgOAqhgtu1Ao7Nu3r3iv
|
||||
I5FaIG+88Ya6tM/Pz8sxQFWMlv3rr7++8sorUvFSq1ev7ujo+OSTT7hdDS2Mlj0xMdHS0iIt36OxsVF9
|
||||
s/jjjz/euHFDXgrUxlzZamCMjIyU/pmldevWffDBBz/99JO8DtDBXNlqPb///vuS811dXV3Dw8PyCkAf
|
||||
c2WrpaE6XrZsWbHpJ5544vnnn7948SILBPVgruzF33189NFHV65cefz48dOnT8vnAN3MlT09PV28Wu/a
|
||||
teuLL76QjwL1Ya7so0ePbty4cffu3TMzM/IhoG4Mlf3HH3989913AwMDV65ckQ8B9WTumv3zzz9funRJ
|
||||
ngB1Zq5swCTKRpgoG2GibISJshEmykaYKBthomyEibIRooWF/wOJOuh6obV2FwAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="ButtonAdd.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
BIN
Travel_Agency/Travel_Agency/Picture_Travel_Agency.jpg
Normal file
BIN
Travel_Agency/Travel_Agency/Picture_Travel_Agency.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 62 KiB |
@ -1,3 +1,7 @@
|
||||
using Travel_Agency.Repositories;
|
||||
using Travel_Agency.Repositories.Implementations;
|
||||
using Unity;
|
||||
|
||||
namespace Travel_Agency
|
||||
{
|
||||
internal static class Program
|
||||
@ -11,7 +15,20 @@ namespace Travel_Agency
|
||||
// To customize application configuration such as set high DPI settings or default font,
|
||||
// see https://aka.ms/applicationconfiguration.
|
||||
ApplicationConfiguration.Initialize();
|
||||
Application.Run(new Form1());
|
||||
Application.Run(CreateContainer().Resolve<FormTravel_Agency>());
|
||||
}
|
||||
|
||||
private static IUnityContainer CreateContainer()
|
||||
{
|
||||
var container = new UnityContainer();
|
||||
|
||||
container.RegisterType<IClientRepository, ClientRepository>();
|
||||
container.RegisterType<ITourRepository, TourRepository>();
|
||||
container.RegisterType<IContractRepository, ContractRepository>();
|
||||
container.RegisterType<IRouteRepository, RouteRepository>();
|
||||
container.RegisterType<IPaymentRepository, PaymentRepository>();
|
||||
|
||||
return container;
|
||||
}
|
||||
}
|
||||
}
|
73
Travel_Agency/Travel_Agency/Properties/Resources.Designer.cs
generated
Normal file
73
Travel_Agency/Travel_Agency/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,73 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Этот код создан программой.
|
||||
// Исполняемая версия:4.0.30319.42000
|
||||
//
|
||||
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
|
||||
// повторной генерации кода.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Travel_Agency.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("Travel_Agency.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 Picture_Travel_Agency {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Picture_Travel_Agency", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
124
Travel_Agency/Travel_Agency/Properties/Resources.resx
Normal file
124
Travel_Agency/Travel_Agency/Properties/Resources.resx
Normal file
@ -0,0 +1,124 @@
|
||||
<?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="Picture_Travel_Agency" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Picture_Travel_Agency.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,13 @@
|
||||
|
||||
using Travel_Agency.Entities;
|
||||
|
||||
namespace Travel_Agency.Repositories;
|
||||
|
||||
public interface IClientRepository
|
||||
{
|
||||
IEnumerable<Client> ReadClients();
|
||||
Client ReadClientById(int id);
|
||||
void CreateClient(Client client);
|
||||
void UpdateClient(Client client);
|
||||
void DeleteClientById(int id);
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
|
||||
using Travel_Agency.Entities;
|
||||
|
||||
namespace Travel_Agency.Repositories;
|
||||
|
||||
public interface IContractRepository
|
||||
{
|
||||
IEnumerable<Contract> ReadContracts(DateTime? dateFrom = null, DateTime? dateTo = null, int? clientId = null);
|
||||
void DeleteContract(int id);
|
||||
void CreateContract(Contract contract);
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
|
||||
using Travel_Agency.Entities;
|
||||
|
||||
namespace Travel_Agency.Repositories;
|
||||
|
||||
public interface IPaymentRepository
|
||||
{
|
||||
IEnumerable<Payment> ReadPayments(DateTime? dateFrom = null, DateTime? dateTo = null, int? clientId = null);
|
||||
void CreatePayment(Payment payment);
|
||||
}
|
14
Travel_Agency/Travel_Agency/Repositories/IRouteRepository.cs
Normal file
14
Travel_Agency/Travel_Agency/Repositories/IRouteRepository.cs
Normal file
@ -0,0 +1,14 @@
|
||||
|
||||
using Travel_Agency.Entities;
|
||||
|
||||
namespace Travel_Agency.Repositories;
|
||||
|
||||
public interface IRouteRepository
|
||||
{
|
||||
IEnumerable<Route> ReadRoutes();
|
||||
Route ReadRouteById(int id);
|
||||
void CreateRoute(Route route);
|
||||
void UpdateRoute(Route route);
|
||||
void DeleteRoute(int id);
|
||||
|
||||
}
|
14
Travel_Agency/Travel_Agency/Repositories/ITourRepository.cs
Normal file
14
Travel_Agency/Travel_Agency/Repositories/ITourRepository.cs
Normal file
@ -0,0 +1,14 @@
|
||||
|
||||
using Travel_Agency.Entities;
|
||||
|
||||
namespace Travel_Agency.Repositories;
|
||||
|
||||
public interface ITourRepository
|
||||
{
|
||||
IEnumerable<Tour> ReadTours();
|
||||
Tour ReadTourById(int id);
|
||||
void CreateTour(Tour tour);
|
||||
void UpdateTour(Tour tour);
|
||||
void DeleteTour(int id);
|
||||
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
|
||||
using Travel_Agency.Entities;
|
||||
|
||||
namespace Travel_Agency.Repositories.Implementations;
|
||||
|
||||
public class ClientRepository : IClientRepository
|
||||
{
|
||||
public void CreateClient(Client client)
|
||||
{
|
||||
}
|
||||
|
||||
public void DeleteClientById(int id)
|
||||
{
|
||||
}
|
||||
|
||||
public Client ReadClientById(int id)
|
||||
{
|
||||
return Client.CreateEntity(0, string.Empty, string.Empty, 0);
|
||||
}
|
||||
|
||||
public IEnumerable<Client> ReadClients()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
public void UpdateClient(Client client)
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
|
||||
using Travel_Agency.Entities;
|
||||
|
||||
namespace Travel_Agency.Repositories.Implementations;
|
||||
|
||||
public class ContractRepository : IContractRepository
|
||||
{
|
||||
public void CreateContract(Contract contract)
|
||||
{
|
||||
}
|
||||
|
||||
public void DeleteContract(int id)
|
||||
{
|
||||
}
|
||||
|
||||
public IEnumerable<Contract> ReadContracts(DateTime? dateFrom = null, DateTime? dateTo = null, int? clientId = null)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
|
||||
using Travel_Agency.Entities;
|
||||
|
||||
namespace Travel_Agency.Repositories.Implementations;
|
||||
|
||||
public class PaymentRepository : IPaymentRepository
|
||||
{
|
||||
public void CreatePayment(Payment payment)
|
||||
{
|
||||
}
|
||||
|
||||
public IEnumerable<Payment> ReadPayments(DateTime? dateFrom = null, DateTime? dateTo = null, int? clientId = null)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
|
||||
using Travel_Agency.Entities;
|
||||
|
||||
namespace Travel_Agency.Repositories.Implementations;
|
||||
|
||||
public class RouteRepository : IRouteRepository
|
||||
{
|
||||
public void CreateRoute(Route route)
|
||||
{
|
||||
}
|
||||
|
||||
public void DeleteRoute(int id)
|
||||
{
|
||||
}
|
||||
|
||||
public Route ReadRouteById(int id)
|
||||
{
|
||||
return Route.CreateEntity(0, string.Empty, 0, string.Empty, 0, 0);
|
||||
}
|
||||
|
||||
public IEnumerable<Route> ReadRoutes()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
public void UpdateRoute(Route route)
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Travel_Agency.Entities;
|
||||
using Travel_Agency.Entities.Enums;
|
||||
|
||||
namespace Travel_Agency.Repositories.Implementations;
|
||||
|
||||
public class TourRepository : ITourRepository
|
||||
{
|
||||
public void CreateTour(Tour tour)
|
||||
{
|
||||
}
|
||||
|
||||
public void DeleteTour(int id)
|
||||
{
|
||||
}
|
||||
|
||||
public Tour ReadTourById(int id)
|
||||
{
|
||||
return Tour.CreateEntity(0, string.Empty, TypeOfTour.None, 0);
|
||||
}
|
||||
|
||||
public IEnumerable<Tour> ReadTours()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
public void UpdateTour(Tour tour)
|
||||
{
|
||||
}
|
||||
}
|
@ -6,6 +6,26 @@
|
||||
<Nullable>enable</Nullable>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<LangVersion>preview</LangVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Unity" Version="5.11.10" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Update="Properties\Resources.Designer.cs">
|
||||
<DesignTime>True</DesignTime>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Update="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
Loading…
Reference in New Issue
Block a user