92 lines
3.0 KiB
C#
92 lines
3.0 KiB
C#
using ProjectGarage.Entities;
|
||
using ProjectGarage.Entities.Enums;
|
||
using ProjectGarage.Repositories;
|
||
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 FormDriver : Form
|
||
{
|
||
private readonly IDriverRepository _driverRepository;
|
||
private int? _driverId;
|
||
|
||
public int Id
|
||
{
|
||
set
|
||
{
|
||
try
|
||
{
|
||
|
||
var driver = _driverRepository.ReadDriverByID(value);
|
||
if (driver == null)
|
||
{
|
||
throw new
|
||
InvalidDataException(nameof(driver));
|
||
}
|
||
textBoxFirstName.Text = driver.First_name;
|
||
textBoxLastName.Text = driver.Last_name;
|
||
comboBoxTruckID.SelectedItem = driver.Id;//TODO НЕ ЗАБУДЬ
|
||
_driverId = value;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
public FormDriver(IDriverRepository driverRepository)
|
||
{
|
||
InitializeComponent();
|
||
_driverRepository = driverRepository ?? throw new ArgumentNullException(nameof(driverRepository));
|
||
comboBoxTruckID.DataSource = Enum.GetValues(typeof(FuelType));//TODO НЕ ЗАБУДЬ
|
||
|
||
}
|
||
|
||
private void ButtonSaveDriver_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
if (string.IsNullOrWhiteSpace(textBoxFirstName.Text) || string.IsNullOrWhiteSpace(textBoxLastName.Text)
|
||
|| comboBoxTruckID.SelectedIndex < 1)//TODO НЕ ЗАБУДЬ
|
||
{
|
||
throw new Exception("Имеются незаполненные поля");
|
||
}
|
||
if (_driverId.HasValue)
|
||
{
|
||
_driverRepository.UpdateDriver(CreateDriver(_driverId.Value));
|
||
}
|
||
else
|
||
{
|
||
_driverRepository.CreateDriver(CreateDriver(0));
|
||
}
|
||
Close();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
MessageBox.Show(ex.Message, "Ошибка при сохранении",
|
||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||
}
|
||
}
|
||
|
||
|
||
private void ButtonCancelDriver_Click(object sender, EventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
private Driver CreateDriver(int id) => Driver.CreateDriver(id, textBoxFirstName.Text,
|
||
textBoxLastName.Text, textBoxPhoneNum.Text, (int)(FuelType)comboBoxTruckID.SelectedItem!);//TODO НЕ ЗАБУДЬ
|
||
}
|
||
|
||
}
|