diff --git a/FuelAndLubricants/FuelAndLubricants/Forms/FormCar.cs b/FuelAndLubricants/FuelAndLubricants/Forms/FormCar.cs
index 9529bdc..3258c8c 100644
--- a/FuelAndLubricants/FuelAndLubricants/Forms/FormCar.cs
+++ b/FuelAndLubricants/FuelAndLubricants/Forms/FormCar.cs
@@ -6,7 +6,7 @@ namespace FuelAndLubricants.Forms
{
public partial class FormCar: Form
{
- private readonly ICarRepository _carRepository;
+ private readonly IRouteRepository _carRepository;
private int? _carId;
@@ -43,7 +43,7 @@ namespace FuelAndLubricants.Forms
}
}
}
- public FormCar(ICarRepository carRepository)
+ public FormCar(IRouteRepository carRepository)
{
InitializeComponent();
_carRepository = carRepository ??
diff --git a/FuelAndLubricants/FuelAndLubricants/Forms/FormCars.cs b/FuelAndLubricants/FuelAndLubricants/Forms/FormCars.cs
index 797ff16..aea072b 100644
--- a/FuelAndLubricants/FuelAndLubricants/Forms/FormCars.cs
+++ b/FuelAndLubricants/FuelAndLubricants/Forms/FormCars.cs
@@ -7,9 +7,9 @@ namespace FuelAndLubricants.Forms
{
private readonly IUnityContainer _container;
- private readonly ICarRepository _carRepository;
+ private readonly IRouteRepository _carRepository;
- public FormCars(IUnityContainer container, ICarRepository carRepository)
+ public FormCars(IUnityContainer container, IRouteRepository carRepository)
{
InitializeComponent();
_container = container ??
diff --git a/FuelAndLubricants/FuelAndLubricants/Forms/FormRoute.Designer.cs b/FuelAndLubricants/FuelAndLubricants/Forms/FormRoute.Designer.cs
new file mode 100644
index 0000000..2c1d86a
--- /dev/null
+++ b/FuelAndLubricants/FuelAndLubricants/Forms/FormRoute.Designer.cs
@@ -0,0 +1,144 @@
+namespace FuelAndLubricants.Forms
+{
+ partial class FormRoute
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ label5 = new Label();
+ numericUpDownLength = new NumericUpDown();
+ buttonCancel = new Button();
+ buttonRouteSave = new Button();
+ textBoxEndPoint = new TextBox();
+ label2 = new Label();
+ textBoxStartPoint = new TextBox();
+ label1 = new Label();
+ ((System.ComponentModel.ISupportInitialize)numericUpDownLength).BeginInit();
+ SuspendLayout();
+ //
+ // label5
+ //
+ label5.AutoSize = true;
+ label5.Location = new Point(10, 70);
+ label5.Name = "label5";
+ label5.Size = new Size(102, 15);
+ label5.TabIndex = 33;
+ label5.Text = "Длина маршрута";
+ //
+ // numericUpDownLength
+ //
+ numericUpDownLength.DecimalPlaces = 2;
+ numericUpDownLength.Location = new Point(117, 68);
+ numericUpDownLength.Minimum = new decimal(new int[] { 1, 0, 0, 131072 });
+ numericUpDownLength.Name = "numericUpDownLength";
+ numericUpDownLength.Size = new Size(140, 23);
+ numericUpDownLength.TabIndex = 32;
+ numericUpDownLength.Value = new decimal(new int[] { 1, 0, 0, 131072 });
+ //
+ // buttonCancel
+ //
+ buttonCancel.Location = new Point(182, 102);
+ buttonCancel.Name = "buttonCancel";
+ buttonCancel.Size = new Size(75, 23);
+ buttonCancel.TabIndex = 28;
+ buttonCancel.Text = "Отмена";
+ buttonCancel.UseVisualStyleBackColor = true;
+ buttonCancel.Click += ButtonCancel_Click;
+ //
+ // buttonRouteSave
+ //
+ buttonRouteSave.Location = new Point(10, 102);
+ buttonRouteSave.Name = "buttonRouteSave";
+ buttonRouteSave.Size = new Size(75, 23);
+ buttonRouteSave.TabIndex = 27;
+ buttonRouteSave.Text = "Сохранить";
+ buttonRouteSave.UseVisualStyleBackColor = true;
+ buttonRouteSave.Click += ButtonRouteSave_Click;
+ //
+ // textBoxEndPoint
+ //
+ textBoxEndPoint.Location = new Point(117, 39);
+ textBoxEndPoint.Name = "textBoxEndPoint";
+ textBoxEndPoint.Size = new Size(140, 23);
+ textBoxEndPoint.TabIndex = 25;
+ //
+ // label2
+ //
+ label2.AutoSize = true;
+ label2.Location = new Point(10, 42);
+ label2.Name = "label2";
+ label2.Size = new Size(94, 15);
+ label2.TabIndex = 24;
+ label2.Text = "Конечная точка";
+ //
+ // textBoxStartPoint
+ //
+ textBoxStartPoint.Location = new Point(117, 10);
+ textBoxStartPoint.Name = "textBoxStartPoint";
+ textBoxStartPoint.Size = new Size(140, 23);
+ textBoxStartPoint.TabIndex = 23;
+ //
+ // label1
+ //
+ label1.AutoSize = true;
+ label1.Location = new Point(10, 13);
+ label1.Name = "label1";
+ label1.Size = new Size(101, 15);
+ label1.TabIndex = 22;
+ label1.Text = "Начальная точка";
+ //
+ // FormRoute
+ //
+ AutoScaleDimensions = new SizeF(7F, 15F);
+ AutoScaleMode = AutoScaleMode.Font;
+ ClientSize = new Size(267, 134);
+ Controls.Add(label5);
+ Controls.Add(numericUpDownLength);
+ Controls.Add(buttonCancel);
+ Controls.Add(buttonRouteSave);
+ Controls.Add(textBoxEndPoint);
+ Controls.Add(label2);
+ Controls.Add(textBoxStartPoint);
+ Controls.Add(label1);
+ Name = "FormRoute";
+ Text = "FormRoute";
+ ((System.ComponentModel.ISupportInitialize)numericUpDownLength).EndInit();
+ ResumeLayout(false);
+ PerformLayout();
+ }
+
+ #endregion
+
+ private Label label5;
+ private NumericUpDown numericUpDownLength;
+ private Button buttonCancel;
+ private Button buttonRouteSave;
+ private TextBox textBoxEndPoint;
+ private Label label2;
+ private TextBox textBoxStartPoint;
+ private Label label1;
+ }
+}
\ No newline at end of file
diff --git a/FuelAndLubricants/FuelAndLubricants/Forms/FormRoute.cs b/FuelAndLubricants/FuelAndLubricants/Forms/FormRoute.cs
new file mode 100644
index 0000000..3e7b40e
--- /dev/null
+++ b/FuelAndLubricants/FuelAndLubricants/Forms/FormRoute.cs
@@ -0,0 +1,70 @@
+using FuelAndLubricants.Entities;
+using FuelAndLubricants.Repositories;
+
+namespace FuelAndLubricants.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 InvalidOperationException(nameof(route));
+
+ textBoxStartPoint.Text = route.Start_Point;
+ textBoxEndPoint.Text = route.End_Point;
+ numericUpDownLength.Value = (decimal)route.Route_Length;
+
+ _routeId = value;
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ }
+ }
+
+ public FormRoute(IRouteRepository routeRepository)
+ {
+ InitializeComponent();
+ _routeRepository = routeRepository ??
+ throw new ArgumentNullException(nameof(routeRepository));
+ }
+
+ private void ButtonRouteSave_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ if (string.IsNullOrWhiteSpace(textBoxStartPoint.Text) || string.IsNullOrWhiteSpace(textBoxEndPoint.Text))
+ 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)
+ {
+ return Route.CreateEntity(id, textBoxStartPoint.Text, textBoxEndPoint.Text, (float)numericUpDownLength.Value);
+ }
+ }
+}
diff --git a/FuelAndLubricants/FuelAndLubricants/Forms/FormRoute.resx b/FuelAndLubricants/FuelAndLubricants/Forms/FormRoute.resx
new file mode 100644
index 0000000..8b2ff64
--- /dev/null
+++ b/FuelAndLubricants/FuelAndLubricants/Forms/FormRoute.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/FuelAndLubricants/FuelAndLubricants/Program.cs b/FuelAndLubricants/FuelAndLubricants/Program.cs
index 5ab9ffd..3f63e1b 100644
--- a/FuelAndLubricants/FuelAndLubricants/Program.cs
+++ b/FuelAndLubricants/FuelAndLubricants/Program.cs
@@ -22,7 +22,7 @@ namespace FuelAndLubricants
{
var container = new UnityContainer();
- container.RegisterType();
+ container.RegisterType();
container.RegisterType();
container.RegisterType();
container.RegisterType();
diff --git a/FuelAndLubricants/FuelAndLubricants/Repositories/ICarRepository.cs b/FuelAndLubricants/FuelAndLubricants/Repositories/ICarRepository.cs
index a4d9d34..195e20e 100644
--- a/FuelAndLubricants/FuelAndLubricants/Repositories/ICarRepository.cs
+++ b/FuelAndLubricants/FuelAndLubricants/Repositories/ICarRepository.cs
@@ -2,7 +2,7 @@
namespace FuelAndLubricants.Repositories;
-public interface ICarRepository
+public interface IRouteRepository
{
IEnumerable ReadCars();
diff --git a/FuelAndLubricants/FuelAndLubricants/Repositories/Implementations/CarRepository.cs b/FuelAndLubricants/FuelAndLubricants/Repositories/Implementations/CarRepository.cs
index 5759289..e780ce9 100644
--- a/FuelAndLubricants/FuelAndLubricants/Repositories/Implementations/CarRepository.cs
+++ b/FuelAndLubricants/FuelAndLubricants/Repositories/Implementations/CarRepository.cs
@@ -2,7 +2,7 @@
namespace FuelAndLubricants.Repositories.Implementations;
-public class CarRepository : ICarRepository
+public class CarRepository : IRouteRepository
{
public void CreateCar(Car car)
{