diff --git a/ProjectGarage/FormGarage.Designer.cs b/ProjectGarage/FormGarage.Designer.cs index c3cc4b5..5fa1e37 100644 --- a/ProjectGarage/FormGarage.Designer.cs +++ b/ProjectGarage/FormGarage.Designer.cs @@ -31,14 +31,14 @@ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormGarage)); menuStripGarage = new MenuStrip(); справочникиToolStripMenuItem = new ToolStripMenuItem(); - операцииToolStripMenuItem = new ToolStripMenuItem(); - отчетыToolStripMenuItem = new ToolStripMenuItem(); водителиToolStripMenuItem = new ToolStripMenuItem(); фурыToolStripMenuItem = new ToolStripMenuItem(); маршрутыToolStripMenuItem = new ToolStripMenuItem(); топливоToolStripMenuItem = new ToolStripMenuItem(); + операцииToolStripMenuItem = new ToolStripMenuItem(); отправкаТопливаToolStripMenuItem = new ToolStripMenuItem(); получениеТопливаToolStripMenuItem = new ToolStripMenuItem(); + отчетыToolStripMenuItem = new ToolStripMenuItem(); menuStripGarage.SuspendLayout(); SuspendLayout(); // @@ -59,6 +59,34 @@ справочникиToolStripMenuItem.Size = new Size(117, 24); справочникиToolStripMenuItem.Text = "Справочники"; // + // водителиToolStripMenuItem + // + водителиToolStripMenuItem.Name = "водителиToolStripMenuItem"; + водителиToolStripMenuItem.Size = new Size(224, 26); + водителиToolStripMenuItem.Text = "Водители"; + водителиToolStripMenuItem.Click += DriversToolStripMenuItem_Click; + // + // фурыToolStripMenuItem + // + фурыToolStripMenuItem.Name = "фурыToolStripMenuItem"; + фурыToolStripMenuItem.Size = new Size(224, 26); + фурыToolStripMenuItem.Text = "Фуры"; + фурыToolStripMenuItem.Click += TrucksToolStripMenuItem_Click; + // + // маршрутыToolStripMenuItem + // + маршрутыToolStripMenuItem.Name = "маршрутыToolStripMenuItem"; + маршрутыToolStripMenuItem.Size = new Size(224, 26); + маршрутыToolStripMenuItem.Text = "Маршруты"; + маршрутыToolStripMenuItem.Click += RoutesToolStripMenuItem_Click; + // + // топливоToolStripMenuItem + // + топливоToolStripMenuItem.Name = "топливоToolStripMenuItem"; + топливоToolStripMenuItem.Size = new Size(224, 26); + топливоToolStripMenuItem.Text = "Топливо"; + топливоToolStripMenuItem.Click += FuelsToolStripMenuItem_Click; + // // операцииToolStripMenuItem // операцииToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { отправкаТопливаToolStripMenuItem, получениеТопливаToolStripMenuItem }); @@ -66,47 +94,25 @@ операцииToolStripMenuItem.Size = new Size(95, 24); операцииToolStripMenuItem.Text = "Операции"; // - // отчетыToolStripMenuItem - // - отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem"; - отчетыToolStripMenuItem.Size = new Size(73, 24); - отчетыToolStripMenuItem.Text = "Отчеты"; - // - // водителиToolStripMenuItem - // - водителиToolStripMenuItem.Name = "водителиToolStripMenuItem"; - водителиToolStripMenuItem.Size = new Size(224, 26); - водителиToolStripMenuItem.Text = "Водители"; - // - // фурыToolStripMenuItem - // - фурыToolStripMenuItem.Name = "фурыToolStripMenuItem"; - фурыToolStripMenuItem.Size = new Size(224, 26); - фурыToolStripMenuItem.Text = "Фуры"; - // - // маршрутыToolStripMenuItem - // - маршрутыToolStripMenuItem.Name = "маршрутыToolStripMenuItem"; - маршрутыToolStripMenuItem.Size = new Size(224, 26); - маршрутыToolStripMenuItem.Text = "Маршруты"; - // - // топливоToolStripMenuItem - // - топливоToolStripMenuItem.Name = "топливоToolStripMenuItem"; - топливоToolStripMenuItem.Size = new Size(224, 26); - топливоToolStripMenuItem.Text = "Топливо"; - // // отправкаТопливаToolStripMenuItem // отправкаТопливаToolStripMenuItem.Name = "отправкаТопливаToolStripMenuItem"; отправкаТопливаToolStripMenuItem.Size = new Size(230, 26); отправкаТопливаToolStripMenuItem.Text = "Отправка топлива"; + отправкаТопливаToolStripMenuItem.Click += TransportationToolStripMenuItem_Click; // // получениеТопливаToolStripMenuItem // получениеТопливаToolStripMenuItem.Name = "получениеТопливаToolStripMenuItem"; получениеТопливаToolStripMenuItem.Size = new Size(230, 26); получениеТопливаToolStripMenuItem.Text = "Получение топлива"; + получениеТопливаToolStripMenuItem.Click += ReplenishmentToolStripMenuItem_Click; + // + // отчетыToolStripMenuItem + // + отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem"; + отчетыToolStripMenuItem.Size = new Size(73, 24); + отчетыToolStripMenuItem.Text = "Отчеты"; // // FormGarage // diff --git a/ProjectGarage/FormGarage.cs b/ProjectGarage/FormGarage.cs index dc22897..cac09cb 100644 --- a/ProjectGarage/FormGarage.cs +++ b/ProjectGarage/FormGarage.cs @@ -1,10 +1,95 @@ +using ProjectGarage.Forms; +using System.ComponentModel; +using Unity; + namespace ProjectGarage { public partial class FormGarage : Form { - public FormGarage() + private readonly IUnityContainer _container; + + public FormGarage(IUnityContainer container) { InitializeComponent(); + _container = container ?? throw new ArgumentNullException(nameof(container)); + } + + private void DriversToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, " ", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void TrucksToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, " ", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void RoutesToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, " ", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void FuelsToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, " ", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void TransportationToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, " ", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ReplenishmentToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, " ", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } } } } diff --git a/ProjectGarage/Forms/FormDrivers.Designer.cs b/ProjectGarage/Forms/FormDrivers.Designer.cs index 918e93c..6bc5f62 100644 --- a/ProjectGarage/Forms/FormDrivers.Designer.cs +++ b/ProjectGarage/Forms/FormDrivers.Designer.cs @@ -108,6 +108,7 @@ Controls.Add(panelFormDriversButtons); Name = "FormDrivers"; Text = "FormDrivers"; + Load += FormDrivers_Load; Click += FormDrivers_Load; ((System.ComponentModel.ISupportInitialize)dataGridViewDrivers).EndInit(); panelFormDriversButtons.ResumeLayout(false); diff --git a/ProjectGarage/Forms/FormFuel.cs b/ProjectGarage/Forms/FormFuel.cs index 9fe7b08..dba03d4 100644 --- a/ProjectGarage/Forms/FormFuel.cs +++ b/ProjectGarage/Forms/FormFuel.cs @@ -46,7 +46,6 @@ namespace ProjectGarage.Forms MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } - } } @@ -58,7 +57,6 @@ namespace ProjectGarage.Forms { checkedListBoxFuel.Items.Add(elem); } - } private void ButtonFuelSave_Click(object sender, EventArgs e) @@ -99,6 +97,5 @@ namespace ProjectGarage.Forms } return Fuel.CreateFuel(id, textBoxFuelName.Text, fuelType, Convert.ToInt32(numericUpDownFuelPrice.Value)); } - } } diff --git a/ProjectGarage/Forms/FormReplenishment.Designer.cs b/ProjectGarage/Forms/FormReplenishment.Designer.cs new file mode 100644 index 0000000..68b2f3a --- /dev/null +++ b/ProjectGarage/Forms/FormReplenishment.Designer.cs @@ -0,0 +1,148 @@ +namespace ProjectGarage.Forms +{ + partial class FormReplenishment + { + /// + /// 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() + { + comboBoxReplenishmentDriver = new ComboBox(); + labelReplenishmentDriver = new Label(); + groupBoxReplenishment = new GroupBox(); + dataGridViewReplenishment = new DataGridView(); + ColumnFuel = new DataGridViewComboBoxColumn(); + ColumnAmount = new DataGridViewTextBoxColumn(); + ButtonReplenishmentSave = new Button(); + ButtonReplenishmentCancel = new Button(); + groupBoxReplenishment.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridViewReplenishment).BeginInit(); + SuspendLayout(); + // + // comboBoxReplenishmentDriver + // + comboBoxReplenishmentDriver.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxReplenishmentDriver.FormattingEnabled = true; + comboBoxReplenishmentDriver.Location = new Point(141, 16); + comboBoxReplenishmentDriver.Name = "comboBoxReplenishmentDriver"; + comboBoxReplenishmentDriver.Size = new Size(151, 28); + comboBoxReplenishmentDriver.TabIndex = 9; + // + // labelReplenishmentDriver + // + labelReplenishmentDriver.AutoSize = true; + labelReplenishmentDriver.Location = new Point(21, 19); + labelReplenishmentDriver.Name = "labelReplenishmentDriver"; + labelReplenishmentDriver.Size = new Size(74, 20); + labelReplenishmentDriver.TabIndex = 8; + labelReplenishmentDriver.Text = "Водитель"; + // + // groupBoxReplenishment + // + groupBoxReplenishment.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + groupBoxReplenishment.Controls.Add(dataGridViewReplenishment); + groupBoxReplenishment.Location = new Point(21, 66); + groupBoxReplenishment.Name = "groupBoxReplenishment"; + groupBoxReplenishment.Size = new Size(271, 288); + groupBoxReplenishment.TabIndex = 10; + groupBoxReplenishment.TabStop = false; + groupBoxReplenishment.Text = "Пополнение топлива"; + // + // dataGridViewReplenishment + // + dataGridViewReplenishment.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridViewReplenishment.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewReplenishment.Columns.AddRange(new DataGridViewColumn[] { ColumnFuel, ColumnAmount }); + dataGridViewReplenishment.Dock = DockStyle.Fill; + dataGridViewReplenishment.Location = new Point(3, 23); + dataGridViewReplenishment.Name = "dataGridViewReplenishment"; + dataGridViewReplenishment.RowHeadersVisible = false; + dataGridViewReplenishment.RowHeadersWidth = 51; + dataGridViewReplenishment.Size = new Size(265, 262); + dataGridViewReplenishment.TabIndex = 0; + // + // ColumnFuel + // + ColumnFuel.HeaderText = "Топливо"; + ColumnFuel.MinimumWidth = 6; + ColumnFuel.Name = "ColumnFuel"; + // + // ColumnAmount + // + ColumnAmount.HeaderText = "Кол-во"; + ColumnAmount.MinimumWidth = 6; + ColumnAmount.Name = "ColumnAmount"; + // + // ButtonReplenishmentSave + // + ButtonReplenishmentSave.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + ButtonReplenishmentSave.Location = new Point(21, 360); + ButtonReplenishmentSave.Name = "ButtonReplenishmentSave"; + ButtonReplenishmentSave.Size = new Size(134, 29); + ButtonReplenishmentSave.TabIndex = 11; + ButtonReplenishmentSave.Text = "Сохранить"; + ButtonReplenishmentSave.UseVisualStyleBackColor = true; + ButtonReplenishmentSave.Click += ButtonReplenishmentSave_Click; + // + // ButtonReplenishmentCancel + // + ButtonReplenishmentCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + ButtonReplenishmentCancel.Location = new Point(161, 360); + ButtonReplenishmentCancel.Name = "ButtonReplenishmentCancel"; + ButtonReplenishmentCancel.Size = new Size(131, 29); + ButtonReplenishmentCancel.TabIndex = 13; + ButtonReplenishmentCancel.Text = "Отмена"; + ButtonReplenishmentCancel.UseVisualStyleBackColor = true; + ButtonReplenishmentCancel.Click += ButtonReplenishmentCancel_Click; + // + // FormReplenishment + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(315, 401); + Controls.Add(ButtonReplenishmentCancel); + Controls.Add(ButtonReplenishmentSave); + Controls.Add(groupBoxReplenishment); + Controls.Add(comboBoxReplenishmentDriver); + Controls.Add(labelReplenishmentDriver); + Name = "FormReplenishment"; + Text = "FormReplenishment"; + groupBoxReplenishment.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dataGridViewReplenishment).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private ComboBox comboBoxReplenishmentDriver; + private Label labelReplenishmentDriver; + private GroupBox groupBoxReplenishment; + private DataGridView dataGridViewReplenishment; + private Button ButtonReplenishmentSave; + private Button ButtonReplenishmentCancel; + private DataGridViewComboBoxColumn ColumnFuel; + private DataGridViewTextBoxColumn ColumnAmount; + } +} \ No newline at end of file diff --git a/ProjectGarage/Forms/FormReplenishment.cs b/ProjectGarage/Forms/FormReplenishment.cs new file mode 100644 index 0000000..8e0ba2a --- /dev/null +++ b/ProjectGarage/Forms/FormReplenishment.cs @@ -0,0 +1,72 @@ +using ProjectGarage.Entities; +using ProjectGarage.Repositories; +using ProjectGarage.Repositories.Implementations; +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; + +namespace ProjectGarage.Forms +{ + public partial class FormReplenishment : Form + { + private readonly IReplenishmentRepository _replenishmentRepository; + + + public FormReplenishment(IReplenishmentRepository replenishmentRepository, + IDriverRepository driverRepository, IFuelRepository fuelRepository) + { + InitializeComponent(); + _replenishmentRepository = replenishmentRepository ?? + throw new ArgumentNullException(nameof(replenishmentRepository)); + comboBoxReplenishmentDriver.DataSource = driverRepository.ReadDrivers(); + comboBoxReplenishmentDriver.DisplayMember = "First_name"; + comboBoxReplenishmentDriver.ValueMember = "Id"; + ColumnFuel.DataSource = fuelRepository.ReadFuels(); + ColumnFuel.DisplayMember = "Name"; + ColumnFuel.ValueMember = "Id"; + } + + private void ButtonReplenishmentSave_Click(object sender, EventArgs e) + { + try + { + if (dataGridViewReplenishment.RowCount < 1 || + comboBoxReplenishmentDriver.SelectedIndex < 0) + { + throw new Exception("Имеются незаполненные поля"); + } + _replenishmentRepository.CreateFuelReplenishment(FuelReplenishment.CreateOpeartion(0, + (int)comboBoxReplenishmentDriver.SelectedValue!, CreateListFuelFuelReplenishmentsFromDataGrid())); + Close(); + } + catch(Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonReplenishmentCancel_Click(object sender, EventArgs e) => Close(); + + private List CreateListFuelFuelReplenishmentsFromDataGrid() + { + var list = new List(); + foreach (DataGridViewRow row in dataGridViewReplenishment.Rows) + { + if (row.Cells["ColumnFeed"].Value == null || + row.Cells["ColumnCount"].Value == null) + { + continue; + } + list.Add(FuelFuelReplenishment.CreateElement(0, Convert.ToInt32(row.Cells["ColumnFeed"].Value), + Convert.ToInt32(row.Cells["ColumnCount"].Value))); + } + return list; + } + } +} diff --git a/ProjectGarage/Forms/FormReplenishment.resx b/ProjectGarage/Forms/FormReplenishment.resx new file mode 100644 index 0000000..69bbf06 --- /dev/null +++ b/ProjectGarage/Forms/FormReplenishment.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + True + + + True + + + True + + + True + + \ No newline at end of file diff --git a/ProjectGarage/Forms/FormReplenishments.Designer.cs b/ProjectGarage/Forms/FormReplenishments.Designer.cs new file mode 100644 index 0000000..20960d7 --- /dev/null +++ b/ProjectGarage/Forms/FormReplenishments.Designer.cs @@ -0,0 +1,109 @@ +namespace ProjectGarage.Forms +{ + partial class FormReplenishments + { + /// + /// Обязательная переменная конструктора. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Освободить все используемые ресурсы. + /// + /// истинно, если управляемый ресурс должен быть удален; иначе ложно. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Код, автоматически созданный конструктором компонентов + + /// + /// Требуемый метод для поддержки конструктора — не изменяйте + /// содержимое этого метода с помощью редактора кода. + /// + private void InitializeComponent() + { + buttonAddReplenishment = new Button(); + buttonDeleteReplenishment = new Button(); + panelFormReplenishmentssButtons = new Panel(); + dataGridViewReplenishments = new DataGridView(); + panelFormReplenishmentssButtons.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridViewReplenishments).BeginInit(); + SuspendLayout(); + // + // buttonAddReplenishment + // + buttonAddReplenishment.BackgroundImage = Properties.Resources.плюсик; + buttonAddReplenishment.BackgroundImageLayout = ImageLayout.Stretch; + buttonAddReplenishment.Location = new Point(35, 23); + buttonAddReplenishment.Name = "buttonAddReplenishment"; + buttonAddReplenishment.Size = new Size(94, 75); + buttonAddReplenishment.TabIndex = 0; + buttonAddReplenishment.UseVisualStyleBackColor = true; + buttonAddReplenishment.Click += ButtonAddReplenishment_Click; + // + // buttonDeleteReplenishment + // + buttonDeleteReplenishment.BackgroundImage = Properties.Resources.минусик; + buttonDeleteReplenishment.BackgroundImageLayout = ImageLayout.Stretch; + buttonDeleteReplenishment.Location = new Point(35, 115); + buttonDeleteReplenishment.Name = "buttonDeleteReplenishment"; + buttonDeleteReplenishment.Size = new Size(94, 78); + buttonDeleteReplenishment.TabIndex = 1; + buttonDeleteReplenishment.UseVisualStyleBackColor = true; + buttonDeleteReplenishment.Click += ButtonDeleteReplenishment_Click; + // + // panelFormReplenishmentssButtons + // + panelFormReplenishmentssButtons.Controls.Add(buttonDeleteReplenishment); + panelFormReplenishmentssButtons.Controls.Add(buttonAddReplenishment); + panelFormReplenishmentssButtons.Dock = DockStyle.Right; + panelFormReplenishmentssButtons.Location = new Point(641, 0); + panelFormReplenishmentssButtons.Name = "panelFormReplenishmentssButtons"; + panelFormReplenishmentssButtons.Size = new Size(161, 406); + panelFormReplenishmentssButtons.TabIndex = 6; + // + // dataGridViewReplenishments + // + dataGridViewReplenishments.AllowUserToAddRows = false; + dataGridViewReplenishments.AllowUserToDeleteRows = false; + dataGridViewReplenishments.AllowUserToResizeColumns = false; + dataGridViewReplenishments.AllowUserToResizeRows = false; + dataGridViewReplenishments.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridViewReplenishments.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewReplenishments.Dock = DockStyle.Fill; + dataGridViewReplenishments.Location = new Point(0, 0); + dataGridViewReplenishments.Name = "dataGridViewReplenishments"; + dataGridViewReplenishments.ReadOnly = true; + dataGridViewReplenishments.RowHeadersVisible = false; + dataGridViewReplenishments.RowHeadersWidth = 51; + dataGridViewReplenishments.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridViewReplenishments.Size = new Size(641, 406); + dataGridViewReplenishments.TabIndex = 7; + // + // FormReplenishments + // + ClientSize = new Size(802, 406); + Controls.Add(dataGridViewReplenishments); + Controls.Add(panelFormReplenishmentssButtons); + Name = "FormReplenishments"; + Text = "Пополнения"; + Load += FormReplenishments_Load; + panelFormReplenishmentssButtons.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dataGridViewReplenishments).EndInit(); + ResumeLayout(false); + } + + #endregion + + private Button buttonAddReplenishment; + private Button buttonDeleteReplenishment; + private Panel panelFormReplenishmentssButtons; + private DataGridView dataGridViewReplenishments; + } +} diff --git a/ProjectGarage/Forms/FormReplenishments.cs b/ProjectGarage/Forms/FormReplenishments.cs new file mode 100644 index 0000000..efefa42 --- /dev/null +++ b/ProjectGarage/Forms/FormReplenishments.cs @@ -0,0 +1,96 @@ +using ProjectGarage.Repositories; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Unity; + +namespace ProjectGarage.Forms +{ + public partial class FormReplenishments : Form + { + private readonly IUnityContainer _container; + private readonly IReplenishmentRepository _replenishmentRepository; + + public FormReplenishments(IUnityContainer container, IReplenishmentRepository replenishmentRepository) + { + InitializeComponent(); + _container = container ?? + throw new ArgumentNullException(nameof(container)); + _replenishmentRepository = replenishmentRepository ?? + throw new ArgumentNullException(nameof(replenishmentRepository)); + } + private void FormReplenishments_Load(object sender, EventArgs e) + { + try + { + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при загрузке", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + public FormReplenishments(IContainer container) + { + container.Add(this); + + InitializeComponent(); + } + + private void ButtonAddReplenishment_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при добавлении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonDeleteReplenishment_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + if (MessageBox.Show("Удалить запись?", "Удаление", MessageBoxButtons.YesNo) != DialogResult.Yes) + { + return; + } + try + { + _replenishmentRepository.DeleteFuelReplenishment(findId); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при удалении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + private void LoadList() => dataGridViewReplenishments.DataSource = _replenishmentRepository.ReadFuelReplenishment(); + + private bool TryGetIdentifierFromSelectedRow(out int id) + { + id = 0; + if (dataGridViewReplenishments.SelectedRows.Count < 1) + { + MessageBox.Show("Нет выбранной записи", "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + id = + Convert.ToInt32(dataGridViewReplenishments.SelectedRows[0].Cells["Id"].Value); + return true; + } + } +} diff --git a/ProjectGarage/Forms/FormReplenishments.resx b/ProjectGarage/Forms/FormReplenishments.resx new file mode 100644 index 0000000..af32865 --- /dev/null +++ b/ProjectGarage/Forms/FormReplenishments.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/ProjectGarage/Forms/FormRoutes.Designer.cs b/ProjectGarage/Forms/FormRoutes.Designer.cs index dd68c26..bd539c6 100644 --- a/ProjectGarage/Forms/FormRoutes.Designer.cs +++ b/ProjectGarage/Forms/FormRoutes.Designer.cs @@ -108,6 +108,7 @@ Controls.Add(panelFormRoutesButtons); Name = "FormRoutes"; Text = "FormRoutes"; + Load += FormRoutes_Load; ((System.ComponentModel.ISupportInitialize)dataGridViewRoutes).EndInit(); panelFormRoutesButtons.ResumeLayout(false); ResumeLayout(false); diff --git a/ProjectGarage/Forms/FormRoutes.cs b/ProjectGarage/Forms/FormRoutes.cs index 26e8885..fb519e1 100644 --- a/ProjectGarage/Forms/FormRoutes.cs +++ b/ProjectGarage/Forms/FormRoutes.cs @@ -26,6 +26,20 @@ namespace ProjectGarage.Forms _routeRepository = routeRepository ?? throw new ArgumentNullException(nameof(routeRepository)); } private void ButtonAddRoute_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при добавлении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + } + private void FormRoutes_Load(object sender, EventArgs e) { try { @@ -38,6 +52,7 @@ namespace ProjectGarage.Forms } } + private void ButtonUpdateRoute_Click(object sender, EventArgs e) { try diff --git a/ProjectGarage/Forms/FormTransportations.Designer.cs b/ProjectGarage/Forms/FormTransportations.Designer.cs index 985838c..9a52d64 100644 --- a/ProjectGarage/Forms/FormTransportations.Designer.cs +++ b/ProjectGarage/Forms/FormTransportations.Designer.cs @@ -82,6 +82,7 @@ Controls.Add(panelFormTransportationsButtons); Name = "FormTransportations"; Text = "FormTransportations"; + Load += FormTransportations_Load; ((System.ComponentModel.ISupportInitialize)dataGridViewTransportations).EndInit(); panelFormTransportationsButtons.ResumeLayout(false); ResumeLayout(false); diff --git a/ProjectGarage/Forms/FormTransportations.cs b/ProjectGarage/Forms/FormTransportations.cs index 4ab11d4..7c423a5 100644 --- a/ProjectGarage/Forms/FormTransportations.cs +++ b/ProjectGarage/Forms/FormTransportations.cs @@ -43,7 +43,7 @@ namespace ProjectGarage.Forms { try { - _container.Resolve().ShowDialog(); + _container.Resolve().ShowDialog(); LoadList(); } catch (Exception ex) diff --git a/ProjectGarage/Program.cs b/ProjectGarage/Program.cs index 9572f82..72fc364 100644 --- a/ProjectGarage/Program.cs +++ b/ProjectGarage/Program.cs @@ -27,8 +27,7 @@ namespace ProjectGarage container.RegisterType(); container.RegisterType(); container.RegisterType(); - container.RegisterType(); - + container.RegisterType(); return container; } diff --git a/ProjectGarage/Repositories/IFuelReplishmentRepository.cs b/ProjectGarage/Repositories/IReplenishmentRepository.cs similarity index 91% rename from ProjectGarage/Repositories/IFuelReplishmentRepository.cs rename to ProjectGarage/Repositories/IReplenishmentRepository.cs index 51f95d7..ab27bf5 100644 --- a/ProjectGarage/Repositories/IFuelReplishmentRepository.cs +++ b/ProjectGarage/Repositories/IReplenishmentRepository.cs @@ -7,7 +7,7 @@ using System.Threading.Tasks; namespace ProjectGarage.Repositories; -public interface IFuelReplishmentRepository +public interface IReplenishmentRepository { IEnumerable ReadFuelReplenishment(DateTime? dateForm = null, DateTime? dateTo = null, int? fuelId = null, int? driverId = null, int? routeId = null); diff --git a/ProjectGarage/Repositories/Implementations/DriverRepository.cs b/ProjectGarage/Repositories/Implementations/DriverRepository.cs index 1401138..0fba152 100644 --- a/ProjectGarage/Repositories/Implementations/DriverRepository.cs +++ b/ProjectGarage/Repositories/Implementations/DriverRepository.cs @@ -17,7 +17,7 @@ public class DriverRepository : IDriverRepository { } - public Driver ReadDriverByID(int id) => Driver.CreateDriver(0, string.Empty, string.Empty, string.Empty); + public Driver ReadDriverByID(int id) => Driver.CreateDriver(0, string.Empty, string.Empty, string.Empty, 0); public IEnumerable ReadDrivers() => []; diff --git a/ProjectGarage/Repositories/Implementations/FuelReplishmentRepository.cs b/ProjectGarage/Repositories/Implementations/ReplenishmentRepository.cs similarity index 89% rename from ProjectGarage/Repositories/Implementations/FuelReplishmentRepository.cs rename to ProjectGarage/Repositories/Implementations/ReplenishmentRepository.cs index 760ca62..09a74d5 100644 --- a/ProjectGarage/Repositories/Implementations/FuelReplishmentRepository.cs +++ b/ProjectGarage/Repositories/Implementations/ReplenishmentRepository.cs @@ -7,7 +7,7 @@ using System.Threading.Tasks; namespace ProjectGarage.Repositories.Implementations; -public class FuelReplishmentRepository : IFuelReplishmentRepository +public class FuelReplishmentRepository : IReplenishmentRepository { public void CreateFuelReplenishment(FuelReplenishment fuelReplenishment) {