diff --git a/FuelAndLubricants/FuelAndLubricants/Forms/FormDrivers.Designer.cs b/FuelAndLubricants/FuelAndLubricants/Forms/FormDrivers.Designer.cs new file mode 100644 index 0000000..91aa935 --- /dev/null +++ b/FuelAndLubricants/FuelAndLubricants/Forms/FormDrivers.Designer.cs @@ -0,0 +1,127 @@ +namespace FuelAndLubricants.Forms +{ + partial class FormDrivers + { + /// + /// 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() + { + panel1 = new Panel(); + buttonDel = new Button(); + buttonUpd = new Button(); + buttonAdd = new Button(); + dataGridView = new DataGridView(); + panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit(); + SuspendLayout(); + // + // panel1 + // + panel1.Controls.Add(buttonDel); + panel1.Controls.Add(buttonUpd); + panel1.Controls.Add(buttonAdd); + panel1.Dock = DockStyle.Right; + panel1.ImeMode = ImeMode.NoControl; + panel1.Location = new Point(660, 0); + panel1.Name = "panel1"; + panel1.Size = new Size(89, 264); + panel1.TabIndex = 0; + // + // buttonDel + // + buttonDel.BackgroundImage = Properties.Resources.Удалить; + buttonDel.BackgroundImageLayout = ImageLayout.Stretch; + buttonDel.Location = new Point(6, 174); + buttonDel.Name = "buttonDel"; + buttonDel.Size = new Size(75, 75); + buttonDel.TabIndex = 2; + buttonDel.UseVisualStyleBackColor = true; + buttonDel.Click += ButtonDel_Click; + // + // buttonUpd + // + buttonUpd.BackgroundImage = Properties.Resources.Редактировать; + buttonUpd.BackgroundImageLayout = ImageLayout.Stretch; + buttonUpd.Location = new Point(6, 93); + buttonUpd.Name = "buttonUpd"; + buttonUpd.Size = new Size(75, 75); + buttonUpd.TabIndex = 1; + buttonUpd.UseVisualStyleBackColor = true; + buttonUpd.Click += ButtonUpd_Click; + // + // buttonAdd + // + buttonAdd.BackgroundImage = Properties.Resources.Добавить; + buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; + buttonAdd.Location = new Point(6, 12); + buttonAdd.Name = "buttonAdd"; + buttonAdd.Size = new Size(75, 75); + buttonAdd.TabIndex = 0; + buttonAdd.UseVisualStyleBackColor = true; + buttonAdd.Click += ButtonAdd_Click; + // + // dataGridView + // + dataGridView.AllowUserToAddRows = false; + dataGridView.AllowUserToDeleteRows = false; + dataGridView.AllowUserToResizeColumns = false; + dataGridView.AllowUserToResizeRows = false; + dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridView.Dock = DockStyle.Fill; + dataGridView.Location = new Point(0, 0); + dataGridView.MultiSelect = false; + dataGridView.Name = "dataGridView"; + dataGridView.ReadOnly = true; + dataGridView.RowHeadersVisible = false; + dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridView.Size = new Size(660, 264); + dataGridView.TabIndex = 1; + // + // FormDrivers + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(749, 264); + Controls.Add(dataGridView); + Controls.Add(panel1); + Name = "FormDrivers"; + StartPosition = FormStartPosition.CenterParent; + Text = "Водители"; + Load += FormDrivers_Load; + panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit(); + ResumeLayout(false); + } + + #endregion + + private Panel panel1; + private Button buttonDel; + private Button buttonUpd; + private Button buttonAdd; + private DataGridView dataGridView; + } +} \ No newline at end of file diff --git a/FuelAndLubricants/FuelAndLubricants/Forms/FormDrivers.cs b/FuelAndLubricants/FuelAndLubricants/Forms/FormDrivers.cs new file mode 100644 index 0000000..4d773e5 --- /dev/null +++ b/FuelAndLubricants/FuelAndLubricants/Forms/FormDrivers.cs @@ -0,0 +1,103 @@ +using FuelAndLubricants.Repositories; +using Unity; + +namespace FuelAndLubricants.Forms +{ + public partial class FormDrivers : Form + { + private readonly IUnityContainer _container; + + private readonly IDriverRepository _driverRepository; + + public FormDrivers(IUnityContainer container, IDriverRepository driverRepository) + { + InitializeComponent(); + _container = container ?? + throw new ArgumentNullException(nameof(container)); + _driverRepository = driverRepository ?? + throw new ArgumentNullException(nameof(driverRepository)); + + } + + private void FormDrivers_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().ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при добавлении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + } + + private void ButtonUpd_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + return; + + try + { + var form = _container.Resolve(); + form.Id = findId; + form.ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при изменении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + } + + private void ButtonDel_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + return; + + if (MessageBox.Show("Удалить запись?", "Удаление", MessageBoxButtons.YesNo) != DialogResult.Yes) + return; + + try + { + _driverRepository.DeleteDriver(findId); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + } + + private void LoadList() => dataGridView.DataSource = _driverRepository.ReadDrivers(); + + private bool TryGetIdentifierFromSelectedRow(out int id) + { + id = 0; + if (dataGridView.SelectedRows.Count < 1) + { + MessageBox.Show("Нет выбранной записи", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Driver_ID"].Value); + return true; + } + + } +} diff --git a/FuelAndLubricants/FuelAndLubricants/Forms/FormDrivers.resx b/FuelAndLubricants/FuelAndLubricants/Forms/FormDrivers.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/FuelAndLubricants/FuelAndLubricants/Forms/FormDrivers.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/FuelAndLubricants/FuelAndLubricants/Properties/Resources.Designer.cs b/FuelAndLubricants/FuelAndLubricants/Properties/Resources.Designer.cs index 6091d21..9d3b463 100644 --- a/FuelAndLubricants/FuelAndLubricants/Properties/Resources.Designer.cs +++ b/FuelAndLubricants/FuelAndLubricants/Properties/Resources.Designer.cs @@ -69,5 +69,35 @@ namespace FuelAndLubricants.Properties { return ((System.Drawing.Bitmap)(obj)); } } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Добавить { + get { + object obj = ResourceManager.GetObject("Добавить", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Редактировать { + get { + object obj = ResourceManager.GetObject("Редактировать", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Удалить { + get { + object obj = ResourceManager.GetObject("Удалить", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } } } diff --git a/FuelAndLubricants/FuelAndLubricants/Properties/Resources.resx b/FuelAndLubricants/FuelAndLubricants/Properties/Resources.resx index 589857c..f20a0d8 100644 --- a/FuelAndLubricants/FuelAndLubricants/Properties/Resources.resx +++ b/FuelAndLubricants/FuelAndLubricants/Properties/Resources.resx @@ -121,4 +121,13 @@ ..\Resources\ГСМ.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Добавить.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Редактировать.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Удалить.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/FuelAndLubricants/FuelAndLubricants/Resources/Добавить.png b/FuelAndLubricants/FuelAndLubricants/Resources/Добавить.png new file mode 100644 index 0000000..ecc20e3 Binary files /dev/null and b/FuelAndLubricants/FuelAndLubricants/Resources/Добавить.png differ diff --git a/FuelAndLubricants/FuelAndLubricants/Resources/Редактировать.png b/FuelAndLubricants/FuelAndLubricants/Resources/Редактировать.png new file mode 100644 index 0000000..53c3cf6 Binary files /dev/null and b/FuelAndLubricants/FuelAndLubricants/Resources/Редактировать.png differ diff --git a/FuelAndLubricants/FuelAndLubricants/Resources/Удалить.png b/FuelAndLubricants/FuelAndLubricants/Resources/Удалить.png new file mode 100644 index 0000000..ab02768 Binary files /dev/null and b/FuelAndLubricants/FuelAndLubricants/Resources/Удалить.png differ