78 lines
2.1 KiB
C#

using LDBproject.Entities;
using LDBproject.Repositories;
namespace LDBproject.AdditionalForms;
public partial class CustomerF : Form
{
private readonly ICustomerCardsRep _customeRepository;
private int? _custID;
public CustomerF(ICustomerCardsRep customeR)
{
InitializeComponent();
_customeRepository = customeR ?? throw new ArgumentNullException(nameof(customeR));
}
public int ID
{
set
{
try
{
var reader = _customeRepository.GetCardByID(value);
if (reader == null)
{
throw new InvalidDataException(nameof(reader));
}
FIOEnterTb.Text = reader.FIO;
BirthdayDTPicker.Value = reader.AgeBirthday;
_custID = value;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "CustomerF [ Error : wrong data ]", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
}
private void SaveBtn_Click(object sender, EventArgs e)
{
try
{
if (string.IsNullOrWhiteSpace(FIOEnterTb.Text)
|| BirthdayDTPicker.Value.Year < 1940)
{
throw new Exception("CustomerF [ Blank spaces were left, not enough information ]");
}
if (_custID.HasValue)
{
_customeRepository.UpdateCard(CreateCustomer(_custID.Value));
}
else
{
_customeRepository.AddCard(CreateCustomer(0));
}
Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "CustomerF [ Error : while saving ]",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void CancelBtn_Click(object sender, EventArgs e) => Close();
private CustomerCard CreateCustomer(int id)
{
return CustomerCard.AddCustomer(id, FIOEnterTb.Text, BirthdayDTPicker.Value);
}
}