лаба готова

This commit is contained in:
sheymuh 2024-11-18 20:03:23 +04:00
parent 0e78ed6914
commit 042bbafe37
29 changed files with 1246 additions and 164 deletions

View File

@ -0,0 +1,15 @@
namespace ProjectPassengerTransportation.Entities.Enums;
[Flags]
public enum BrokenElements
{
None = 0,
Wheels = 1,
Headlights = 2,
Engine = 4,
Transmission = 8
}

View File

@ -1,4 +1,6 @@
namespace ProjectPassengerTransportation.Entities; using ProjectPassengerTransportation.Entities.Enums;
namespace ProjectPassengerTransportation.Entities;
public class GoToService public class GoToService
{ {
@ -6,16 +8,19 @@ public class GoToService
public DateTime Date { get; private set; } public DateTime Date { get; private set; }
public BrokenElements BrokenElements { get; private set; }
public int Price { get; private set; } public int Price { get; private set; }
public int BusId { get; private set; } public int BusId { get; private set; }
public static GoToService CreateOperation(int id, int price, int busId) public static GoToService CreateOperation(int id, BrokenElements brokenElements, int price, int busId)
{ {
return new GoToService return new GoToService
{ {
Id = id, Id = id,
Date = DateTime.Now, Date = DateTime.Now,
BrokenElements = brokenElements,
Price = price, Price = price,
BusId = busId BusId = busId
}; };

View File

@ -8,19 +8,13 @@ public class RouteList
public TimeOnly Finish { get; private set; } public TimeOnly Finish { get; private set; }
public int DriverId { get; private set; } public static RouteList CreateEntity(int id, TimeOnly start, TimeOnly finish)
public int ConductorId { get; private set; }
public static RouteList CreateEntity(int id, TimeOnly start, TimeOnly finish, int driverId, int conductorId)
{ {
return new RouteList return new RouteList
{ {
Id = id, Id = id,
Start = start, Start = start,
Finish = finish, Finish = finish
DriverId = driverId,
ConductorId = conductorId
}; };
} }
} }

View File

@ -2,19 +2,19 @@
public class StartingShiftEmployee public class StartingShiftEmployee
{ {
public int Id { get; private set; } public int StartingShiftId { get; private set; }
public int EmployeeId { get; private set; } public int EmployeeId { get; private set; }
public int WorkTime { get; private set; } public int WorkHours { get; private set; }
public static StartingShiftEmployee CreateElement(int id, int employeeId, int workTime) public static StartingShiftEmployee CreateElement(int startingShiftId, int employeeId, int workHours)
{ {
return new StartingShiftEmployee return new StartingShiftEmployee
{ {
Id = id, StartingShiftId = startingShiftId,
EmployeeId = employeeId, EmployeeId = employeeId,
WorkTime = workTime WorkHours = workHours
}; };
} }
} }

View File

@ -30,12 +30,13 @@
{ {
menuStrip1 = new MenuStrip(); menuStrip1 = new MenuStrip();
справочникиToolStripMenuItem = new ToolStripMenuItem(); справочникиToolStripMenuItem = new ToolStripMenuItem();
EmployeesToolStripMenuItem = new ToolStripMenuItem();
BusesToolStripMenuItem = new ToolStripMenuItem();
RouteListsToolStripMenuItem = new ToolStripMenuItem();
операцииToolStripMenuItem = new ToolStripMenuItem(); операцииToolStripMenuItem = new ToolStripMenuItem();
StartingShiftsToolStripMenuItem = new ToolStripMenuItem();
GoToServicesToolStripMenuItem = new ToolStripMenuItem();
отчётыToolStripMenuItem = new ToolStripMenuItem(); отчётыToolStripMenuItem = new ToolStripMenuItem();
работникиToolStripMenuItem = new ToolStripMenuItem();
автобусыToolStripMenuItem = new ToolStripMenuItem();
маршрутыToolStripMenuItem = new ToolStripMenuItem();
началоСменыToolStripMenuItem = new ToolStripMenuItem();
menuStrip1.SuspendLayout(); menuStrip1.SuspendLayout();
SuspendLayout(); SuspendLayout();
// //
@ -51,48 +52,59 @@
// //
// справочникиToolStripMenuItem // справочникиToolStripMenuItem
// //
справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { работникиToolStripMenuItem, автобусыToolStripMenuItem, маршрутыToolStripMenuItem }); справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { EmployeesToolStripMenuItem, BusesToolStripMenuItem, RouteListsToolStripMenuItem });
справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem"; справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem";
справочникиToolStripMenuItem.Size = new Size(160, 34); справочникиToolStripMenuItem.Size = new Size(160, 34);
справочникиToolStripMenuItem.Text = "Справочники"; справочникиToolStripMenuItem.Text = "Справочники";
// //
// EmployeesToolStripMenuItem
//
EmployeesToolStripMenuItem.Name = "EmployeesToolStripMenuItem";
EmployeesToolStripMenuItem.Size = new Size(236, 40);
EmployeesToolStripMenuItem.Text = "Работники";
EmployeesToolStripMenuItem.Click += EmployeesToolStripMenuItem_Click;
//
// BusesToolStripMenuItem
//
BusesToolStripMenuItem.Name = "BusesToolStripMenuItem";
BusesToolStripMenuItem.Size = new Size(236, 40);
BusesToolStripMenuItem.Text = "Автобусы";
BusesToolStripMenuItem.Click += BusesToolStripMenuItem_Click;
//
// RouteListsToolStripMenuItem
//
RouteListsToolStripMenuItem.Name = "RouteListsToolStripMenuItem";
RouteListsToolStripMenuItem.Size = new Size(236, 40);
RouteListsToolStripMenuItem.Text = "Маршруты";
RouteListsToolStripMenuItem.Click += RouteListsToolStripMenuItem_Click;
//
// операцииToolStripMenuItem // операцииToolStripMenuItem
// //
операцииToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { началоСменыToolStripMenuItem }); операцииToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { StartingShiftsToolStripMenuItem, GoToServicesToolStripMenuItem });
операцииToolStripMenuItem.Name = "операцииToolStripMenuItem"; операцииToolStripMenuItem.Name = "операцииToolStripMenuItem";
операцииToolStripMenuItem.Size = new Size(130, 34); операцииToolStripMenuItem.Size = new Size(130, 34);
операцииToolStripMenuItem.Text = "Операции"; операцииToolStripMenuItem.Text = "Операции";
// //
// StartingShiftsToolStripMenuItem
//
StartingShiftsToolStripMenuItem.Name = "StartingShiftsToolStripMenuItem";
StartingShiftsToolStripMenuItem.Size = new Size(315, 40);
StartingShiftsToolStripMenuItem.Text = "Начало смены";
StartingShiftsToolStripMenuItem.Click += StartingShiftsToolStripMenuItem_Click;
//
// GoToServicesToolStripMenuItem
//
GoToServicesToolStripMenuItem.Name = "GoToServicesToolStripMenuItem";
GoToServicesToolStripMenuItem.Size = new Size(315, 40);
GoToServicesToolStripMenuItem.Text = "Тех. обслуживание";
GoToServicesToolStripMenuItem.Click += GoToServicesToolStripMenuItem_Click;
//
// отчётыToolStripMenuItem // отчётыToolStripMenuItem
// //
отчётыToolStripMenuItem.Name = "отчётыToolStripMenuItem"; отчётыToolStripMenuItem.Name = "отчётыToolStripMenuItem";
отчётыToolStripMenuItem.Size = new Size(103, 34); отчётыToolStripMenuItem.Size = new Size(103, 34);
отчётыToolStripMenuItem.Text = "Отчёты"; отчётыToolStripMenuItem.Text = "Отчёты";
// //
// работникиToolStripMenuItem
//
работникиToolStripMenuItem.Name = "работникиToolStripMenuItem";
работникиToolStripMenuItem.Size = new Size(315, 40);
работникиToolStripMenuItem.Text = "Работники";
//
// автобусыToolStripMenuItem
//
автобусыToolStripMenuItem.Name = "автобусыToolStripMenuItem";
автобусыToolStripMenuItem.Size = new Size(315, 40);
автобусыToolStripMenuItem.Text = "Автобусы";
//
// маршрутыToolStripMenuItem
//
маршрутыToolStripMenuItem.Name = аршрутыToolStripMenuItem";
маршрутыToolStripMenuItem.Size = new Size(315, 40);
маршрутыToolStripMenuItem.Text = "Маршруты";
//
// началоСменыToolStripMenuItem
//
началоСменыToolStripMenuItem.Name = ачалоСменыToolStripMenuItem";
началоСменыToolStripMenuItem.Size = new Size(315, 40);
началоСменыToolStripMenuItem.Text = "Начало смены";
//
// FormPassengerTransportation // FormPassengerTransportation
// //
AutoScaleDimensions = new SizeF(12F, 30F); AutoScaleDimensions = new SizeF(12F, 30F);
@ -115,11 +127,12 @@
private MenuStrip menuStrip1; private MenuStrip menuStrip1;
private ToolStripMenuItem справочникиToolStripMenuItem; private ToolStripMenuItem справочникиToolStripMenuItem;
private ToolStripMenuItem работникиToolStripMenuItem; private ToolStripMenuItem EmployeesToolStripMenuItem;
private ToolStripMenuItem автобусыToolStripMenuItem; private ToolStripMenuItem BusesToolStripMenuItem;
private ToolStripMenuItem маршрутыToolStripMenuItem; private ToolStripMenuItem RouteListsToolStripMenuItem;
private ToolStripMenuItem операцииToolStripMenuItem; private ToolStripMenuItem операцииToolStripMenuItem;
private ToolStripMenuItem отчётыToolStripMenuItem; private ToolStripMenuItem отчётыToolStripMenuItem;
private ToolStripMenuItem началоСменыToolStripMenuItem; private ToolStripMenuItem StartingShiftsToolStripMenuItem;
private ToolStripMenuItem GoToServicesToolStripMenuItem;
} }
} }

