private void AddReaderInBlackList_Click(object sender, RoutedEventArgs e) { using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { Order order = dbContainer.Orders.Find(_selectedOrder.Id); User user = dbContainer.Users.Find(_currentUser.Id); if (order != null) { bool blocked = order.Reader.Blocked; // Сохраняем старое значение поля Blocked у читателя order.Reader.Blocked = true; EntityRecord record = dbContainer.EntityRecords.First(c => c.Reader.Id == order.Reader.Id); // Находим запись нужного читателя для редактирования в таблице EntityRecords // Меняем значения у объекта типа EntityRecord record.ModifiedBy = user; record.State = "Изменён"; CreateEntityHistory("Заблокирован", blocked ? "Да" : "Нет", order.Reader.Blocked ? "Да" : "Нет", record); dbContainer.SaveChanges(); MessageBox.Show($"Читатель: {order.Reader.Name}. Указанный читатель успешно отправлен в очередь на добавление в чёрный список."); } } Close(); }
private readonly Book _selectedBook; // Выбранная книга в BookDataGrid для редактирования public BookWindow(bool isAddMode, Book book, User user) { InitializeComponent(); _isAddMode = isAddMode; _selectedBook = book; _currentUser = user; using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { BookCatalogComboBox.ItemsSource = dbContainer.Catalogs.ToList(); BookGenreComboBox.ItemsSource = dbContainer.Genres.ToList(); if (!_isAddMode) // Режим редактирования существующей книги { AddUpdateButton.Content = "Редактировать"; book = dbContainer.Books.Find(book.Id); if (book != null) { BookNameTextBox.Text = book.Name; BookGenreComboBox.SelectedItem = book.Genre; BookAuthorTextBox.Text = book.Author; BookYearMaskedTextBox.Text = book.Year.ToString(); BookCatalogComboBox.SelectedItem = book.Catalog; } } } }
private readonly Reader _selectedReader; // Выбранный читатель в ReaderDataGrid для редактирования public ReaderWindow(bool isAddMode, Reader reader, User user) { InitializeComponent(); _isAddMode = isAddMode; _selectedReader = reader; _currentUser = user; using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { if (!_isAddMode) // Режим редактирования существующего читателя { AddUpdateButton.Content = "Редактировать"; BlockedReaderCheckBox.IsEnabled = true; RemovedReaderCheckBox.IsEnabled = true; reader = dbContainer.Readers.Find(reader.Id); if (reader != null) { ReaderNameTextBox.Text = reader.Name; BlockedReaderCheckBox.IsChecked = reader.Blocked; RemovedReaderCheckBox.IsChecked = reader.Removed; } } } }
private readonly User _selectedReader; // Выбранный пользователь системы в UserDataGrid для редактирования public UserWindow(bool isAddMode, User user, User currentUser) { InitializeComponent(); _isAddMode = isAddMode; _selectedReader = user; if (currentUser.UserRole == "Администратор") { UserUserRoleComboBox.Items.Remove(UserUserRoleComboBox.Items[1]); } using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { if (!_isAddMode) // Режим редактирования существующего пользователя системы { AddUpdateButton.Content = "Редактировать"; user = dbContainer.Users.Find(user.Id); if (user != null) { UserNameTextBox.Text = user.Name; UserUserRoleComboBox.Text = user.UserRole; UserLoginTextBox.Text = user.Login; UserPasswordTextBox.Text = user.Password; } } } }
private readonly User _currentUser; // Текущий пользователь системы public OrderWindow(User user) { InitializeComponent(); _currentUser = user; using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { ReaderNameComboBox.ItemsSource = dbContainer.Readers.ToList(); BookDataGrid.ItemsSource = dbContainer.Books.Include(c => c.Catalog).Include(c => c.Genre).ToList(); } }
private void GenreFilterTextChanged(object sender, TextChangedEventArgs e) // Изменение текста в фильтре при поиске книг по жанру { using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { if (GenreTextBox.Text == "") // Если TextBox не заполнен символами { BookDataGrid.ItemsSource = dbContainer.Books.Include(c => c.Catalog).Include(c => c.Genre).ToList(); } else // Если TextBox заполнен символами { IQueryable <Book> result = dbContainer.Books.Include(c => c.Catalog).Include(c => c.Genre).Where(c => c.Genre.Name.Contains(GenreTextBox.Text)); // LINQ. Like SQL запрос в БД по автору книги BookDataGrid.ItemsSource = result.ToList(); } } }
public OrderDetailWindow(Order order, User user) { InitializeComponent(); using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { Order findOrder = dbContainer.Orders.Find(order.Id); if (findOrder != null) { _selectedOrder = findOrder; _currentUser = user; } } }
private void AddBookToTheBasket_Click(object sender, RoutedEventArgs e) // Добавление книг в корзину заказа { using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { Book book = dbContainer.Books.Include(c => c.Catalog).Include(c => c.Genre).FirstOrDefault(c => c.Id == ((Book)BookDataGrid.SelectedItem).Id); if (book != null) // Если в DataGrid книг выбрана строка { BasketBookDataGrid.Items.Add(book); // Добавляем выбранную книгу в корзину } else // Если в DataGrid книг ничего не выбрано { MessageBox.Show("В таблице книг не выбрана книга."); } } }
private void Login_Click(object sender, RoutedEventArgs e) // Кнопка входа в систему "БИБЛИОТЕКА" { using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { User user = dbContainer.Users.FirstOrDefault(c => c.Login == LoginTextBox.Text && c.Password == PasswordTextBox.Password); if (user == null) { MessageBox.Show("Неправильные данные для входа в систему. Пожалуйста, попробуйте снова."); } else { CurrentUser = user; DialogResult = true; } } }
private void Window_Loaded(object sender, RoutedEventArgs e) { using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { Order findOrder = dbContainer.Orders.Find(_selectedOrder.Id); if (findOrder != null) { DateTime now = DateTime.Now; if (findOrder.DeadlineDate.CompareTo(now) < 0) // Если дата закрытия у заказа наступило раньше сегодняшнего дня { BlackListButton.IsEnabled = true; } } } }
private void CreateEntityHistory(string fieldName, string oldValue, string newValue, EntityRecord record) // Метод создания историй изменений записи каталога для таблицы EntityHistory { using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { User user = dbContainer.Users.Find(_currentUser.Id); EntityRecord findRecord = dbContainer.EntityRecords.Find(record.Id); EntityHistory history = new EntityHistory { Id = Guid.NewGuid(), FieldName = fieldName, OldValue = oldValue, NewValue = newValue, Date = DateTime.Now, User = user, EntityRecord = findRecord }; dbContainer.EntityHistories.Add(history); dbContainer.SaveChanges(); } }
private readonly Catalog _selectedCatalog; // Выбранный каталог в CatalogDataGrid для редактирования public CatalogWindow(bool isAddMode, Catalog catalog, User user) { InitializeComponent(); _isAddMode = isAddMode; _selectedCatalog = catalog; _currentUser = user; using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { if (!_isAddMode) // Режим редактирования существующего каталога { AddUpdateButton.Content = "Редактировать"; catalog = dbContainer.Catalogs.Find(catalog.Id); if (catalog != null) { NameCatalogTextBox.Text = catalog.Name; DescriptionCatalogTextBox.Text = catalog.Description; } } } }
private void AddUpdateRecord_Click(object sender, RoutedEventArgs e) { if (NameCatalogTextBox.Text != "" && NameCatalogTextBox.Text.Length <= 50 && DescriptionCatalogTextBox.Text != "" && DescriptionCatalogTextBox.Text.Length <= 150) // Если в окне заполнены все поля и их длины <= заявленного значения { using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { Entity entity = dbContainer.Entities.First(c => c.Name == "Каталог"); User user = dbContainer.Users.Find(_currentUser.Id); if (_isAddMode) // Режим добавления записи { // Создание каталога для таблицы Catalogs Catalog catalog = new Catalog { Id = Guid.NewGuid(), Name = NameCatalogTextBox.Text, Description = DescriptionCatalogTextBox.Text }; dbContainer.Catalogs.Add(catalog); // Создание записи для таблицы EntityRecords EntityRecord record = new EntityRecord { Id = Guid.NewGuid(), Entity = entity, Name = catalog.Name, State = "Добавлен", CreatedBy = user, ModifiedBy = null, Catalog = catalog }; dbContainer.EntityRecords.Add(record); // Создание коллекции историй изменений записи каталога для таблицы EntityHistories IList <EntityHistory> historyRecordList = new List <EntityHistory> { new EntityHistory { Id = Guid.NewGuid(), FieldName = "Название", OldValue = null, NewValue = catalog.Name, Date = DateTime.Now, User = user, EntityRecord = record }, new EntityHistory { Id = Guid.NewGuid(), FieldName = "Описание", OldValue = null, NewValue = catalog.Description, Date = DateTime.Now, User = user, EntityRecord = record } }; dbContainer.EntityHistories.AddRange(historyRecordList); dbContainer.SaveChanges(); MessageBox.Show("Новый каталог успешно добавлен в систему."); } else // Режим редактирования записи { Catalog oldCatalog = dbContainer.Catalogs.Find(_selectedCatalog.Id); if (oldCatalog != null) { // Сохраняем старое значения читателя string name = oldCatalog.Name; string description = oldCatalog.Description; oldCatalog.Name = NameCatalogTextBox.Text; oldCatalog.Description = DescriptionCatalogTextBox.Text; // Если пользователь решил не изменять информацию о выбранном каталоге в таблице CatalogDataGrid и нажал кнопку "Редактировать" if (name == oldCatalog.Name && description == oldCatalog.Description) { MessageBox.Show("Информация о выбранном каталоге не изменилась."); } else { EntityRecord record = dbContainer.EntityRecords.First(c => c.Catalog.Id == oldCatalog.Id); // Находим запись нужного каталога для редактирования в таблице EntityRecords // Меняем значения у объекта типа EntityRecord record.ModifiedBy = user; record.State = "Изменён"; if (name != oldCatalog.Name) // Если изменилось название у каталога { record.Name = oldCatalog.Name; CreateEntityHistory("Название", name, oldCatalog.Name, record); } if (description != oldCatalog.Description) // Если изменилось описание у каталога { CreateEntityHistory("Описание", description, oldCatalog.Description, record); } dbContainer.SaveChanges(); MessageBox.Show("Информация о выбранном каталоге успешно изменена в системе."); } } } } Close(); } else if (NameCatalogTextBox.Text.Length > 50) // Если поле название имеет длину текста > 50 символов { MessageBox.Show("Поле название. Длина текста не должна превышать больше 50 символов."); } else if (DescriptionCatalogTextBox.Text.Length > 150) // Если поле описание имеет длину текста > 150 символов { MessageBox.Show("Поле описание. Длина текста не должна превышать больше 150 символов."); } else if (NameCatalogTextBox.Text == "" && DescriptionCatalogTextBox.Text == "") // Если в окне все поля не заполнены { MessageBox.Show("Заполните поля для каталога: Название, Описание."); } else // Проверяем на пустоту заполнения некоторых полей в окне { if (NameCatalogTextBox.Text == "") { MessageBox.Show("Заполните поле для каталога: Название."); } else if (DescriptionCatalogTextBox.Text == "") { MessageBox.Show("Заполните поле для каталога: Описание."); } } }
private void AddUpdateRecord_Click(object sender, RoutedEventArgs e) { if (ReaderNameTextBox.Text != "" && ReaderNameTextBox.Text.Length <= 50) // Если заполнено поле ФИО и длина текста <= 50 символов { using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { Entity entity = dbContainer.Entities.First(c => c.Name == "Читатель"); User user = dbContainer.Users.Find(_currentUser.Id); if (_isAddMode) // Режим добавления записи { // Создание читателя для таблицы Readers Reader reader = new Reader { Id = Guid.NewGuid(), Name = ReaderNameTextBox.Text, Status = "Активен", Blocked = false, Removed = false }; dbContainer.Readers.Add(reader); // Создание записи для таблицы EntityRecords EntityRecord record = new EntityRecord { Id = Guid.NewGuid(), Entity = entity, Name = reader.Name, State = "Добавлен", CreatedBy = user, ModifiedBy = null, Reader = reader }; dbContainer.EntityRecords.Add(record); // Создание коллекции историй изменений записи читателя для таблицы EntityHistories IList <EntityHistory> historyRecordList = new List <EntityHistory> { new EntityHistory { Id = Guid.NewGuid(), FieldName = "ФИО", OldValue = null, NewValue = reader.Name, Date = DateTime.Now, User = user, EntityRecord = record }, new EntityHistory { Id = Guid.NewGuid(), FieldName = "Статус", OldValue = null, NewValue = reader.Status, Date = DateTime.Now, User = user, EntityRecord = record }, new EntityHistory { Id = Guid.NewGuid(), FieldName = "Заблокирован", OldValue = null, NewValue = reader.Blocked ? "Да" : "Нет", Date = DateTime.Now, User = user, EntityRecord = record }, new EntityHistory { Id = Guid.NewGuid(), FieldName = "Удалён", OldValue = null, NewValue = reader.Removed ? "Да" : "Нет", Date = DateTime.Now, User = user, EntityRecord = record } }; dbContainer.EntityHistories.AddRange(historyRecordList); dbContainer.SaveChanges(); MessageBox.Show("Новый читатель успешно добавлен в систему."); } else // Режим редактирования записи { Reader oldReader = dbContainer.Readers.Find(_selectedReader.Id); if (oldReader != null) { // Сохраняем старые значения читателя string name = oldReader.Name; bool blocked = oldReader.Blocked; bool removed = oldReader.Removed; oldReader.Name = ReaderNameTextBox.Text; oldReader.Blocked = BlockedReaderCheckBox.IsChecked == true; oldReader.Removed = RemovedReaderCheckBox.IsChecked == true; dbContainer.SaveChanges(); // Если пользователь решил не изменять информацию о выбранном читателе в таблице ReaderDataGrid и нажал кнопку "Редактировать" if (name == oldReader.Name && blocked == oldReader.Blocked && removed == oldReader.Removed) { MessageBox.Show("Информация о выбранном читателе не изменилась."); } else { EntityRecord record = dbContainer.EntityRecords.First(c => c.Reader.Id == oldReader.Id); // Находим запись нужного читателя для редактирования в таблице EntityRecords // Меняем значения у объекта типа EntityRecord record.ModifiedBy = user; record.State = "Изменён"; if (name != oldReader.Name) // Если изменилось ФИО у читателя { record.Name = oldReader.Name; CreateEntityHistory("Название", name, oldReader.Name, record); } if (blocked != oldReader.Blocked) // Если изменилось значение поля "Заблокирован" у читателя { CreateEntityHistory("Заблокирован", blocked ? "Да" : "Нет", oldReader.Blocked ? "Да" : "Нет", record); } if (removed != oldReader.Removed) // Если изменилось значение поля "Удалён" у читателя { CreateEntityHistory("Удалён", removed ? "Да" : "Нет", oldReader.Removed ? "Да" : "Нет", record); } dbContainer.SaveChanges(); MessageBox.Show("Информация о выбранном читателе успешно изменена в системе."); } } } } Close(); } else if (ReaderNameTextBox.Text.Length > 50) { MessageBox.Show("Поле ФИО. Длина текста не должна превышать больше 50 символов."); } else // Если поле ФИО пустое { MessageBox.Show("Заполните поле для читателя: ФИО."); } }
private void AddUpdateRecord_Click(object sender, RoutedEventArgs e) { if (BookNameTextBox.Text != "" && BookNameTextBox.Text.Length <= 50 && BookGenreComboBox.SelectedItem != null && BookAuthorTextBox.Text != "" && BookAuthorTextBox.Text.Length <= 50 && BookYearMaskedTextBox.IsMaskCompleted) // Если в окне заполнены все поля и их длины <= заявленного значения { using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { Entity entity = dbContainer.Entities.First(c => c.Name == "Книга"); User user = dbContainer.Users.Find(_currentUser.Id); if (_isAddMode) // Режим добавления записи { Catalog catalog = dbContainer.Catalogs.Find(((Catalog)BookCatalogComboBox.SelectedItem)?.Id); Genre genre = dbContainer.Genres.Find(((Genre)BookGenreComboBox.SelectedItem)?.Id); // Создание книги для таблицы Catalogs Book book = new Book { Id = Guid.NewGuid(), Name = BookAuthorTextBox.Text, Author = BookAuthorTextBox.Text, Year = Convert.ToInt16(BookYearMaskedTextBox.Text), Genre = genre, Catalog = catalog }; dbContainer.Books.Add(book); // Создание записи для таблицы EntityRecords EntityRecord record = new EntityRecord { Id = Guid.NewGuid(), Entity = entity, Name = book.Name, State = "Добавлен", CreatedBy = user, ModifiedBy = null, Book = book }; dbContainer.EntityRecords.Add(record); // Создание коллекции историй изменений записи книги для таблицы EntityHistories IList <EntityHistory> historyRecordList = new List <EntityHistory> { new EntityHistory { Id = Guid.NewGuid(), FieldName = "Название", OldValue = null, NewValue = book.Name, Date = DateTime.Now, User = user, EntityRecord = record }, new EntityHistory { Id = Guid.NewGuid(), FieldName = "Жанр", OldValue = null, NewValue = book.Genre.Name, Date = DateTime.Now, User = user, EntityRecord = record }, new EntityHistory { Id = Guid.NewGuid(), FieldName = "Автор", OldValue = null, NewValue = book.Author, Date = DateTime.Now, User = user, EntityRecord = record }, new EntityHistory { Id = Guid.NewGuid(), FieldName = "Год издания", OldValue = null, NewValue = book.Year.ToString(), Date = DateTime.Now, User = user, EntityRecord = record }, new EntityHistory { Id = Guid.NewGuid(), FieldName = "Каталог", OldValue = null, NewValue = book.Catalog?.Name, Date = DateTime.Now, User = user, EntityRecord = record } }; dbContainer.EntityHistories.AddRange(historyRecordList); dbContainer.SaveChanges(); MessageBox.Show("Новая книга успешно добавлена в систему."); } else // Режим редактирования записи { Book oldBook = dbContainer.Books.Find(_selectedBook.Id); if (oldBook != null) { // Сохраняем старое значения читателя string name = oldBook.Name; string genre = oldBook.Genre?.Name; string author = oldBook.Author; short year = oldBook.Year; string catalog = oldBook.Catalog?.Name; oldBook.Name = BookNameTextBox.Text; oldBook.Genre = dbContainer.Genres.Find(((Genre)BookGenreComboBox.SelectedItem)?.Id); oldBook.Author = BookAuthorTextBox.Text; oldBook.Year = Convert.ToInt16(BookYearMaskedTextBox.Text); oldBook.Catalog = dbContainer.Catalogs.Find(((Catalog)BookCatalogComboBox.SelectedItem)?.Id); // Если пользователь решил не изменять информацию о выбранной книге в таблице BookDataGrid и нажал кнопку "Редактировать" if (name == oldBook.Name && genre == oldBook.Genre?.Name && author == oldBook.Author && year == oldBook.Year && catalog == oldBook.Catalog?.Name) { MessageBox.Show("Информация о выбранной книге не изменилась."); } else { EntityRecord record = dbContainer.EntityRecords.First(c => c.Book.Id == oldBook.Id); // Находим запись нужной книги для редактирования в таблице EntityRecords // Меняем значения у объекта типа EntityRecord record.ModifiedBy = user; record.State = "Изменён"; if (name != oldBook.Name) // Если изменилось название у книги { record.Name = oldBook.Name; CreateEntityHistory("Название", name, oldBook.Name, record); } if (genre != oldBook.Genre?.Name) // Если изменился жанр у книги { CreateEntityHistory("Жанр", genre, oldBook.Genre?.Name, record); } if (author != oldBook.Author) // Если изменился автор у книги { CreateEntityHistory("Автор", author, oldBook.Author, record); } if (year != oldBook.Year) // Если изменился год издания у книги { CreateEntityHistory("Год издания", year.ToString(), oldBook.Year.ToString(), record); } if (catalog != oldBook.Catalog?.Name) // Если изменился каталог у книги { CreateEntityHistory("Каталог", catalog, oldBook.Catalog?.Name, record); } dbContainer.SaveChanges(); MessageBox.Show("Информация о выбранной книге успешно изменена."); } } } } Close(); } else if (BookNameTextBox.Text.Length > 50) // Если поле название имеет длину текста > 50 символов { MessageBox.Show("Поле название. Длина текста не должна превышать больше 50 символов."); } else if (BookAuthorTextBox.Text.Length > 50) // Если поле автор имеет длину текста > 50 символов { MessageBox.Show("Поле автор. Длина текста не должна превышать больше 50 символов."); } else if (BookNameTextBox.Text == "" && BookGenreComboBox.SelectedItem == null && BookAuthorTextBox.Text == "" && !BookYearMaskedTextBox.IsMaskCompleted) // Если в окне все поля не заполнены { MessageBox.Show("Заполните поля для книги: Название, Жанр, Автор, Год издания, Каталог."); } else // Проверяем на пустоту заполнения некоторых полей в окне { if (BookNameTextBox.Text == "") { MessageBox.Show("Заполните поле для книги: Название."); } else if (BookGenreComboBox.SelectedItem == null) { MessageBox.Show("Заполните поле для книги: Жанр."); } else if (BookAuthorTextBox.Text == "") { MessageBox.Show("Заполните поле для книги: Автор."); } else if (!BookYearMaskedTextBox.IsMaskCompleted) { MessageBox.Show("Заполните поле для книги: Год издания."); } else if (BookCatalogComboBox.SelectedItem == null) { MessageBox.Show("Заполните поле для книги: Каталог."); } } }
private void PackageOrder_Click(object sender, RoutedEventArgs e) // Добавить оформленный заказ { if (ReaderNameComboBox.SelectedItem != null && DeadlineDateOrder.Value != null && BasketBookDataGrid.Items.Count > 0) // Если выбран читатель, указана дата закрытия и таблица "Корзина выбранных книг" непустая { if (((Reader)ReaderNameComboBox.SelectedItem).Blocked || ((Reader)ReaderNameComboBox.SelectedItem).Status == "Заблокирован") { MessageBox.Show($"Читатель: {((Reader)ReaderNameComboBox.SelectedItem).Name}. Выбранный читатель находится в чёрном списке."); } else if (((Reader)ReaderNameComboBox.SelectedItem).Removed) { MessageBox.Show($"Читатель: {((Reader)ReaderNameComboBox.SelectedItem).Name}. Выбранный читатель находится в очереди на удаление из системы."); } else if (DeadlineDateOrder.Value.Value < DateTime.Now) { MessageBox.Show("Значение даты закрытия нового заказа не может быть меньше сегодняшнего дня."); } else { using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { Reader reader = dbContainer.Readers.Find(((Reader)ReaderNameComboBox.SelectedItem)?.Id); Entity entity = dbContainer.Entities.First(c => c.Name == "Заказ"); User user = dbContainer.Users.Find(_currentUser.Id); ICollection <Book> books = new List <Book>(); foreach (Book book in BasketBookDataGrid.Items) { Book findBook = dbContainer.Books.Find(book.Id); books.Add(findBook); } Order order = new Order { Id = Guid.NewGuid(), RegisteredOn = DateTime.Now, DeadlineDate = (DateTime)DeadlineDateOrder.Value, ClosureDate = null, Reader = reader, Books = books }; dbContainer.Orders.Add(order); short maxNumber = dbContainer.Orders.Max(c => c.Number); // Создание записи для таблицы EntityRecords EntityRecord record = new EntityRecord { Id = Guid.NewGuid(), Entity = entity, Name = (maxNumber + 1).ToString(), State = "Добавлен", CreatedBy = user, ModifiedBy = null, Order = order }; dbContainer.EntityRecords.Add(record); // Создание коллекции историй изменений записи заказа для таблицы EntityHistories IList <EntityHistory> historyRecordList = new List <EntityHistory> { new EntityHistory { Id = Guid.NewGuid(), FieldName = "Номер", OldValue = null, NewValue = order.Number.ToString(), Date = DateTime.Now, User = user, EntityRecord = record }, new EntityHistory { Id = Guid.NewGuid(), FieldName = "Дата регистрации", OldValue = null, NewValue = order.RegisteredOn.ToString("F", DeadlineDateOrder.CultureInfo.Parent), Date = DateTime.Now, User = user, EntityRecord = record }, new EntityHistory { Id = Guid.NewGuid(), FieldName = "Дата закрытия", OldValue = null, NewValue = order.DeadlineDate.ToString("F", DeadlineDateOrder.CultureInfo.Parent), Date = DateTime.Now, User = user, EntityRecord = record }, new EntityHistory { Id = Guid.NewGuid(), FieldName = "Фактическое закрытие", OldValue = null, NewValue = null, Date = DateTime.Now, User = user, EntityRecord = record } }; dbContainer.EntityHistories.AddRange(historyRecordList); dbContainer.SaveChanges(); } Close(); } } else if (ReaderNameComboBox.SelectedItem == null && DeadlineDateOrder.Value == null && BasketBookDataGrid.Items.Count == 0) // Если в окне не заполнена вся информация о новом заказе { MessageBox.Show("Заполните всю информацию о новом заказе: выберите нужного читателя, укажите дату закрытия и заполните книгами таблицу \"Корзина выбранных книг\"."); } else if (ReaderNameComboBox.SelectedItem == null) { MessageBox.Show("Не выбран читатель для оформления нового заказа."); } else if (DeadlineDateOrder.Value == null) { MessageBox.Show("Не указана дата закрытия нового заказа."); } else if (BasketBookDataGrid.Items.Count == 0) { MessageBox.Show("Корзина книг пустая. Выберите нужные книги в таблице \"Таблица книг\" для оформления нового заказа."); } }
private void AddUpdateRecord_Click(object sender, RoutedEventArgs e) { if (UserNameTextBox.Text != "" && UserNameTextBox.Text.Length <= 50 && UserUserRoleComboBox.SelectedItem != null && UserLoginTextBox.Text != "" && UserLoginTextBox.Text.Length <= 30 && UserPasswordTextBox.Text != "" && UserPasswordTextBox.Text.Length <= 30) // Если в окне заполнены все поля и их длины <= заявленного значения { using (LibraryModelContainer dbContainer = new LibraryModelContainer()) { if (_isAddMode) // Режим добавления записи { User user = new User { Id = Guid.NewGuid(), Name = UserNameTextBox.Text, UserRole = UserUserRoleComboBox.Text, Login = UserLoginTextBox.Text, Password = UserPasswordTextBox.Text }; dbContainer.Users.Add(user); dbContainer.SaveChanges(); MessageBox.Show("Новый пользователь системы успешно добавлен в систему."); } else // Режим редактирования записи { _selectedReader.Name = UserNameTextBox.Text; _selectedReader.UserRole = UserUserRoleComboBox.Text; _selectedReader.Login = UserLoginTextBox.Text; _selectedReader.Password = UserPasswordTextBox.Text; dbContainer.SaveChanges(); MessageBox.Show("Информация о выбранном пользователе системы успешно изменена в системе."); } } Close(); } else if (UserNameTextBox.Text.Length > 50) // Если поле ФИО имеет длину текста > 50 символов { MessageBox.Show("Поле ФИО. Длина текста не должна превышать больше 50 символов."); } else if (UserLoginTextBox.Text.Length > 30) // Если поле login имеет длину текста > 30 символов { MessageBox.Show("Поле login. Длина текста не должна превышать больше 30 символов."); } else if (UserPasswordTextBox.Text.Length > 30) // Если поле password имеет длину текста > 30 символов { MessageBox.Show("Поле password. Длина текста не должна превышать больше 30 символов."); } else if (UserNameTextBox.Text == "" && UserUserRoleComboBox.SelectedItem == null && UserLoginTextBox.Text == "" && UserPasswordTextBox.Text == "") // Если в окне все поля не заполнены { MessageBox.Show("Заполните поля для пользователя системы: ФИО, Роль пользователя, Login, Password."); } else // Проверяем на пустоту заполнения некоторых полей в окне { if (UserNameTextBox.Text == "") { MessageBox.Show("Заполните поле для пользователя системы: ФИО."); } else if (UserUserRoleComboBox.SelectedItem == null) { MessageBox.Show("Заполните поле для пользователя системы: Роль пользователя."); } else if (UserLoginTextBox.Text == "") { MessageBox.Show("Заполните поле для пользователя системы: Login."); } else { MessageBox.Show("Заполните поле для пользователя системы: Password."); } } }