129 lines
4.5 KiB
C#
129 lines
4.5 KiB
C#
|
using LibraryContracts.BindingModels;
|
|||
|
using LibraryContracts.BusinessLogicsContracts;
|
|||
|
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 LibraryView
|
|||
|
{
|
|||
|
public partial class FormBook : Form
|
|||
|
{
|
|||
|
private readonly IBookLogic _bookLogic;
|
|||
|
private readonly IGenreLogic _genreLogic;
|
|||
|
public int Id { set { id = value; } }
|
|||
|
private int? id;
|
|||
|
public FormBook(IBookLogic bookLogic, IGenreLogic genreLogic)
|
|||
|
{
|
|||
|
_bookLogic = bookLogic;
|
|||
|
_genreLogic = genreLogic;
|
|||
|
InitializeComponent();
|
|||
|
LoadGenries();
|
|||
|
}
|
|||
|
|
|||
|
private void LoadGenries()
|
|||
|
{
|
|||
|
var genries = _genreLogic.Read(null);
|
|||
|
foreach (var genre in genries)
|
|||
|
{
|
|||
|
romanovaComboBoxGenre.FillList(genre.Name);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void FormBook_Load(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (id.HasValue)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
var view = _bookLogic.Read(new BookBindingModel { Id = id })?[0];
|
|||
|
if (view != null)
|
|||
|
{
|
|||
|
if (view.CostStr == "Не указано")
|
|||
|
{
|
|||
|
textBoxTitle.Text = view.Title;
|
|||
|
textBoxDescription.Text = view.Description;
|
|||
|
romanovaComboBoxGenre.SelectElement = view.Genre;
|
|||
|
textBoxCost.Value = null;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
textBoxTitle.Text = view.Title;
|
|||
|
textBoxDescription.Text = view.Description;
|
|||
|
romanovaComboBoxGenre.SelectElement = view.Genre;
|
|||
|
textBoxCost.Value = view.Cost;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void buttonSave_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (string.IsNullOrEmpty(textBoxTitle.Text))
|
|||
|
{
|
|||
|
MessageBox.Show("Заполните название книга", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
if (string.IsNullOrEmpty(textBoxDescription.Text))
|
|||
|
{
|
|||
|
MessageBox.Show("Заполните описание книги", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
if (string.IsNullOrEmpty(romanovaComboBoxGenre.SelectElement.ToString()))
|
|||
|
{
|
|||
|
MessageBox.Show("Выберите жанр книги", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|||
|
return;
|
|||
|
}
|
|||
|
int? cost = null;
|
|||
|
if (textBoxCost.Value != null)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
cost = Convert.ToInt32(textBoxCost.Value);
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
MessageBox.Show("Стоимость должна быть целым числом", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
try
|
|||
|
{
|
|||
|
_bookLogic.CreateOrUpdate(new BookBindingModel
|
|||
|
{
|
|||
|
Id = id,
|
|||
|
Title = textBoxTitle.Text,
|
|||
|
Description = textBoxDescription.Text,
|
|||
|
Genre = romanovaComboBoxGenre.SelectElement.ToString(),
|
|||
|
Cost = cost
|
|||
|
});
|
|||
|
MessageBox.Show("Сохранение прошло успешно", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|||
|
DialogResult = DialogResult.OK;
|
|||
|
Close();
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void buttonClose_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
DialogResult = DialogResult.Cancel;
|
|||
|
Close();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|