View File

@ -1,10 +1,76 @@
using ProjectPassengerTransportation.Forms;
using Unity;
namespace ProjectPassengerTransportation namespace ProjectPassengerTransportation
{ {
public partial class FormPassengerTransportation : Form public partial class FormPassengerTransportation : Form
{ {
public FormPassengerTransportation() private readonly IUnityContainer _container;
public FormPassengerTransportation(IUnityContainer container)
{ {
InitializeComponent(); InitializeComponent();
_container = container ?? throw new ArgumentNullException(nameof(container));
}
private void EmployeesToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
_container.Resolve<FormEmployees>().ShowDialog();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void BusesToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
_container.Resolve<FormBuses>().ShowDialog();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void RouteListsToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
_container.Resolve<FormRouteLists>().ShowDialog();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void StartingShiftsToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
_container.Resolve<FormStartingShifts>().ShowDialog();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void GoToServicesToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
_container.Resolve<FormGoToServices>().ShowDialog();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
} }
} }
} }

View File

@ -38,6 +38,7 @@ namespace ProjectPassengerTransportation.Forms
{ {
InitializeComponent(); InitializeComponent();
_busRepository = busRepository ?? throw new ArgumentNullException(nameof(busRepository)); _busRepository = busRepository ?? throw new ArgumentNullException(nameof(busRepository));
comboBoxBusType.DataSource = Enum.GetValues(typeof(BusType));
} }
private void ButtonSave_Click(object sender, EventArgs e) private void ButtonSave_Click(object sender, EventArgs e)

View File

@ -50,7 +50,7 @@
// buttonCancel // buttonCancel
// //
buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
buttonCancel.Location = new Point(297, 230); buttonCancel.Location = new Point(297, 224);
buttonCancel.Name = "buttonCancel"; buttonCancel.Name = "buttonCancel";
buttonCancel.Size = new Size(135, 50); buttonCancel.Size = new Size(135, 50);
buttonCancel.TabIndex = 14; buttonCancel.TabIndex = 14;
@ -61,7 +61,7 @@
// buttonSave // buttonSave
// //
buttonSave.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; buttonSave.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
buttonSave.Location = new Point(80, 230); buttonSave.Location = new Point(80, 224);
buttonSave.Name = "buttonSave"; buttonSave.Name = "buttonSave";
buttonSave.Size = new Size(135, 50); buttonSave.Size = new Size(135, 50);
buttonSave.TabIndex = 13; buttonSave.TabIndex = 13;
@ -115,7 +115,7 @@
// //
AutoScaleDimensions = new SizeF(12F, 30F); AutoScaleDimensions = new SizeF(12F, 30F);
AutoScaleMode = AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(506, 302); ClientSize = new Size(506, 296);
Controls.Add(labelPost); Controls.Add(labelPost);
Controls.Add(buttonCancel); Controls.Add(buttonCancel);
Controls.Add(buttonSave); Controls.Add(buttonSave);
@ -125,6 +125,7 @@
Controls.Add(labelFirstName); Controls.Add(labelFirstName);
Controls.Add(comboBoxPost); Controls.Add(comboBoxPost);
Name = "FormEmployee"; Name = "FormEmployee";
StartPosition = FormStartPosition.CenterParent;
Text = "FormEmployee"; Text = "FormEmployee";
ResumeLayout(false); ResumeLayout(false);
PerformLayout(); PerformLayout();

View File

@ -108,6 +108,7 @@
Controls.Add(dataGridViewData); Controls.Add(dataGridViewData);
Controls.Add(panelButtons); Controls.Add(panelButtons);
Name = "FormEmployees"; Name = "FormEmployees";
StartPosition = FormStartPosition.CenterParent;
Text = "Работники"; Text = "Работники";
Load += FormEmployees_Load; Load += FormEmployees_Load;
((System.ComponentModel.ISupportInitialize)dataGridViewData).EndInit(); ((System.ComponentModel.ISupportInitialize)dataGridViewData).EndInit();

