using Publication.Entites; using Publication.Repositories; using Publication.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 Publication.Forms; public partial class FormPublishingHouse : Form { private readonly IPublisingHouseRepository publisingHouseRepository; private int? publishingHouseId; public int Id { set { try { var publishingHouse = publisingHouseRepository.ReadPublishingHouseById(value); if (publishingHouse == null) { throw new InvalidDataException(nameof(publishingHouse)); } textBoxTitle.Text = publishingHouse.Title; textBoxAddress.Text = publishingHouse.Address; textBoxWorkPhone.Text = publishingHouse.WorkPhone; publishingHouseId = value; } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } } public FormPublishingHouse(IPublisingHouseRepository _publisingHouseRepository) { publisingHouseRepository = _publisingHouseRepository ?? throw new ArgumentNullException(nameof(_publisingHouseRepository)); InitializeComponent(); } private void FormPublishingHouse_Load(object sender, EventArgs e) { } private void buttonBreak_Click(object sender, EventArgs e) => Close(); private void buttonSave_Click(object sender, EventArgs e) { try { if (string.IsNullOrWhiteSpace(textBoxAddress.Text) || string.IsNullOrWhiteSpace(textBoxTitle.Text) || string.IsNullOrWhiteSpace(textBoxWorkPhone.Text)) { throw new Exception("Имеются незаполненные поля"); } if (publishingHouseId.HasValue) { publisingHouseRepository.UpdatePublishingHouse(CreatePublishingHouse(publishingHouseId.Value)); } else { publisingHouseRepository.CreatePublishingHouse(CreatePublishingHouse(0)); } Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private PublishingHouse CreatePublishingHouse(int id)=>PublishingHouse.CreateEntity(id,textBoxTitle.Text,textBoxAddress.Text,textBoxWorkPhone.Text); }