ProjectLib/ProjectLibrary/Forms/FReader.cs

89 lines
2.5 KiB
C#
Raw Normal View History

2024-11-19 14:49:58 +04:00
using System;
using System.Windows.Forms;
using ProjectLibrary.Entities;
using ProjectLibrary.Repositories;
2024-11-19 14:49:58 +04:00
namespace ProjectLibrary.Forms
{
public partial class FReader : Form
{
2024-11-20 19:31:06 +04:00
private readonly IReaderRepository _readerRepository;
private int? _readerId;
2024-11-19 14:49:58 +04:00
public int ID
2024-11-19 14:49:58 +04:00
{
set
{
try
{
2024-11-20 19:31:06 +04:00
var reader = _readerRepository.ReadReaderById(value);
if (reader == null)
{
throw new InvalidOperationException($"Reader with ID {value} not found.");
}
txtName.Text = reader.Name;
txtReaderTicket.Text = reader.ReaderTicket.ToString();
_readerId = value;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "[ Error : wrong data ]", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
2024-11-19 14:49:58 +04:00
}
public FReader(IReaderRepository readerRepository)
2024-11-19 14:49:58 +04:00
{
InitializeComponent();
_readerRepository = readerRepository ?? throw new ArgumentNullException(nameof(readerRepository));
2024-11-19 14:49:58 +04:00
}
private void SaveBtn_Click(object sender, EventArgs e)
2024-11-19 14:49:58 +04:00
{
try
{
if (string.IsNullOrWhiteSpace(txtName.Text) || string.IsNullOrWhiteSpace(txtReaderTicket.Text))
{
throw new Exception("[ Error : blank spaces were left, not enough information ]");
}
2024-11-19 14:49:58 +04:00
var reader = CreateReader();
2024-11-19 14:49:58 +04:00
if (_readerId.HasValue)
{
_readerRepository.UpdateReader(reader);
}
else
{
2024-11-20 19:31:06 +04:00
_readerRepository.CreateReader(reader);
}
Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "[ Error : while saving ]", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void DiscardBtn_Click(object sender, EventArgs e)
{
Close();
2024-11-19 14:49:58 +04:00
}
private Reader CreateReader()
2024-11-19 14:49:58 +04:00
{
return Reader.CreateEntity(
_readerId ?? 0,
txtName.Text,
int.Parse(txtReaderTicket.Text)
);
2024-11-19 14:49:58 +04:00
}
}
}