View File

@ -0,0 +1,169 @@
namespace ProjectPassengerTransportation.Forms
{
partial class FormGoToService
{
/// <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()
{
comboBoxBus = new ComboBox();
labelBus = new Label();
buttonCancel = new Button();
buttonSave = new Button();
labelPrice = new Label();
numericUpDownPrice = new NumericUpDown();
checkedListBoxBrokenElements = new CheckedListBox();
labelBrokenElement = new Label();
dateTimePickerServiceDate = new DateTimePicker();
labelDate = new Label();
((System.ComponentModel.ISupportInitialize)numericUpDownPrice).BeginInit();
SuspendLayout();
//
// comboBoxBus
//
comboBoxBus.DropDownStyle = ComboBoxStyle.DropDownList;
comboBoxBus.FormattingEnabled = true;
comboBoxBus.Location = new Point(168, 389);
comboBoxBus.Name = "comboBoxBus";
comboBoxBus.Size = new Size(245, 38);
comboBoxBus.TabIndex = 9;
//
// labelBus
//
labelBus.AutoSize = true;
labelBus.Location = new Point(25, 392);
labelBus.Name = "labelBus";
labelBus.Size = new Size(91, 30);
labelBus.TabIndex = 8;
labelBus.Text = "Автобус";
//
// buttonCancel
//
buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
buttonCancel.Location = new Point(241, 459);
buttonCancel.Name = "buttonCancel";
buttonCancel.Size = new Size(135, 50);
buttonCancel.TabIndex = 19;
buttonCancel.Text = "Отмена";
buttonCancel.UseVisualStyleBackColor = true;
buttonCancel.Click += ButtonCancel_Click;
//
// buttonSave
//
buttonSave.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
buttonSave.Location = new Point(64, 459);
buttonSave.Name = "buttonSave";
buttonSave.Size = new Size(135, 50);
buttonSave.TabIndex = 18;
buttonSave.Text = "Сохранить";
buttonSave.UseVisualStyleBackColor = true;
buttonSave.Click += ButtonSave_Click;
//
// labelPrice
//
labelPrice.AutoSize = true;
labelPrice.Location = new Point(25, 312);
labelPrice.Name = "labelPrice";
labelPrice.Size = new Size(116, 30);
labelPrice.TabIndex = 20;
labelPrice.Text = "Стоимость";
//
// numericUpDownPrice
//
numericUpDownPrice.Location = new Point(168, 310);
numericUpDownPrice.Name = "numericUpDownPrice";
numericUpDownPrice.Size = new Size(245, 35);
numericUpDownPrice.TabIndex = 21;
//
// checkedListBoxBrokenElements
//
checkedListBoxBrokenElements.FormattingEnabled = true;
checkedListBoxBrokenElements.Location = new Point(168, 102);
checkedListBoxBrokenElements.Name = "checkedListBoxBrokenElements";
checkedListBoxBrokenElements.Size = new Size(247, 164);
checkedListBoxBrokenElements.TabIndex = 22;
//
// labelBrokenElement
//
labelBrokenElement.Location = new Point(25, 102);
labelBrokenElement.Name = "labelBrokenElement";
labelBrokenElement.Size = new Size(128, 68);
labelBrokenElement.TabIndex = 23;
labelBrokenElement.Text = "Сломанная деталь";
//
// dateTimePickerServiceDate
//
dateTimePickerServiceDate.Enabled = false;
dateTimePickerServiceDate.Location = new Point(168, 27);
dateTimePickerServiceDate.Name = "dateTimePickerServiceDate";
dateTimePickerServiceDate.Size = new Size(247, 35);
dateTimePickerServiceDate.TabIndex = 24;
//
// labelDate
//
labelDate.AutoSize = true;
labelDate.Location = new Point(25, 31);
labelDate.Name = "labelDate";
labelDate.Size = new Size(59, 30);
labelDate.TabIndex = 25;
labelDate.Text = "Дата";
//
// FormGoToService
//
AutoScaleDimensions = new SizeF(12F, 30F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(441, 521);
Controls.Add(labelDate);
Controls.Add(dateTimePickerServiceDate);
Controls.Add(labelBrokenElement);
Controls.Add(checkedListBoxBrokenElements);
Controls.Add(numericUpDownPrice);
Controls.Add(labelPrice);
Controls.Add(buttonCancel);
Controls.Add(buttonSave);
Controls.Add(comboBoxBus);
Controls.Add(labelBus);
Name = "FormGoToService";
StartPosition = FormStartPosition.CenterParent;
Text = "Тех. обслуживание";
((System.ComponentModel.ISupportInitialize)numericUpDownPrice).EndInit();
ResumeLayout(false);
PerformLayout();
}
#endregion
private ComboBox comboBoxBus;
private Label labelBus;
private Button buttonCancel;
private Button buttonSave;
private Label labelPrice;
private NumericUpDown numericUpDownPrice;
private CheckedListBox checkedListBoxBrokenElements;
private Label labelBrokenElement;
private DateTimePicker dateTimePickerServiceDate;
private Label labelDate;
}
}

View File

@ -0,0 +1,53 @@
using ProjectPassengerTransportation.Entities;
using ProjectPassengerTransportation.Entities.Enums;
using ProjectPassengerTransportation.Repositories;
namespace ProjectPassengerTransportation.Forms
{
public partial class FormGoToService : Form
{
private readonly IGoToServiceRepository _goToServiceRepository;
public FormGoToService(IGoToServiceRepository goToServiceRepository, IBusRepository busRepository)
{
InitializeComponent();
_goToServiceRepository = goToServiceRepository ?? throw new ArgumentNullException(nameof(goToServiceRepository));
comboBoxBus.DataSource = busRepository.ReadBuses();
comboBoxBus.DisplayMember = "LicensePlate";
comboBoxBus.ValueMember = "Id";
foreach (var elem in Enum.GetValues(typeof(BrokenElements)))
{
checkedListBoxBrokenElements.Items.Add(elem);
}
}
private void ButtonSave_Click(object sender, EventArgs e)
{
try
{
if (comboBoxBus.SelectedIndex < 0 || checkedListBoxBrokenElements.CheckedItems.Count == 0)
{
throw new Exception("Имеются незаполненные поля");
}
BrokenElements brokenElements = BrokenElements.None;
foreach (var elem in checkedListBoxBrokenElements.CheckedItems)
{
brokenElements |= (BrokenElements)elem;
}
_goToServiceRepository.CreateGoToService(GoToService.CreateOperation(0,
brokenElements,
Convert.ToInt32(numericUpDownPrice.Value),
(int)comboBoxBus.SelectedValue!));
Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void ButtonCancel_Click(object sender, EventArgs e) => Close();
}
}

View 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>

View File

@ -0,0 +1,113 @@
namespace ProjectPassengerTransportation.Forms
{
partial class FormGoToServices
{
/// <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()
{
dataGridViewData = new DataGridView();
panelButtons = new Panel();
buttonDelete = new Button();
buttonAdd = new Button();
((System.ComponentModel.ISupportInitialize)dataGridViewData).BeginInit();
panelButtons.SuspendLayout();
SuspendLayout();
//
// dataGridViewData
//
dataGridViewData.AllowUserToAddRows = false;
dataGridViewData.AllowUserToDeleteRows = false;
dataGridViewData.AllowUserToResizeColumns = false;
dataGridViewData.AllowUserToResizeRows = false;
dataGridViewData.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewData.Dock = DockStyle.Fill;
dataGridViewData.Location = new Point(0, 0);
dataGridViewData.MultiSelect = false;
dataGridViewData.Name = "dataGridViewData";
dataGridViewData.ReadOnly = true;
dataGridViewData.RowHeadersVisible = false;
dataGridViewData.RowHeadersWidth = 72;
dataGridViewData.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridViewData.Size = new Size(845, 481);
dataGridViewData.TabIndex = 5;
//
// panelButtons
//
panelButtons.Controls.Add(buttonDelete);
panelButtons.Controls.Add(buttonAdd);
panelButtons.Dock = DockStyle.Right;
panelButtons.Location = new Point(845, 0);
panelButtons.Name = "panelButtons";
panelButtons.Size = new Size(196, 481);
panelButtons.TabIndex = 4;
//
// buttonDelete
//
buttonDelete.BackgroundImage = Properties.Resources.minus;
buttonDelete.BackgroundImageLayout = ImageLayout.Stretch;
buttonDelete.Location = new Point(50, 150);
buttonDelete.Name = "buttonDelete";
buttonDelete.Size = new Size(100, 100);
buttonDelete.TabIndex = 2;
buttonDelete.UseVisualStyleBackColor = true;
buttonDelete.Click += ButtonDelete_Click;
//
// buttonAdd
//
buttonAdd.BackgroundImage = Properties.Resources.plus;
buttonAdd.BackgroundImageLayout = ImageLayout.Stretch;
buttonAdd.Location = new Point(50, 29);
buttonAdd.Name = "buttonAdd";
buttonAdd.Size = new Size(100, 100);
buttonAdd.TabIndex = 0;
buttonAdd.UseVisualStyleBackColor = true;
buttonAdd.Click += ButtonAdd_Click;
//
// FormGoToServices
//
AutoScaleDimensions = new SizeF(12F, 30F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(1041, 481);
Controls.Add(dataGridViewData);
Controls.Add(panelButtons);
Name = "FormGoToServices";
StartPosition = FormStartPosition.CenterParent;
Text = "Тех. обслуживания";
Load += FormGoToServices_Load;
((System.ComponentModel.ISupportInitialize)dataGridViewData).EndInit();
panelButtons.ResumeLayout(false);
ResumeLayout(false);
}
#endregion
private DataGridView dataGridViewData;
private Panel panelButtons;
private Button buttonDelete;
private Button buttonAdd;
}
}

View File

@ -0,0 +1,79 @@
using ProjectPassengerTransportation.Repositories;
using Unity;
namespace ProjectPassengerTransportation.Forms;
public partial class FormGoToServices : Form
{
private readonly IUnityContainer _container;
private readonly IGoToServiceRepository _goToServiceRepository;
public FormGoToServices(IUnityContainer container, IGoToServiceRepository goToServiceRepository)
{
InitializeComponent();
_container = container ?? throw new ArgumentNullException(nameof(container));
_goToServiceRepository = goToServiceRepository ?? throw new ArgumentNullException(nameof(goToServiceRepository));
}
private void FormGoToServices_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<FormGoToService>().ShowDialog();
LoadList();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Ошибка при добавлении", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void ButtonDelete_Click(object sender, EventArgs e)
{
if (!TryGetIdentifierFromSelectedRow(out var findId))
{
return;
}
if (MessageBox.Show("Удалить запись?", "Удаление", MessageBoxButtons.YesNo) != DialogResult.Yes)
{
return;
}
try
{
_goToServiceRepository.DeleteGoToService(findId);
LoadList();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void LoadList() => dataGridViewData.DataSource = _goToServiceRepository.ReadServices();
private bool TryGetIdentifierFromSelectedRow(out int id)
{
id = 0;
if (dataGridViewData.SelectedRows.Count < 1)
{
MessageBox.Show("Нет выбранной записи", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
id = Convert.ToInt32(dataGridViewData.SelectedRows[0].Cells["Id"].Value);
return true;
}
}

View 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>

View File

@ -30,9 +30,6 @@
{ {
buttonCancel = new Button(); buttonCancel = new Button();
buttonSave = new Button(); buttonSave = new Button();
numericUpDownConductorId = new NumericUpDown();
labelConductorId = new Label();
labelDriverId = new Label();
labelStart = new Label(); labelStart = new Label();
numericUpDownStartHour = new NumericUpDown(); numericUpDownStartHour = new NumericUpDown();
labelHours = new Label(); labelHours = new Label();
@ -41,18 +38,16 @@
numericUpDownStartMin = new NumericUpDown(); numericUpDownStartMin = new NumericUpDown();
numericUpDownFinishMin = new NumericUpDown(); numericUpDownFinishMin = new NumericUpDown();
numericUpDownFinishHour = new NumericUpDown(); numericUpDownFinishHour = new NumericUpDown();
numericUpDownDriverId = new NumericUpDown();
((System.ComponentModel.ISupportInitialize)numericUpDownConductorId).BeginInit();
((System.ComponentModel.ISupportInitialize)numericUpDownStartHour).BeginInit(); ((System.ComponentModel.ISupportInitialize)numericUpDownStartHour).BeginInit();
((System.ComponentModel.ISupportInitialize)numericUpDownStartMin).BeginInit(); ((System.ComponentModel.ISupportInitialize)numericUpDownStartMin).BeginInit();
((System.ComponentModel.ISupportInitialize)numericUpDownFinishMin).BeginInit(); ((System.ComponentModel.ISupportInitialize)numericUpDownFinishMin).BeginInit();
((System.ComponentModel.ISupportInitialize)numericUpDownFinishHour).BeginInit(); ((System.ComponentModel.ISupportInitialize)numericUpDownFinishHour).BeginInit();
((System.ComponentModel.ISupportInitialize)numericUpDownDriverId).BeginInit();
SuspendLayout(); SuspendLayout();
// //
// buttonCancel // buttonCancel
// //
buttonCancel.Location = new Point(267, 341); buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
buttonCancel.Location = new Point(267, 201);
buttonCancel.Name = "buttonCancel"; buttonCancel.Name = "buttonCancel";
buttonCancel.Size = new Size(135, 50); buttonCancel.Size = new Size(135, 50);
buttonCancel.TabIndex = 15; buttonCancel.TabIndex = 15;
@ -62,7 +57,8 @@
// //
// buttonSave // buttonSave
// //
buttonSave.Location = new Point(78, 341); buttonSave.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
buttonSave.Location = new Point(78, 201);
buttonSave.Name = "buttonSave"; buttonSave.Name = "buttonSave";
buttonSave.Size = new Size(135, 50); buttonSave.Size = new Size(135, 50);
buttonSave.TabIndex = 14; buttonSave.TabIndex = 14;
@ -70,33 +66,6 @@
buttonSave.UseVisualStyleBackColor = true; buttonSave.UseVisualStyleBackColor = true;
buttonSave.Click += ButtonSave_Click; buttonSave.Click += ButtonSave_Click;
// //
// numericUpDownConductorId
//
numericUpDownConductorId.Location = new Point(232, 272);
numericUpDownConductorId.Minimum = new decimal(new int[] { 1, 0, 0, 0 });
numericUpDownConductorId.Name = "numericUpDownConductorId";
numericUpDownConductorId.Size = new Size(181, 35);
numericUpDownConductorId.TabIndex = 13;
numericUpDownConductorId.Value = new decimal(new int[] { 1, 0, 0, 0 });
//
// labelConductorId
//
labelConductorId.AutoSize = true;
labelConductorId.Location = new Point(31, 274);
labelConductorId.Name = "labelConductorId";
labelConductorId.Size = new Size(149, 30);
labelConductorId.TabIndex = 12;
labelConductorId.Text = "ID кондуктора";
//
// labelDriverId
//
labelDriverId.AutoSize = true;
labelDriverId.Location = new Point(31, 196);
labelDriverId.Name = "labelDriverId";
labelDriverId.Size = new Size(128, 30);
labelDriverId.TabIndex = 10;
labelDriverId.Text = "ID водителя";
//
// labelStart // labelStart
// //
labelStart.AutoSize = true; labelStart.AutoSize = true;
@ -167,21 +136,11 @@
numericUpDownFinishHour.TabIndex = 21; numericUpDownFinishHour.TabIndex = 21;
numericUpDownFinishHour.Value = new decimal(new int[] { 22, 0, 0, 0 }); numericUpDownFinishHour.Value = new decimal(new int[] { 22, 0, 0, 0 });
// //
// numericUpDownDriverId
//
numericUpDownDriverId.Location = new Point(232, 194);
numericUpDownDriverId.Minimum = new decimal(new int[] { 1, 0, 0, 0 });
numericUpDownDriverId.Name = "numericUpDownDriverId";
numericUpDownDriverId.Size = new Size(181, 35);
numericUpDownDriverId.TabIndex = 23;
numericUpDownDriverId.Value = new decimal(new int[] { 1, 0, 0, 0 });
//
// FormRouteList // FormRouteList
// //
AutoScaleDimensions = new SizeF(12F, 30F); AutoScaleDimensions = new SizeF(12F, 30F);
AutoScaleMode = AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(476, 416); ClientSize = new Size(476, 265);
Controls.Add(numericUpDownDriverId);
Controls.Add(numericUpDownFinishMin); Controls.Add(numericUpDownFinishMin);
Controls.Add(numericUpDownFinishHour); Controls.Add(numericUpDownFinishHour);
Controls.Add(numericUpDownStartMin); Controls.Add(numericUpDownStartMin);
@ -191,19 +150,14 @@
Controls.Add(numericUpDownStartHour); Controls.Add(numericUpDownStartHour);
Controls.Add(buttonCancel); Controls.Add(buttonCancel);
Controls.Add(buttonSave); Controls.Add(buttonSave);
Controls.Add(numericUpDownConductorId);
Controls.Add(labelConductorId);
Controls.Add(labelDriverId);
Controls.Add(labelStart); Controls.Add(labelStart);
Name = "FormRouteList"; Name = "FormRouteList";
StartPosition = FormStartPosition.CenterParent; StartPosition = FormStartPosition.CenterParent;
Text = "Маршрутный лист"; Text = "Маршрутный лист";
((System.ComponentModel.ISupportInitialize)numericUpDownConductorId).EndInit();
((System.ComponentModel.ISupportInitialize)numericUpDownStartHour).EndInit(); ((System.ComponentModel.ISupportInitialize)numericUpDownStartHour).EndInit();
((System.ComponentModel.ISupportInitialize)numericUpDownStartMin).EndInit(); ((System.ComponentModel.ISupportInitialize)numericUpDownStartMin).EndInit();
((System.ComponentModel.ISupportInitialize)numericUpDownFinishMin).EndInit(); ((System.ComponentModel.ISupportInitialize)numericUpDownFinishMin).EndInit();
((System.ComponentModel.ISupportInitialize)numericUpDownFinishHour).EndInit(); ((System.ComponentModel.ISupportInitialize)numericUpDownFinishHour).EndInit();
((System.ComponentModel.ISupportInitialize)numericUpDownDriverId).EndInit();
ResumeLayout(false); ResumeLayout(false);
PerformLayout(); PerformLayout();
} }
@ -212,9 +166,6 @@
private Button buttonCancel; private Button buttonCancel;
private Button buttonSave; private Button buttonSave;
private NumericUpDown numericUpDownConductorId;
private Label labelConductorId;
private Label labelDriverId;
private Label labelStart; private Label labelStart;
private NumericUpDown numericUpDownStartHour; private NumericUpDown numericUpDownStartHour;
private Label labelHours; private Label labelHours;
@ -223,6 +174,5 @@
private NumericUpDown numericUpDownStartMin; private NumericUpDown numericUpDownStartMin;
private NumericUpDown numericUpDownFinishMin; private NumericUpDown numericUpDownFinishMin;
private NumericUpDown numericUpDownFinishHour; private NumericUpDown numericUpDownFinishHour;
private NumericUpDown numericUpDownDriverId;
} }
} }

View File

@ -25,8 +25,6 @@ namespace ProjectPassengerTransportation.Forms
numericUpDownStartMin.Value = routeList.Start.Minute; numericUpDownStartMin.Value = routeList.Start.Minute;
numericUpDownFinishHour.Value = routeList.Finish.Hour; numericUpDownFinishHour.Value = routeList.Finish.Hour;
numericUpDownFinishMin.Value = routeList.Finish.Minute; numericUpDownFinishMin.Value = routeList.Finish.Minute;
numericUpDownDriverId.Value = routeList.DriverId;
numericUpDownConductorId.Value = routeList.ConductorId;
_routeListId = value; _routeListId = value;
} }
catch (Exception ex) catch (Exception ex)
@ -68,7 +66,6 @@ namespace ProjectPassengerTransportation.Forms
private RouteList CreateRouteList(int id) => RouteList.CreateEntity(id, private RouteList CreateRouteList(int id) => RouteList.CreateEntity(id,
new TimeOnly(Convert.ToInt32(numericUpDownStartHour.Value), Convert.ToInt32(numericUpDownStartMin.Value)), new TimeOnly(Convert.ToInt32(numericUpDownStartHour.Value), Convert.ToInt32(numericUpDownStartMin.Value)),
new TimeOnly(Convert.ToInt32(numericUpDownFinishHour.Value), Convert.ToInt32(numericUpDownFinishMin.Value)), new TimeOnly(Convert.ToInt32(numericUpDownFinishHour.Value), Convert.ToInt32(numericUpDownFinishMin.Value)));
Convert.ToInt32(numericUpDownDriverId.Value), Convert.ToInt32(numericUpDownConductorId.Value));
} }
} }

