Задание
Разработать программу на языке C#, которая позволяла бы хранить сведения о выданных и возвращенных читателем книгах.
Функционал программы
- добавление данных
- редактирование данных
- удаление данных
Фрагмент программного кода
using Library.BL.Interfaces; using Library.BL.Models; using System; using System.Linq; using System.Windows; namespace Library.UI { /// <summary> /// Логика взаимодействия для AddBooksWindow.xaml /// </summary> public partial class AddBooksWindow : Window { /// <summary> /// Список жанров книг /// </summary> private static readonly string[] Genres = { "Фантастика", "Триллер", "Ужасы" }; /// <summary> /// Поле хранит идентификатор товара /// </summary> private int _id; public AddBooksWindow() { InitializeComponent(); // Передаем допустимые значения cbGenre.ItemsSource = Genres; // Задаем начальное значение cbGenre.SelectedIndex = 0; } private void BtnCancel_Click(object sender, RoutedEventArgs e) { Close(); } private void BtnSave_Click(object sender, RoutedEventArgs e) { int issueDate; int? returnDate = null; if (string.IsNullOrEmpty(tbAuthor.Text)) { MessageBox.Show("Поле Автор не может быть пустым", "Проверка"); return; } if (string.IsNullOrEmpty(tbName.Text)) { MessageBox.Show("Поле Название не может быть пустым", "Проверка"); return; } if (string.IsNullOrEmpty(tbReader.Text)) { MessageBox.Show("Поле Читатель не может быть пустым", "Проверка"); return; } if (!int.TryParse(tbIssueDate.Text, out issueDate)) { MessageBox.Show("Дата выдачи должна быть целым числом", "Проверка"); return; } if (!string.IsNullOrEmpty(tbReturnDate.Text)) { int intReturn; if (!int.TryParse(tbReturnDate.Text, out intReturn)) { MessageBox.Show("Дата возврата должна быть целым числом", "Проверка"); return; } if (intReturn < issueDate) { MessageBox.Show("Дата возврата должны быть больше даты выдачи", "Проверка"); return; } returnDate = intReturn; } // Создаем объект для передачи данных BookDto book = new BookDto { // Заполняем объект данными Author = tbAuthor.Text, Name = tbName.Text, Reader = tbReader.Text, IssueDate = issueDate, ReturnDate = returnDate, Genre = cbGenre.SelectedItem.ToString() }; // Именно тут запрашиваем реализованную раннее задачу по работе с книгами IBookProcess bookProcess = ProcessFactory.GetBookProcess(); // если это новый объект - сохраняем его if (_id == 0) { // Сохраняем книги bookProcess.Add(book); } else // иначе обновляем { // копируем обратно идентификатор объекта book.Id = _id; // обновляем bookProcess.Update(book); } // и закрываем форму Close(); } public void Load(BookDto book) { // если объект не существует, или преподаватель не в списке допустимых, выходим if (book == null || !Genres.Contains(book.Genre)) return; // сохраняем id книги _id = book.Id; // заполняем визуальные компоненты для отображения данных tbAuthor.Text = book.Author; tbName.Text = book.Name; tbReader.Text = book.Reader; tbIssueDate.Text = book.IssueDate.ToString(); if (book.ReturnDate.HasValue) tbReturnDate.Text = book.ReturnDate.Value.ToString(); cbGenre.SelectedItem = book.Genre; } } }
Скриншот архива с проектом
Пояснения по запуску программы
Запускаем Visual Studio 2022, запускаем проект. Инструкция приложена.
admin