diff --git a/FuelAndLubricants/FuelAndLubricants/Forms/FormTrip.Designer.cs b/FuelAndLubricants/FuelAndLubricants/Forms/FormTrip.Designer.cs new file mode 100644 index 0000000..dd45466 --- /dev/null +++ b/FuelAndLubricants/FuelAndLubricants/Forms/FormTrip.Designer.cs @@ -0,0 +1,241 @@ +namespace FuelAndLubricants.Forms +{ + partial class FormTrip + { + /// + /// 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(); + numericUpDownConsumptionRate = new NumericUpDown(); + label4 = new Label(); + comboBoxShift = new ComboBox(); + buttonCancel = new Button(); + buttonTripSave = new Button(); + label6 = new Label(); + dateTimePickerStartDate = new DateTimePicker(); + label1 = new Label(); + dateTimePickerEndDate = new DateTimePicker(); + label3 = new Label(); + comboBoxCarID = new ComboBox(); + comboBoxDriverID = new ComboBox(); + label2 = new Label(); + comboBoxRouteID = new ComboBox(); + label7 = new Label(); + ((System.ComponentModel.ISupportInitialize)numericUpDownConsumptionRate).BeginInit(); + SuspendLayout(); + // + // label5 + // + label5.AutoSize = true; + label5.Location = new Point(9, 100); + label5.Name = "label5"; + label5.Size = new Size(93, 15); + label5.TabIndex = 33; + label5.Text = "Расход топлива"; + // + // numericUpDownConsumptionRate + // + numericUpDownConsumptionRate.DecimalPlaces = 2; + numericUpDownConsumptionRate.Location = new Point(107, 98); + numericUpDownConsumptionRate.Maximum = new decimal(new int[] { 10000, 0, 0, 0 }); + numericUpDownConsumptionRate.Minimum = new decimal(new int[] { 1, 0, 0, 131072 }); + numericUpDownConsumptionRate.Name = "numericUpDownConsumptionRate"; + numericUpDownConsumptionRate.Size = new Size(140, 23); + numericUpDownConsumptionRate.TabIndex = 32; + numericUpDownConsumptionRate.Value = new decimal(new int[] { 1, 0, 0, 131072 }); + // + // label4 + // + label4.AutoSize = true; + label4.Location = new Point(9, 73); + label4.Name = "label4"; + label4.Size = new Size(43, 15); + label4.TabIndex = 31; + label4.Text = "Смена"; + // + // comboBoxShift + // + comboBoxShift.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxShift.FormattingEnabled = true; + comboBoxShift.Location = new Point(107, 70); + comboBoxShift.Name = "comboBoxShift"; + comboBoxShift.Size = new Size(140, 23); + comboBoxShift.TabIndex = 30; + // + // buttonCancel + // + buttonCancel.Location = new Point(172, 226); + buttonCancel.Name = "buttonCancel"; + buttonCancel.Size = new Size(75, 23); + buttonCancel.TabIndex = 28; + buttonCancel.Text = "Отмена"; + buttonCancel.UseVisualStyleBackColor = true; + buttonCancel.Click += ButtonCancel_Click; + // + // buttonTripSave + // + buttonTripSave.Location = new Point(9, 226); + buttonTripSave.Name = "buttonTripSave"; + buttonTripSave.Size = new Size(75, 23); + buttonTripSave.TabIndex = 27; + buttonTripSave.Text = "Сохранить"; + buttonTripSave.UseVisualStyleBackColor = true; + buttonTripSave.Click += ButtonSave_Click; + // + // label6 + // + label6.AutoSize = true; + label6.Location = new Point(9, 18); + label6.Name = "label6"; + label6.Size = new Size(74, 15); + label6.TabIndex = 37; + label6.Text = "Дата начала"; + // + // dateTimePickerStartDate + // + dateTimePickerStartDate.Location = new Point(107, 12); + dateTimePickerStartDate.Name = "dateTimePickerStartDate"; + dateTimePickerStartDate.Size = new Size(140, 23); + dateTimePickerStartDate.TabIndex = 36; + // + // label1 + // + label1.AutoSize = true; + label1.Location = new Point(9, 47); + label1.Name = "label1"; + label1.Size = new Size(68, 15); + label1.TabIndex = 39; + label1.Text = "Дата конца"; + // + // dateTimePickerEndDate + // + dateTimePickerEndDate.Location = new Point(107, 41); + dateTimePickerEndDate.Name = "dateTimePickerEndDate"; + dateTimePickerEndDate.Size = new Size(140, 23); + dateTimePickerEndDate.TabIndex = 38; + // + // label3 + // + label3.AutoSize = true; + label3.Location = new Point(9, 130); + label3.Name = "label3"; + label3.Size = new Size(55, 15); + label3.TabIndex = 42; + label3.Text = "Машина"; + // + // comboBoxCarID + // + comboBoxCarID.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxCarID.FormattingEnabled = true; + comboBoxCarID.Location = new Point(107, 127); + comboBoxCarID.Name = "comboBoxCarID"; + comboBoxCarID.Size = new Size(140, 23); + comboBoxCarID.TabIndex = 41; + // + // comboBoxDriverID + // + comboBoxDriverID.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxDriverID.FormattingEnabled = true; + comboBoxDriverID.Location = new Point(107, 157); + comboBoxDriverID.Name = "comboBoxDriverID"; + comboBoxDriverID.Size = new Size(140, 23); + comboBoxDriverID.TabIndex = 46; + // + // label2 + // + label2.AutoSize = true; + label2.Location = new Point(9, 189); + label2.Name = "label2"; + label2.Size = new Size(60, 15); + label2.TabIndex = 45; + label2.Text = "Маршрут"; + // + // comboBoxRouteID + // + comboBoxRouteID.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxRouteID.FormattingEnabled = true; + comboBoxRouteID.Location = new Point(107, 186); + comboBoxRouteID.Name = "comboBoxRouteID"; + comboBoxRouteID.Size = new Size(140, 23); + comboBoxRouteID.TabIndex = 44; + // + // label7 + // + label7.AutoSize = true; + label7.Location = new Point(9, 160); + label7.Name = "label7"; + label7.Size = new Size(58, 15); + label7.TabIndex = 43; + label7.Text = "Водитель"; + // + // FormTrip + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(259, 266); + Controls.Add(comboBoxDriverID); + Controls.Add(label2); + Controls.Add(comboBoxRouteID); + Controls.Add(label7); + Controls.Add(label3); + Controls.Add(comboBoxCarID); + Controls.Add(label1); + Controls.Add(dateTimePickerEndDate); + Controls.Add(label6); + Controls.Add(dateTimePickerStartDate); + Controls.Add(label5); + Controls.Add(numericUpDownConsumptionRate); + Controls.Add(label4); + Controls.Add(comboBoxShift); + Controls.Add(buttonCancel); + Controls.Add(buttonTripSave); + Name = "FormTrip"; + Text = "FormTrip"; + ((System.ComponentModel.ISupportInitialize)numericUpDownConsumptionRate).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private Label label5; + private NumericUpDown numericUpDownConsumptionRate; + private Label label4; + private ComboBox comboBoxShift; + private Button buttonCancel; + private Button buttonTripSave; + private Label label6; + private DateTimePicker dateTimePickerStartDate; + private Label label1; + private DateTimePicker dateTimePickerEndDate; + private Label label3; + private ComboBox comboBoxCarID; + private ComboBox comboBoxDriverID; + private Label label2; + private ComboBox comboBoxRouteID; + private Label label7; + } +} \ No newline at end of file diff --git a/FuelAndLubricants/FuelAndLubricants/Forms/FormTrip.cs b/FuelAndLubricants/FuelAndLubricants/Forms/FormTrip.cs new file mode 100644 index 0000000..fe5800e --- /dev/null +++ b/FuelAndLubricants/FuelAndLubricants/Forms/FormTrip.cs @@ -0,0 +1,48 @@ +using FuelAndLubricants.Entities; +using FuelAndLubricants.Entities.Enums; +using FuelAndLubricants.Repositories; + +namespace FuelAndLubricants.Forms +{ + public partial class FormTrip : Form + { + private readonly ITripRepository _tripRepository; + + public FormTrip(ITripRepository tripRepository, ICarRepository carRepository, IDriverRepository driverRepository, IRouteRepository routeRepository) + { + InitializeComponent(); + + _tripRepository = tripRepository ?? + throw new ArgumentNullException(nameof(tripRepository)); + + comboBoxCarID.DataSource = tripRepository.ReadTrips(); + comboBoxCarID.DisplayMember = "Car_Mark"; + comboBoxCarID.ValueMember = "Car_ID"; + + comboBoxDriverID.DataSource = tripRepository.ReadTrips(); + comboBoxDriverID.DisplayMember = "Firstname"; + comboBoxDriverID.ValueMember = "Driver_ID"; + + comboBoxRouteID.DataSource = tripRepository.ReadTrips(); + comboBoxRouteID.DisplayMember = "Route_Length"; + comboBoxRouteID.ValueMember = "Route_ID"; + } + private void ButtonSave_Click(object sender, EventArgs e) + { + try + { + if (comboBoxCarID.SelectedIndex < 0 || comboBoxDriverID.SelectedIndex < 0 || comboBoxRouteID.SelectedIndex < 0) + throw new Exception("Имеются незаполненные поля"); + + _tripRepository.CreateTrip(Trip.CreateOperation(0, dateTimePickerStartDate.Value, dateTimePickerEndDate.Value, (Shift)comboBoxShift.SelectedItem!, (float)numericUpDownConsumptionRate.Value, (int)comboBoxCarID.SelectedValue!, (int)comboBoxDriverID.SelectedValue!, (int)comboBoxRouteID.SelectedValue!)); + Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при сохранении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + private void ButtonCancel_Click(object sender, EventArgs e) => Close(); + } +} diff --git a/FuelAndLubricants/FuelAndLubricants/Forms/FormTrip.resx b/FuelAndLubricants/FuelAndLubricants/Forms/FormTrip.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/FuelAndLubricants/FuelAndLubricants/Forms/FormTrip.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