View File

@ -34,18 +34,20 @@
labelBus = new Label(); labelBus = new Label();
buttonCancel = new Button(); buttonCancel = new Button();
buttonSave = new Button(); buttonSave = new Button();
groupBox1 = new GroupBox(); groupBoxEmployees = new GroupBox();
dataGridViewData = new DataGridView(); dataGridViewEmployees = new DataGridView();
ColumnEmployee = new DataGridViewComboBoxColumn(); ColumnEmployees = new DataGridViewComboBoxColumn();
ColumnWorkHours = new DataGridViewTextBoxColumn(); ColumnWorkHours = new DataGridViewTextBoxColumn();
groupBox1.SuspendLayout(); labelDate = new Label();
((System.ComponentModel.ISupportInitialize)dataGridViewData).BeginInit(); dateTimePickerShiftDate = new DateTimePicker();
groupBoxEmployees.SuspendLayout();
((System.ComponentModel.ISupportInitialize)dataGridViewEmployees).BeginInit();
SuspendLayout(); SuspendLayout();
// //
// labelRouteList // labelRouteList
// //
labelRouteList.AutoSize = true; labelRouteList.AutoSize = true;
labelRouteList.Location = new Point(29, 34); labelRouteList.Location = new Point(36, 97);
labelRouteList.Name = "labelRouteList"; labelRouteList.Name = "labelRouteList";
labelRouteList.Size = new Size(103, 30); labelRouteList.Size = new Size(103, 30);
labelRouteList.TabIndex = 0; labelRouteList.TabIndex = 0;
@ -55,7 +57,7 @@
// //
comboBoxRouteList.DropDownStyle = ComboBoxStyle.DropDownList; comboBoxRouteList.DropDownStyle = ComboBoxStyle.DropDownList;
comboBoxRouteList.FormattingEnabled = true; comboBoxRouteList.FormattingEnabled = true;
comboBoxRouteList.Location = new Point(176, 31); comboBoxRouteList.Location = new Point(183, 94);
comboBoxRouteList.Name = "comboBoxRouteList"; comboBoxRouteList.Name = "comboBoxRouteList";
comboBoxRouteList.Size = new Size(245, 38); comboBoxRouteList.Size = new Size(245, 38);
comboBoxRouteList.TabIndex = 1; comboBoxRouteList.TabIndex = 1;
@ -64,7 +66,7 @@
// //
comboBoxBus.DropDownStyle = ComboBoxStyle.DropDownList; comboBoxBus.DropDownStyle = ComboBoxStyle.DropDownList;
comboBoxBus.FormattingEnabled = true; comboBoxBus.FormattingEnabled = true;
comboBoxBus.Location = new Point(176, 95); comboBoxBus.Location = new Point(183, 158);
comboBoxBus.Name = "comboBoxBus"; comboBoxBus.Name = "comboBoxBus";
comboBoxBus.Size = new Size(245, 38); comboBoxBus.Size = new Size(245, 38);
comboBoxBus.TabIndex = 5; comboBoxBus.TabIndex = 5;
@ -72,7 +74,7 @@
// labelBus // labelBus
// //
labelBus.AutoSize = true; labelBus.AutoSize = true;
labelBus.Location = new Point(29, 98); labelBus.Location = new Point(36, 161);
labelBus.Name = "labelBus"; labelBus.Name = "labelBus";
labelBus.Size = new Size(91, 30); labelBus.Size = new Size(91, 30);
labelBus.TabIndex = 4; labelBus.TabIndex = 4;
@ -81,55 +83,57 @@
// buttonCancel // buttonCancel
// //
buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
buttonCancel.Location = new Point(256, 441); buttonCancel.Location = new Point(256, 513);
buttonCancel.Name = "buttonCancel"; buttonCancel.Name = "buttonCancel";
buttonCancel.Size = new Size(135, 50); buttonCancel.Size = new Size(135, 50);
buttonCancel.TabIndex = 17; buttonCancel.TabIndex = 17;
buttonCancel.Text = "Отмена"; buttonCancel.Text = "Отмена";
buttonCancel.UseVisualStyleBackColor = true; buttonCancel.UseVisualStyleBackColor = true;
buttonCancel.Click += ButtonCancel_Click;
// //
// buttonSave // buttonSave
// //
buttonSave.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; buttonSave.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
buttonSave.Location = new Point(67, 441); buttonSave.Location = new Point(67, 513);
buttonSave.Name = "buttonSave"; buttonSave.Name = "buttonSave";
buttonSave.Size = new Size(135, 50); buttonSave.Size = new Size(135, 50);
buttonSave.TabIndex = 16; buttonSave.TabIndex = 16;
buttonSave.Text = "Сохранить"; buttonSave.Text = "Сохранить";
buttonSave.UseVisualStyleBackColor = true; buttonSave.UseVisualStyleBackColor = true;
buttonSave.Click += ButtonSave_Click;
// //
// groupBox1 // groupBoxEmployees
// //
groupBox1.Controls.Add(dataGridViewData); groupBoxEmployees.Controls.Add(dataGridViewEmployees);
groupBox1.Location = new Point(29, 163); groupBoxEmployees.Location = new Point(36, 226);
groupBox1.Name = "groupBox1"; groupBoxEmployees.Name = "groupBoxEmployees";
groupBox1.Size = new Size(392, 254); groupBoxEmployees.Size = new Size(392, 254);
groupBox1.TabIndex = 18; groupBoxEmployees.TabIndex = 18;
groupBox1.TabStop = false; groupBoxEmployees.TabStop = false;
groupBox1.Text = "Сотрудники"; groupBoxEmployees.Text = "Сотрудники";
// //
// dataGridViewData // dataGridViewEmployees
// //
dataGridViewData.AllowUserToResizeColumns = false; dataGridViewEmployees.AllowUserToResizeColumns = false;
dataGridViewData.AllowUserToResizeRows = false; dataGridViewEmployees.AllowUserToResizeRows = false;
dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridViewEmployees.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewData.Columns.AddRange(new DataGridViewColumn[] { ColumnEmployee, ColumnWorkHours }); dataGridViewEmployees.Columns.AddRange(new DataGridViewColumn[] { ColumnEmployees, ColumnWorkHours });
dataGridViewData.Dock = DockStyle.Fill; dataGridViewEmployees.Dock = DockStyle.Fill;
dataGridViewData.Location = new Point(3, 31); dataGridViewEmployees.Location = new Point(3, 31);
dataGridViewData.MultiSelect = false; dataGridViewEmployees.MultiSelect = false;
dataGridViewData.Name = "dataGridViewData"; dataGridViewEmployees.Name = "dataGridViewEmployees";
dataGridViewData.RowHeadersVisible = false; dataGridViewEmployees.RowHeadersVisible = false;
dataGridViewData.RowHeadersWidth = 72; dataGridViewEmployees.RowHeadersWidth = 72;
dataGridViewData.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dataGridViewEmployees.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridViewData.Size = new Size(386, 220); dataGridViewEmployees.Size = new Size(386, 220);
dataGridViewData.TabIndex = 0; dataGridViewEmployees.TabIndex = 0;
// //
// ColumnEmployee // ColumnEmployees
// //
ColumnEmployee.HeaderText = "Работник"; ColumnEmployees.HeaderText = "Работник";
ColumnEmployee.MinimumWidth = 9; ColumnEmployees.MinimumWidth = 9;
ColumnEmployee.Name = "ColumnEmployee"; ColumnEmployees.Name = "ColumnEmployees";
ColumnEmployee.Width = 175; ColumnEmployees.Width = 175;
// //
// ColumnWorkHours // ColumnWorkHours
// //
@ -138,12 +142,31 @@
ColumnWorkHours.Name = "ColumnWorkHours"; ColumnWorkHours.Name = "ColumnWorkHours";
ColumnWorkHours.Width = 175; ColumnWorkHours.Width = 175;
// //
// labelDate
//
labelDate.AutoSize = true;
labelDate.Location = new Point(36, 32);
labelDate.Name = "labelDate";
labelDate.Size = new Size(59, 30);
labelDate.TabIndex = 27;
labelDate.Text = "Дата";
//
// dateTimePickerShiftDate
//
dateTimePickerShiftDate.Enabled = false;
dateTimePickerShiftDate.Location = new Point(179, 28);
dateTimePickerShiftDate.Name = "dateTimePickerShiftDate";
dateTimePickerShiftDate.Size = new Size(247, 35);
dateTimePickerShiftDate.TabIndex = 26;
//
// FormStartingShift // FormStartingShift
// //
AutoScaleDimensions = new SizeF(12F, 30F); AutoScaleDimensions = new SizeF(12F, 30F);
AutoScaleMode = AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(456, 524); ClientSize = new Size(456, 596);
Controls.Add(groupBox1); Controls.Add(labelDate);
Controls.Add(dateTimePickerShiftDate);
Controls.Add(groupBoxEmployees);
Controls.Add(buttonCancel); Controls.Add(buttonCancel);
Controls.Add(buttonSave); Controls.Add(buttonSave);
Controls.Add(comboBoxBus); Controls.Add(comboBoxBus);
@ -153,8 +176,8 @@
Name = "FormStartingShift"; Name = "FormStartingShift";
StartPosition = FormStartPosition.CenterParent; StartPosition = FormStartPosition.CenterParent;
Text = "Начало смены"; Text = "Начало смены";
groupBox1.ResumeLayout(false); groupBoxEmployees.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)dataGridViewData).EndInit(); ((System.ComponentModel.ISupportInitialize)dataGridViewEmployees).EndInit();
ResumeLayout(false); ResumeLayout(false);
PerformLayout(); PerformLayout();
} }
@ -167,9 +190,11 @@
private Label labelBus; private Label labelBus;
private Button buttonCancel; private Button buttonCancel;
private Button buttonSave; private Button buttonSave;
private GroupBox groupBox1; private GroupBox groupBoxEmployees;
private DataGridView dataGridViewData; private DataGridView dataGridViewEmployees;
private DataGridViewComboBoxColumn ColumnEmployee; private Label labelDate;
private DateTimePicker dateTimePickerShiftDate;
private DataGridViewComboBoxColumn ColumnEmployees;
private DataGridViewTextBoxColumn ColumnWorkHours; private DataGridViewTextBoxColumn ColumnWorkHours;
} }
} }

