Все Сущности, формы для них
This commit is contained in:
parent
db39fdf2e8
commit
c4e70dafce
27
Travel_Agency/Travel_Agency/Entities/Client.cs
Normal file
27
Travel_Agency/Travel_Agency/Entities/Client.cs
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
|
||||||
|
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Security.Policy;
|
||||||
|
using System.Web;
|
||||||
|
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
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
30
Travel_Agency/Travel_Agency/Entities/Contract.cs
Normal file
30
Travel_Agency/Travel_Agency/Entities/Contract.cs
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
|
||||||
|
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
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
20
Travel_Agency/Travel_Agency/Entities/Contract_Tour.cs
Normal file
20
Travel_Agency/Travel_Agency/Entities/Contract_Tour.cs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
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,
|
||||||
|
}
|
19
Travel_Agency/Travel_Agency/Entities/Payment.cs
Normal file
19
Travel_Agency/Travel_Agency/Entities/Payment.cs
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
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
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
24
Travel_Agency/Travel_Agency/Entities/Route.cs
Normal file
24
Travel_Agency/Travel_Agency/Entities/Route.cs
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
|
||||||
|
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
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
27
Travel_Agency/Travel_Agency/Entities/Tour.cs
Normal file
27
Travel_Agency/Travel_Agency/Entities/Tour.cs
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
84
Travel_Agency/Travel_Agency/FormTravel_Agency.cs
Normal file
84
Travel_Agency/Travel_Agency/FormTravel_Agency.cs
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
93
Travel_Agency/Travel_Agency/Forms/FormClient.cs
Normal file
93
Travel_Agency/Travel_Agency/Forms/FormClient.cs
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using 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!);
|
||||||
|
}
|
||||||
|
}
|
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;
|
||||||
|
}
|
||||||
|
}
|
114
Travel_Agency/Travel_Agency/Forms/FormClients.cs
Normal file
114
Travel_Agency/Travel_Agency/Forms/FormClients.cs
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using Travel_Agency.Repositories;
|
||||||
|
using Travel_Agency.Repositories.Implementations;
|
||||||
|
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>
|
||||||
|
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>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAAKkAAAClCAIAAACodUoDAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
|
vgAADr4B6kKxwAAAF+dJREFUeF7tXWuPHcWZpvvcT/eZGc+Mx4MvYGOMr4Nn7PGYGc94xvY4EayWzRek
|
||||||
|
fEFKpEjRhmg3lmATKSChZaWED+twMyEkEG4mrLlfYsDY2GGDWUIE5DfwQ9jnPf36eFynqk51d/XlzDmP
|
||||||
|
Ho16+nR3VdfT9Va9b1dVX/dtH72Kvva9i772vYu+9r2Lvva9i772vYu+9r2Lvva9i772vYu+9r2Lvva9
|
||||||
|
i772vYu+9r2Lvva9i772vYtVrv0333xz+fLlkydPnmhitomNTVx3LYKdwQF33XUXDj5z5gzO5QutRqw2
|
||||||
|
7SF2oHS7unEQPBCr7GlYDdpDD+ti64HnIHgUOAfdiW7VHvUbRQ8B0pRciu59CLpPexQ0LDAXfJ7QdQ9B
|
||||||
|
12iPip6yYY8MPASc6XyjC7QPbDuXa/cg/2Yg19qj7LqiomuQ5ycgp9qvAtVXIp9PQO60h8OWtOoD/ziu
|
||||||
|
Ih+RDNBFzdUTkCPt0Zuz264LukYmX84ScI98w1kjL9qjQnDZxIMgWxLklOLh5MmTfOfZIXvt4xt5QZvU
|
||||||
|
yMlHBZqAbCPEGWuPx59LIjwEJTIkZygSMjQAWWofuXUXij4/5PyFRFY9gGy0R7cump0Xyjqf5LyGAUoj
|
||||||
|
ffufgfbRunVC+eafnO8wSNn+p639iRMn+EaNIZRpd5HvwRgoHy6p5JGq9mEbeKEcu5d8P2ZIrflPSXs0
|
||||||
|
8KFevApltwrIN2YGlBVKjMsuMaShfdienVBq0di4tDjw9fHGJ0uN84cbnx5pfH6UNj5u7ry46J9boJ2f
|
||||||
|
HvE/XGhcWBz4chm/+h80d15a8t+a89+fb1w+4r9zyH9zjvZ8sOC/NiskEYF8hwZAiSUtf+LaZyK8//Zc
|
||||||
|
5ac3l24fL90xXrpzfem746XvrCv90/W0sTxWOr4OPxWPjoHYQxuLa2l7eay4MFo8NFI8MFyYHCJODRX2
|
||||||
|
DRVuHSzsGcSlvGenhYQikO/TAEnLn7j25qZeKKM49P88727x+LquwxsxUXTqT+8XEopMvmYnoPS4HBNA
|
||||||
|
stpnIjzonT5Y2DXAl7YE9/qqRe1Bvm4nJCd/gtqb9+qFQolP79XZwvYGX90S3A21+lP7hIRiki/dCQn1
|
||||||
|
/JPS3tyPF4rDCtFTczdfsfmW4FQL1rUH+eqdkITfn4j25m9ohIKwRe+lGfeGOqdhCc5wOQntQU6gE6xH
|
||||||
|
/exrf/nyZc5sJwhFYJEQyRmrcDKW4G6s1U9NwUUU0rJCTqMT7Mb8LWsPn4Sz2QnCzdsl/HJnrWXtnaFS
|
||||||
|
/beJ1PuAnIwWdr0+y9obduyF27ZO708HnZEyJ2YJ1N4/OSUkZJeckhaQn8s6Nmxqb9i/E244CdZ/t99d
|
||||||
|
V+X0ZHAGStdVXKdecDfVcKTjF2HSsc0/y0A+3hPJag9yYlrY6vdZ096wmRduNSF6Lx90RpX1vjA5VL77
|
||||||
|
xtqvJsD6Y5Pw2uvPTMOe13494W7z+aA2oAORqM1vkdPTworlt6a9ibUXbjI5ko83rqz3hd0DFMNvOwss
|
||||||
|
LozyQTLUH0+83gfk9NSwYvntaG/i1Am3lyi9Z6Y1Nr+wf43/9pxwCtj4y1Jh39B1ihAwDEkKNr9FTlWN
|
||||||
|
+C6fBe1N+vbCjSVN7/kDOu2n1/hvybT/eBEmQRX/p/b+scmEfDwpOWE1Ylp+C9qbxG6Fu0qajY8Ou+uV
|
||||||
|
HbfCjkbj/GHhlIAam+/UCqR92ynJkRNWI2asN672JoPvhFtKgd7pg5rYTmHPoP/evHAK8YtjxUMjfFAb
|
||||||
|
HK9YfzRV7UFOW404VT+u9h0rvXAz6dB7dhommnPQBrL5r0sGYqADWNiptvnj1fojkwNfLQtnJU1OXoE4
|
||||||
|
b/liaZ/PSg/67xzSab+94Z8NX+/HKt7/3Caekgo5BwpEnt8ZS/uOfp1wD6nRf1enPZx4/8MF4ZSAxaW1
|
||||||
|
fJAM3oszwvHpkJNXILK/F137jpVeuIE06T13QFfvp4bkNv/SEn5S2vyNNf9NiXeQDjkTCkSr+tG1z2dL
|
||||||
|
HxDGWefjTQxKVWz89UjxwLBOe5lnmA45EwpEq/oRtc9zpQcbnyy5m5Tv792bPP99WXv/j+OlY2N8kAze
|
||||||
|
C9nY/ICcCQUidPgjap/nSg/Cx9PZ/N0D8nr/+dHivNq/Hyl7fzoonJImOR8KRPD1I2rPCSogZDp90rgd
|
||||||
|
tfbF2RGpf0/t/a2D1xUUNn9TnZ6YFON67eSsKBC26kfRPueVHmxcXNSM2SrsGWz8ZUk4JSAeCz6oDY5f
|
||||||
|
zKqf3yJnRYGwVT+K9pyUAkJ2MyE6ZbqY7tQQOgTCKSB20rscFUqu9/wB4ZT0yZmRIWyPL7T2Oe/lBSSb
|
||||||
|
v0GpffHIWmk8n2Z04IlR9fM31Pw3ZrO1+SDnRoFQZj+09nqDL2Q0K1JsZ6Na++k1NFuv7SyK6e4Z5IPa
|
||||||
|
4KyteK9k2ddrkTMkQ6ghPaG150QUEHKZFam9V4/Pp/d4F2Xaf7JUPDjMB8ngPWNhPl58cm5kCGX2w2nf
|
||||||
|
FQYfhDOms/nzo9JxO/65BTwW6rEbFe/lvNd7wNzsh9O+Kww+iPbeaRQ5W20ozo3Itf9wwb3Z14zdoEhw
|
||||||
|
1u19QM6TDOZmfzVq/+Wyf1Y3Xg8CS7Unm3+b2ua7Tj0fNh/kLMlg/lY3nPZ8eQWE/GXI+h/2a+p9Yf8a
|
||||||
|
VXuPn/igNjj1gpX591bIeVKA1eqEENrrR2ELmcuW9d/uoxH4ClB7L/XxPlgga6G2+d6rs7HGbkjbi6gX
|
||||||
|
5GzJYNjkh9Be39ETcpYI9WX3xTGw8X9HG58d9U7P6MZs7RyQ1/vgPZ4CFNf74zT6BP578+gV0iosZ+dp
|
||||||
|
+/152n57jvdg451D/p/nia/P4m/9qX3MU1P098kpIrYfn6o/MUUTBMBHm8TGb/biGCFjUnK2ZDAcwhtC
|
||||||
|
eyuNPW4MJUhzIXDnj9MNV3+5s/rAztrDE7UHd1X/Y3vtod21/9pTvfeW6i921P5zN/5Wf7YNB1Tv31n5
|
||||||
|
t5tp//07sadyz1b66b7tlR/fRAfct738w82lf1lfvvvG8vc3wXQ7ntLmu9sU7f3/LmliugAuW5gYdEbL
|
||||||
|
hV0DhakhmtOzsVbYO1jY3kBy+FvYM+isrbjra4XdA+4Wz6kWkBaOQXvhDJdxPM0UK7swIfS6oeg4a8rY
|
||||||
|
cAZLtHNdFa4EUiktj5kMFAiyJIVhcDeE9vAd+doyCDmT0n9ttnTnelhjmFb3hrozVEKR4V9qm0sub1cL
|
||||||
|
NFuqUSTxXId2+kXsoZ1+EYVIO1GU+LXo0E5s4NfmTlyEPLSCQxtqQODGRzKbDx/vFmU/PzUUbh2EtRDy
|
||||||
|
1k4+WgZDLz+E9nxhGYRsqUgNKpyorEHxfFl7j4YAlTgP2jc+PSLkTUo+QQbWTAtT7dF94KvKIORJRTSN
|
||||||
|
1pdCiQDYXlRxIW8g2XztnKx0UJgckk4baiefIINJd89UeysdPfR9CtNKJyo1kI8nrfeXmj5extW+qb3Z
|
||||||
|
wEA+QQaTVRrS1f7dQ5qXJakBnXl5vT9/OBft/e4BPIVC3qTkE2Qw6eqbam+lk48eVl5svmyMNvl4ebD5
|
||||||
|
uwZM+nognyCDSWQ3Ve39t+Y0gbPUgOdPbvM/PaIZr5caYPMpiNSWvXbyCTKYRHZNtddPwxDypGJOtCeb
|
||||||
|
L6335w+7N3l2bL70Gq2d2hRU3ZF28gky2NQ+vnMPUoO602y5S2npSFWBlx9g5a8t/771K1DmneREqer9
|
||||||
|
7AhFHYbLFGDwi87aCv3F9mjZGa0EoQiKxmBPM0rhjFWcQTre3VDDhntDvbCjgU6Du9nDX4rwbPZoe2IQ
|
||||||
|
+/FgYQ/cSHrCFCNCAXJBFcMJ28nntMHExbegvZAbDdGMkQOtBq1+vDx2dd1jEBv/fD0tiYyN722g7e9t
|
||||||
|
KP9gc/XEtsqPtlR+srX68+2Ve7ZSdC8I8/3rVvxUfWBn5d+3gRQr/MUObFCUMAgX3nuL99wBuHNC3kC0
|
||||||
|
97X/3lt/Ztp7cab+yGT91BT62xSFfWzSe2nGOz1Dscjf7/fPztMyLU/tg2X2Xj5IGy/MwH31XjnovzFL
|
||||||
|
QeWPDsOjofDR349RfPfdQwNfNdfpfouW5MbO2sMTeAj4nttQnBuhU9qyJyWf0wab2vMlZRByoyGKUjMw
|
||||||
|
xl1XrT20u/HZUVrI/PxhKiYU2cVFir9+cYx2XlikoAd2/pXWRKfwfjOAj9LENu352zFK6O/HaPvLZToA
|
||||||
|
e77gnbSNPcHOFbm6yuDVAE4EsYEjg4sEPwW/BjuxEewMfsXf1msFA/qv6ZZ8Lc4MG/b1QD6nDfnT/tyC
|
||||||
|
bkDcSDknA2OSJg0S2aqMb8I0Gvp4IJ8jAyunRqrao+Ki5ePT2oB21NzWdTW9M7dp+j3F6TXx6z3AyqmR
|
||||||
|
br1/e04zMAZNIApFOGVVkrTXtPe3DRvGdEE+RwZWTg1T7W319fBQ82ltQFXoEe1pCLlmuuDEoPQVs5R8
|
||||||
|
jgysnBqpak8Bc3U/H02g1O1efaSlH9VLvqJLJA05S8nntMFmX89avZ9R2/ztjXDfI5J2s1U982AnNoJe
|
||||||
|
uqpbvtIXgGuAPXATgp1fLpP7EOz8W9OVwE74FHA0cEzT0YADgitfdUnghmDj4iLtvHTlq02fHYU7o1ke
|
||||||
|
AK5Q/Hc5NrW3E9d79xCcVz6nDWgC4fhSaTa/VEXhl6+WcQpcZNp5xWlGWcONJmcaLvULM+Rev3wQrjY5
|
||||||
|
4k83ne/f74cjDnccTjmNgnpqH7npp6bgspPj/sw0nHgSqS17cPrh+gcxAAoGtAIDD+4KogU0fOjENgoh
|
||||||
|
3Ledfv3xTTR86OfbKz/ZWvnRFvxU/sHmVhCCAhJ3jNP2yljFd9ZRAOP2cb5nGWAaDft6fIIMuYvp0sKV
|
||||||
|
U+rJjgWHIl97B/EQ0MaOBlo+jovtHrgaLNvRoDE/gyUKpQ2XKaw2VqEQ27VBNwrDjbaF53D8UInG7cgG
|
||||||
|
R+BpoznYAa4EAQmt4ODK4UCtMOLK0GEL0hCkMpR3DWg4YeyYrsmwLVPt9WtkC3lSkQpXH89vlY60mMzK
|
||||||
|
rgNcesKkhYvehmasZmpAEcHsCXmTkk+Qwab2+hVzhTypSJ8wmlTX+7RAY7RV9T4Hr5itaH/GYPUlU+2t
|
||||||
|
DM5HM2b902URUFwYlbb3FG7TLqGfDugVs2woaTv5BBlsam9lvB75eOqYRkpwHXQa5Db/XD5sPnw8s/gm
|
||||||
|
nyCDzfF6AF9VBiFPKqK/nb3Nd5ovyGUB887dkVSgWvK1nXyCDKyZFiG017j4gJAtKf23c6B9YPNl73BR
|
||||||
|
73Ni81VLwK0kHy2DiXMPhNA+/rAt9LCuOlFZATZ/76B8ThbqvcYFTQvuzb7/Qee4Hh8tg0knHwihffyu
|
||||||
|
PvX18qD9Lb58nO5Hh/Vzssi/LzjkapboO0vkxLcmBhWbU4ha04ZWziVqTTBq0E6nWqDwA3biIkEoAj8N
|
||||||
|
0ZifIEpRunO9SXyTsySDSUcPCKF9/O4e2vvSMi1c6YxWKKhZdilEc33VWVNG2WGD3nBg50hz6tpwGYXo
|
||||||
|
bqy523ya2LaFIjzu+pqztoLeEAwjigx/UYnpmE01VFk4ETRZbmJQ32xTbEc6bufCItLig9pAye1fU/7+
|
||||||
|
pvLdN9LEvx9upujez7bRkKEgzHfPVpoZeP/O6r230NRBbDxAUwcpMhhMLGyGC2sP7aZphw/uqj08QQf8
|
||||||
|
cifNwnwcnKIhQ3+crseei2n4CcUQ2gN8bQWEzElJkdff7L1m5in4RHNS6qnmBFWwNWW1SViLYEIr8Z1D
|
||||||
|
NNH17Iqpr+83J8MGe841J8l+uIASpJqnADrz8pjuxeb6+QrQGuqnZ2hYURDAD4YDgdJXA8Hrg8TIeVKA
|
||||||
|
1eqEcNpbieyKtF52Xy17r84qX5K6DkyrtEFFe69bU3Ug2e9ihiLnSQbDxh4Ip72VyG4K9J6dpqZXAfLx
|
||||||
|
pGsrot6rGwu0zfU/2Pz+fRxynmRISnt9kw8IWcyKaDipI6ZA8bZhufZo79XThMlanJ3nV8CZkjOkgGFH
|
||||||
|
DwinPRDfy0+cX9OkT53NhxMlnZtxYVHzihn13nsp4/V0A3KGFGCdDBBa+64w+zQwprmGhQQOra0o9/Gg
|
||||||
|
vbq9dzfUsl1DvUXOkAzmBh8IrX1XmH0PNl+N4kGFzUd7v0P5Hs/d7EkjQimTc6OAucEHQmsP5N/se68c
|
||||||
|
dNTfvy/skQ+GbFxa1AwldTfW8jCEnHOjACtkhija64O7gJDdtIn2/o1Z5ZqqaO/X13zZoCjy8Y4ov5NF
|
||||||
|
Nj/r9p6zokAogw9E0T7/Zt97/sA146uuRWGfev18dTyfnpjsvpUUkLOiAMtjjCjaAzmv+t6LM7q43uyI
|
||||||
|
cHxAGk6onjLm3lDPtr3nfCgQttIDEbXPddWHzX9zTvmdrIJDc7Bl7+/99+Y173LgNGZr8zkfCoTq5QWI
|
||||||
|
qD2g7/EBQtbTJJwxzeQHGq/3+VHhFJCGlqiHFZH2pzPz8TgTCkSo9EB07fGgccoKCLlPk94LM5wJGUrH
|
||||||
|
xoTjA/rvz9OqCArAkEh7CemQM6FAhEoPRNceyG3VR6cMLhlnQoDrqN7jUb3XTBNeV83nt5BNpmFIEUv7
|
||||||
|
3FZ9au/V2tOiJtL2/vVZXT8fNv+5DL6TxcmrEa3SA7G0B/RvdQHhTtIh+vmcvAzFpbXC8QFpjLZ67Aa0
|
||||||
|
zyS2w8krEK2lDxBX+44dfkC4mRQI46xZQ714aOTqyIsV9M/qlnwl7d9JW3tOW43IlR6Iqz3Q0dcHhFtK
|
||||||
|
ll8t1x+ZdFXfTIHN3zkgjemSzdfEdGHz0/1uBiesRpxKD1jQPodVv/7oJA2GVEBZ79+b18R2mmO2UvXx
|
||||||
|
OGE1UPKsQSRY0B7QD+ENINxYoqw/NunUlON2igujwvEBaYy25j3e+prhVCkr5FTVMPw4hgZ2tAc6+nuA
|
||||||
|
cHtJ8WvSHiaaUxUAm797oPGxzOa/Naez+fDx0voeLiepRmS/biWsaW9i+QHhJhNi/YkpZ1QR13Oa73Jk
|
||||||
|
C1fStCH1eD3SPpVvpHF6WhiOwtbDmvaAfkhPC8KtJsH641OcmAxKm39hURfTHa+aTJWKSU5MC5M1sk1g
|
||||||
|
U3vAxPIDwg1bJ30jTe3jwYmv/XoCx9Anm57ejwai9qsJsHz3jZrpgjAkSS/9yClpYcXaB7CsPSx/HuSH
|
||||||
|
zVe29024zU9cOX4RlpzmANWbH2hSf1IPwJH13yU4RpuT6YSYffuVsKw9oF+lYSWEm7fI+pNT9L0tq6Al
|
||||||
|
XxMbq8lpdIKVZr4F+9oDJi5fAKEIbJFs/pCuEkeAs7aSUFyPE+iE+E6dgES0Bwz7fYBQEBYIH+/UlPJd
|
||||||
|
TlSgA1E3myUZinz1TrDVv1uJpLQHTGK9AYTiiE+I5Awrx25Eg3tD3fq4Hb50J8SM3aqQoPZAx7d8LQiF
|
||||||
|
EpOkve323t3s2fXx+LqdYLFjLyBZ7YFM5If2yjHaUVHY3jD8hJEJ+aKdkJzwQOLam3t9AYQyikZ47Xof
|
||||||
|
LwIKuwasvMvhyxkA5WbRo2tH4toD6csP7eVLnUbAlfm87hZPOqMjFINLmSBp4YE0tAdwG+bGP4BQaqHo
|
||||||
|
PTtdumOclma5dbCwb4iWY5kkFg8MFw+NFBdGS8tjxaNjxcW1+Fv67jhtY+P28dLx5lrHrXWPsXHneloS
|
||||||
|
+fbxyk9vNv+kgZR8YwZAWSUtPJCS9gHMe/4BhLILRf+1Wf+DBVqS+805+OWNy0dodZbml6oanx6hn84f
|
||||||
|
pmXRLyz6Hy7Q0ubYeW6BZl98fbzx8SJ+pTXRg682fbJEOy9Fn5jB92OGhHr17UhVe8Dc729BKMfuIt+D
|
||||||
|
MZLw41VIW3vAPOq3EkKZ5p+c7zCIM/guAjLQHrh8+XKo3l8LQvnmk5zXMEihZ9eObLQPELb5b0Eo6/yQ
|
||||||
|
8xcSqTXwArLUHohm/1sQij5DcobCw/obGnNkrD0A+x/W/WuHoERq5OQjAXbe7jvZsMhe+wAxDUALgjZJ
|
||||||
|
kFOKh5S7dVLkRfsAkXsAKgiyRSZfzgZwj+l366TIl/YAKkT8JkAPQdeV5COSQeZGXkDutA+AJ8C6DcgQ
|
||||||
|
UD0PRl5ATrUPsAqegHyqHiDX2gfo0icAec6t6gG6QPsWuuIJQEU/ceJETnpzenST9gFyawbQRc15RRfQ
|
||||||
|
fdq3kIeHALU8sO1dUdEFdLH2LQQPQZrPQWDYc+WwRcBq0H4loEfwKNgNEgRinzx5shvrtwqrTft2BE8D
|
||||||
|
lAseCABCAqzqFQQ7gwNwcKA0zl1NYgtY/dr3oUJf+95FX/veRV/73kVf+95FX/veRV/73kVf+95FX/ve
|
||||||
|
RV/73kVf+17Ft9/+P+vFPylX2rU2AAAAAElFTkSuQmCC
|
||||||
|
</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;
|
||||||
|
}
|
||||||
|
}
|
77
Travel_Agency/Travel_Agency/Forms/FormContract.cs
Normal file
77
Travel_Agency/Travel_Agency/Forms/FormContract.cs
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using 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;
|
||||||
|
}
|
||||||
|
}
|
97
Travel_Agency/Travel_Agency/Forms/FormContracts.cs
Normal file
97
Travel_Agency/Travel_Agency/Forms/FormContracts.cs
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using Travel_Agency.Repositories;
|
||||||
|
using Travel_Agency.Repositories.Implementations;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
54
Travel_Agency/Travel_Agency/Forms/FormPayment.cs
Normal file
54
Travel_Agency/Travel_Agency/Forms/FormPayment.cs
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using 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;
|
||||||
|
}
|
||||||
|
}
|
58
Travel_Agency/Travel_Agency/Forms/FormPayments.cs
Normal file
58
Travel_Agency/Travel_Agency/Forms/FormPayments.cs
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using 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;
|
||||||
|
}
|
||||||
|
}
|
87
Travel_Agency/Travel_Agency/Forms/FormRoute.cs
Normal file
87
Travel_Agency/Travel_Agency/Forms/FormRoute.cs
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using Travel_Agency.Entities;
|
||||||
|
using Travel_Agency.Repositories;
|
||||||
|
using Travel_Agency.Repositories.Implementations;
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
115
Travel_Agency/Travel_Agency/Forms/FormRoutes.cs
Normal file
115
Travel_Agency/Travel_Agency/Forms/FormRoutes.cs
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using 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;
|
||||||
|
}
|
||||||
|
}
|
102
Travel_Agency/Travel_Agency/Forms/FormTour.cs
Normal file
102
Travel_Agency/Travel_Agency/Forms/FormTour.cs
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using Microsoft.VisualBasic.FileIO;
|
||||||
|
using Travel_Agency.Entities;
|
||||||
|
using Travel_Agency.Entities.Enums;
|
||||||
|
using Travel_Agency.Repositories;
|
||||||
|
using Travel_Agency.Repositories.Implementations;
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
114
Travel_Agency/Travel_Agency/Forms/FormTours.cs
Normal file
114
Travel_Agency/Travel_Agency/Forms/FormTours.cs
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using Travel_Agency.Repositories;
|
||||||
|
using Travel_Agency.Repositories.Implementations;
|
||||||
|
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
|
namespace Travel_Agency
|
||||||
{
|
{
|
||||||
internal static class Program
|
internal static class Program
|
||||||
@ -11,7 +15,20 @@ namespace Travel_Agency
|
|||||||
// To customize application configuration such as set high DPI settings or default font,
|
// To customize application configuration such as set high DPI settings or default font,
|
||||||
// see https://aka.ms/applicationconfiguration.
|
// see https://aka.ms/applicationconfiguration.
|
||||||
ApplicationConfiguration.Initialize();
|
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>
|
<Nullable>enable</Nullable>
|
||||||
<UseWindowsForms>true</UseWindowsForms>
|
<UseWindowsForms>true</UseWindowsForms>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<LangVersion>preview</LangVersion>
|
||||||
</PropertyGroup>
|
</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>
|
</Project>
|
Loading…
Reference in New Issue
Block a user