View File

@ -1,10 +1,70 @@
namespace ProjectPassengerTransportation.Forms using ProjectPassengerTransportation.Entities;
using ProjectPassengerTransportation.Repositories;
namespace ProjectPassengerTransportation.Forms
{ {
public partial class FormStartingShift : Form public partial class FormStartingShift : Form
{ {
public FormStartingShift() private readonly IStartingShiftRepository _startingShiftRepository;
public FormStartingShift(IStartingShiftRepository startingShiftRepository,
IRouteListRepository routeListRepository,
IBusRepository busRepository,
IEmployeeRepository employeeRepository)
{ {
InitializeComponent(); InitializeComponent();
_startingShiftRepository = startingShiftRepository ?? throw new ArgumentNullException(nameof(startingShiftRepository));
comboBoxRouteList.DataSource = routeListRepository.ReadRouteLists();
comboBoxRouteList.DisplayMember = "Id";
comboBoxRouteList.ValueMember = "Id";
comboBoxBus.DataSource = busRepository.ReadBuses();
comboBoxBus.DisplayMember = "LicensePlate";
comboBoxBus.ValueMember = "Id";
ColumnEmployees.DataSource = employeeRepository.ReadEmployees();
ColumnEmployees.DisplayMember = "FirstName";
ColumnEmployees.ValueMember = "Id";
}
private void ButtonSave_Click(object sender, EventArgs e)
{
try
{
if (dataGridViewEmployees.RowCount < 1 ||
comboBoxRouteList.SelectedIndex < 0 ||
comboBoxBus.SelectedIndex < 0)
{
throw new Exception("Имеются незаполненные поля");
}
_startingShiftRepository.CreateStartingShift(StartingShift.CreateOperation(0,
(int)comboBoxRouteList.SelectedValue!,
(int)comboBoxBus.SelectedValue!,
CreateListStartingShiftEmployeeFromDataGrid()));
Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void ButtonCancel_Click(object sender, EventArgs e) => Close();
private List<StartingShiftEmployee> CreateListStartingShiftEmployeeFromDataGrid()
{
var list = new List<StartingShiftEmployee>();
foreach (DataGridViewRow row in dataGridViewEmployees.Rows)
{
if (row.Cells["ColumnFeed"].Value == null ||
row.Cells["ColumnCount"].Value == null)
{
continue;
}
list.Add(StartingShiftEmployee.CreateElement(0,
Convert.ToInt32(row.Cells["ColumnEmployees"].Value),
Convert.ToInt32(row.Cells["ColumnWorkHours"].Value)));
}
return list;
} }
} }
} }

View File

@ -117,7 +117,7 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<metadata name="ColumnEmployee.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="ColumnEmployees.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="ColumnWorkHours.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="ColumnWorkHours.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

View File

@ -0,0 +1,99 @@
namespace ProjectPassengerTransportation.Forms
{
partial class FormStartingShifts
{
/// <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()
{
dataGridViewData = new DataGridView();
panelButtons = new Panel();
buttonAdd = new Button();
((System.ComponentModel.ISupportInitialize)dataGridViewData).BeginInit();
panelButtons.SuspendLayout();
SuspendLayout();
//
// dataGridViewData
//
dataGridViewData.AllowUserToAddRows = false;
dataGridViewData.AllowUserToDeleteRows = false;
dataGridViewData.AllowUserToResizeColumns = false;
dataGridViewData.AllowUserToResizeRows = false;
dataGridViewData.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dataGridViewData.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewData.Dock = DockStyle.Fill;
dataGridViewData.Location = new Point(0, 0);
dataGridViewData.MultiSelect = false;
dataGridViewData.Name = "dataGridViewData";
dataGridViewData.ReadOnly = true;
dataGridViewData.RowHeadersVisible = false;
dataGridViewData.RowHeadersWidth = 72;
dataGridViewData.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridViewData.Size = new Size(845, 481);
dataGridViewData.TabIndex = 5;
//
// panelButtons
//
panelButtons.Controls.Add(buttonAdd);
panelButtons.Dock = DockStyle.Right;
panelButtons.Location = new Point(845, 0);
panelButtons.Name = "panelButtons";
panelButtons.Size = new Size(196, 481);
panelButtons.TabIndex = 4;
//
// buttonAdd
//
buttonAdd.BackgroundImage = Properties.Resources.plus;
buttonAdd.BackgroundImageLayout = ImageLayout.Stretch;
buttonAdd.Location = new Point(50, 29);
buttonAdd.Name = "buttonAdd";
buttonAdd.Size = new Size(100, 100);
buttonAdd.TabIndex = 0;
buttonAdd.UseVisualStyleBackColor = true;
buttonAdd.Click += ButtonAdd_Click;
//
// FormStartingShifts
//
AutoScaleDimensions = new SizeF(12F, 30F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(1041, 481);
Controls.Add(dataGridViewData);
Controls.Add(panelButtons);
Name = "FormStartingShifts";
StartPosition = FormStartPosition.CenterParent;
Text = "Смены";
Load += FormStartingShifts_Load;
((System.ComponentModel.ISupportInitialize)dataGridViewData).EndInit();
panelButtons.ResumeLayout(false);
ResumeLayout(false);
}
#endregion
private DataGridView dataGridViewData;
private Panel panelButtons;
private Button buttonAdd;
}
}

View File

@ -0,0 +1,44 @@
using ProjectPassengerTransportation.Repositories;
using Unity;
namespace ProjectPassengerTransportation.Forms;
public partial class FormStartingShifts : Form
{
private readonly IUnityContainer _container;
private readonly IStartingShiftRepository _startingShiftRepository;
public FormStartingShifts(IUnityContainer container, IStartingShiftRepository startingShiftRepository)
{
InitializeComponent();
_container = container ?? throw new ArgumentNullException(nameof(container));
_startingShiftRepository = startingShiftRepository ?? throw new ArgumentNullException(nameof(startingShiftRepository));
}
private void FormStartingShifts_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<FormStartingShift>().ShowDialog();
LoadList();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Ошибка при добавлении", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void LoadList() => dataGridViewData.DataSource = _startingShiftRepository.ReadShifts();
}

View 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>

View File

@ -26,9 +26,10 @@ namespace ProjectPassengerTransportation
container.RegisterType<IBusRepository, BusRepository>(new TransientLifetimeManager()); container.RegisterType<IBusRepository, BusRepository>(new TransientLifetimeManager());
container.RegisterType<IEmployeeRepository, EmployeeRepository>(new TransientLifetimeManager()); container.RegisterType<IEmployeeRepository, EmployeeRepository>(new TransientLifetimeManager());
container.RegisterType<IRouteListRepository, RouteListRepository>(new TransientLifetimeManager()); container.RegisterType<IRouteListRepository, RouteListRepository>(new TransientLifetimeManager());
container.RegisterType<IGoToServiceRepository, GoToServiceRepository>(new TransientLifetimeManager());
container.RegisterType<IStartingShiftRepository, StartingShiftRepository>(new TransientLifetimeManager());
return container; return container;
} }
} }
} }

View File

@ -0,0 +1,14 @@
using ProjectPassengerTransportation.Entities;
using ProjectPassengerTransportation.Entities.Enums;
namespace ProjectPassengerTransportation.Repositories;
public interface IGoToServiceRepository
{
IEnumerable<GoToService> ReadServices(DateTime? dateFrom = null, DateTime? dateTo = null,
BrokenElements BrokenElements = BrokenElements.None, int? price = null, int? busId = null);
void DeleteGoToService(int id);
void CreateGoToService(GoToService goToService);
}

View File

@ -2,7 +2,7 @@
namespace ProjectPassengerTransportation.Repositories; namespace ProjectPassengerTransportation.Repositories;
public interface IStartingShift public interface IStartingShiftRepository
{ {
IEnumerable<StartingShift> ReadShifts(DateTime? dateFrom = null, DateTime? dateTo = null, int? routeListId = null, IEnumerable<StartingShift> ReadShifts(DateTime? dateFrom = null, DateTime? dateTo = null, int? routeListId = null,
int? employeeId = null, int? busId = null); int? employeeId = null, int? busId = null);

View File

@ -0,0 +1,22 @@
using ProjectPassengerTransportation.Entities;
using ProjectPassengerTransportation.Entities.Enums;
namespace ProjectPassengerTransportation.Repositories.Implementations;
public class GoToServiceRepository : IGoToServiceRepository
{
public void CreateGoToService(GoToService goToService)
{
}
public void DeleteGoToService(int id)
{
}
public IEnumerable<GoToService> ReadServices(DateTime? dateFrom = null, DateTime? dateTo = null, BrokenElements BrokenElements = BrokenElements.None, int? price = null, int? busId = null)
{
return [];
}
}

View File

@ -16,7 +16,7 @@ public class RouteListRepository : IRouteListRepository
public RouteList ReadRouteListById(int routeListId) public RouteList ReadRouteListById(int routeListId)
{ {
return RouteList.CreateEntity(0, new TimeOnly(0, 0), new TimeOnly(0, 0), 0, 0); return RouteList.CreateEntity(0, new TimeOnly(0, 0), new TimeOnly(0, 0));
} }
public IEnumerable<RouteList> ReadRouteLists() public IEnumerable<RouteList> ReadRouteLists()

View File

@ -2,7 +2,7 @@
namespace ProjectPassengerTransportation.Repositories.Implementations; namespace ProjectPassengerTransportation.Repositories.Implementations;
public class StartingShiftRepository : IStartingShift public class StartingShiftRepository : IStartingShiftRepository
{ {
public void CreateStartingShift(StartingShift startingShift) public void CreateStartingShift(StartingShift startingShift)
{ {