private void SearchBookButton_Click(object sender, System.EventArgs e) { searchByNameTextbox.Text = searchByNameTextbox.Text.Trim(); while (searchByNameTextbox.Text.Contains(" ") == true) { searchByNameTextbox.Text = searchByNameTextbox.Text.Replace(" ", " "); } searchByAuthorTextbox.Text = searchByAuthorTextbox.Text.Trim(); while (searchByAuthorTextbox.Text.Contains(" ") == true) { searchByAuthorTextbox.Text = searchByAuthorTextbox.Text.Replace(" ", " "); } foreach (char item in yearFromTextbox.Text) { if (char.IsLetter(item) == true) { yearFromTextbox.Text = string.Empty; break; } } foreach (char item in yearToTextbox.Text) { if (char.IsLetter(item)) { yearToTextbox.Text = string.Empty; break; } } searchByOwnerUsernameTextbox.Text = searchByOwnerUsernameTextbox.Text.Trim(); while (searchByOwnerUsernameTextbox.Text.Contains(" ") == true) { searchByOwnerUsernameTextbox.Text = searchByOwnerUsernameTextbox.Text.Replace(" ", " "); } try { databaseContext = new Models.DatabaseContext(); var data = databaseContext.Books.AsQueryable(); if (string.IsNullOrWhiteSpace(searchByOwnerUsernameTextbox.Text) == false) { data = databaseContext.Books .Where(current => current.OwnerUser.Username.ToLower() .Contains(searchByOwnerUsernameTextbox.Text.ToLower())) .AsQueryable(); } if (string.IsNullOrWhiteSpace(searchByNameTextbox.Text) == false) { data = data.Where(current => current.BookName.ToLower() .Contains(searchByNameTextbox.Text.ToLower())); } if (string.IsNullOrWhiteSpace(yearFromTextbox.Text) == false) { int yearFrom = System.Convert.ToInt32(yearFromTextbox.Text); data = data.Where(current => current.PublishYear >= yearFrom); } if (string.IsNullOrWhiteSpace(yearToTextbox.Text) == false && yearToTextbox.Text != yearFromTextbox.Text) { int yearTo = System.Convert.ToInt32(yearToTextbox.Text); data = data.Where(current => current.PublishYear <= yearTo); } string comboboxGenre = genresComboBox.SelectedItem as string; if (string.IsNullOrEmpty(comboboxGenre) == false) { Models.BookGenres selectedGenre = (Models.BookGenres)System.Enum.Parse(typeof(Models.BookGenres), comboboxGenre); data = data.Where(current => current.Genre == selectedGenre); } string comboboxBookType = bookTypeCombobox.SelectedItem as string; if (string.IsNullOrEmpty(comboboxBookType) == false) { Models.BookType selectedType = (Models.BookType)System.Enum.Parse(typeof(Models.BookType), comboboxBookType); data = data.Where(current => current.BookType == selectedType); } data = data.OrderBy(current => current.BookName); CurrentBooks = data.ToList(); PageIndex = 0; DisplayBooks(CurrentBooks); } catch (System.Exception ex) { System.Windows.Forms.MessageBox.Show($"Unexpected Error:{ex.Message}", caption: "ERROR", buttons: System.Windows.Forms.MessageBoxButtons.OK, icon: System.Windows.Forms.MessageBoxIcon.Error); } finally { if (databaseContext != null) { databaseContext.Dispose(); databaseContext = null; } } }
private void AddBookButton_Click(object sender, System.EventArgs e) { string errorMessage = string.Empty; bookNameTextbox.Text = bookNameTextbox.Text.Trim(); while (bookNameTextbox.Text.Contains(" ")) { bookNameTextbox.Text = bookNameTextbox.Text.Replace(" ", " "); } writerNameTextbox.Text = writerNameTextbox.Text.Trim(); while (writerNameTextbox.Text.Contains(" ")) { bookNameTextbox.Text = bookNameTextbox.Text.Replace(" ", " "); } foreach (char character in yearTextbox.Text) { if (char.IsDigit(character) == false) { yearTextbox.Text = string.Empty; break; } } descriptionTextbox.Text = descriptionTextbox.Text.Trim(); if (string.IsNullOrWhiteSpace(bookNameTextbox.Text) == true) { errorMessage += Resources.AddBookForm.BooknameTextBoxError; errorMessage += System.Environment.NewLine; } if (string.IsNullOrWhiteSpace(bookNameTextbox.Text) == false) { if (bookNameTextbox.Text.Length > 25 || bookNameTextbox.Text.Length < 2) { errorMessage += Resources.AddBookForm.BooknameLengthError; errorMessage += System.Environment.NewLine; } } if (string.IsNullOrWhiteSpace(writerNameTextbox.Text) == false) { if (writerNameTextbox.Text.Length > 20 || writerNameTextbox.Text.Length < 3) { errorMessage += Resources.AddBookForm.WriternameLengthError; errorMessage += System.Environment.NewLine; } } if (string.IsNullOrWhiteSpace(yearTextbox.Text) == false) { int selectedYear = System.Convert.ToInt32(yearTextbox.Text); if (selectedYear > 10000 || selectedYear < 0) { errorMessage += Resources.AddBookForm.YearError; errorMessage += System.Environment.NewLine; } } if (errorMessage != string.Empty) { if (RightToLeft == System.Windows.Forms.RightToLeft.No) { System.Windows.Forms.MessageBox.Show(text: errorMessage, caption: Resources.AddBookForm.MessageboxCaptionError, buttons: System.Windows.Forms.MessageBoxButtons.OK, icon: System.Windows.Forms.MessageBoxIcon.Error, defaultButton: System.Windows.Forms.MessageBoxDefaultButton.Button1); } if (RightToLeft == System.Windows.Forms.RightToLeft.Yes) { System.Windows.Forms.MessageBox.Show(text: errorMessage, caption: Resources.AddBookForm.MessageboxCaptionError, buttons: System.Windows.Forms.MessageBoxButtons.OK, icon: System.Windows.Forms.MessageBoxIcon.Error, defaultButton: System.Windows.Forms.MessageBoxDefaultButton.Button1, options: System.Windows.Forms.MessageBoxOptions.RightAlign | System.Windows.Forms.MessageBoxOptions.RtlReading); } return; } Models.DatabaseContext databaseContext = null; try { databaseContext = new Models.DatabaseContext(); bool bookExists = databaseContext.Books .Where(current => current.BookName.ToLower() == bookNameTextbox.Text.ToLower()) .Any(); if (bookExists == true) { if (RightToLeft == System.Windows.Forms.RightToLeft.No) { System.Windows.Forms.MessageBox.Show(text: Resources.AddBookForm.BookexistMessage, caption: Resources.AddBookForm.MessageboxCaptionError, buttons: System.Windows.Forms.MessageBoxButtons.OK, icon: System.Windows.Forms.MessageBoxIcon.Error, defaultButton: System.Windows.Forms.MessageBoxDefaultButton.Button1); } if (RightToLeft == System.Windows.Forms.RightToLeft.Yes) { System.Windows.Forms.MessageBox.Show(text: Resources.AddBookForm.BookexistMessage, caption: Resources.AddBookForm.MessageboxCaptionError, buttons: System.Windows.Forms.MessageBoxButtons.OK, icon: System.Windows.Forms.MessageBoxIcon.Error, defaultButton: System.Windows.Forms.MessageBoxDefaultButton.Button1, options: System.Windows.Forms.MessageBoxOptions.RightAlign | System.Windows.Forms.MessageBoxOptions.RtlReading); } return; } System.Windows.Forms.DialogResult result = System.Windows.Forms.DialogResult.None; if (RightToLeft == System.Windows.Forms.RightToLeft.No) { result = System.Windows.Forms.MessageBox.Show(text: Resources.AddBookForm.BookAddMessage, caption: Resources.AddBookForm.MessageBoxCaptionQuestion, buttons: System.Windows.Forms.MessageBoxButtons.YesNo, icon: System.Windows.Forms.MessageBoxIcon.Question, defaultButton: System.Windows.Forms.MessageBoxDefaultButton.Button2); } if (RightToLeft == System.Windows.Forms.RightToLeft.Yes) { result = System.Windows.Forms.MessageBox.Show(text: Resources.AddBookForm.BookAddMessage, caption: Resources.AddBookForm.MessageBoxCaptionQuestion, buttons: System.Windows.Forms.MessageBoxButtons.YesNo, icon: System.Windows.Forms.MessageBoxIcon.Question, defaultButton: System.Windows.Forms.MessageBoxDefaultButton.Button2, options: System.Windows.Forms.MessageBoxOptions.RightAlign | System.Windows.Forms.MessageBoxOptions.RtlReading); } if (result == System.Windows.Forms.DialogResult.No) { return; } string selectedGenreString = genresCombobox.SelectedItem as string; Models.BookGenres selectedGenre = (Models.BookGenres)System.Enum.Parse(typeof(Models.BookGenres), selectedGenreString); string selectedTypeString = bookTypeCombobox.SelectedItem as string; Models.BookType selectedBookType = (Models.BookType)System.Enum.Parse(typeof(Models.BookType), selectedTypeString); string selectedUsername = ownerCombobox.SelectedItem as string; Models.Book newBook = new Models.Book() { BookName = bookNameTextbox.Text, Genre = selectedGenre, BookType = selectedBookType, }; if (string.IsNullOrWhiteSpace(writerNameTextbox.Text) == false) { newBook.WriterName = writerNameTextbox.Text; } if (string.IsNullOrWhiteSpace(yearTextbox.Text) == false) { newBook.PublishYear = System.Convert.ToInt32(yearTextbox.Text); } Models.User existingUser = databaseContext.Users .Where(current => current.Username == selectedUsername) .FirstOrDefault(); if (existingUser != null) { newBook.OwnerUser = existingUser; newBook.OwnerUserId = existingUser.Id; newBook.OwnerUser.Books.Add(newBook); } if (string.IsNullOrWhiteSpace(descriptionTextbox.Text) == false) { newBook.Description = descriptionTextbox.Text; } databaseContext.Books.Add(newBook); databaseContext.SaveChanges(); if (RightToLeft == System.Windows.Forms.RightToLeft.No) { System.Windows.Forms.MessageBox.Show(text: Resources.AddBookForm.BookAddedMessage, caption: Resources.AddBookForm.MessageBoxCaptionMessage, buttons: System.Windows.Forms.MessageBoxButtons.OK, icon: System.Windows.Forms.MessageBoxIcon.Information, defaultButton: System.Windows.Forms.MessageBoxDefaultButton.Button1); } if (RightToLeft == System.Windows.Forms.RightToLeft.Yes) { System.Windows.Forms.MessageBox.Show(text: Resources.AddBookForm.BookAddedMessage, caption: Resources.AddBookForm.MessageBoxCaptionMessage, buttons: System.Windows.Forms.MessageBoxButtons.OK, icon: System.Windows.Forms.MessageBoxIcon.Information, defaultButton: System.Windows.Forms.MessageBoxDefaultButton.Button1, options: System.Windows.Forms.MessageBoxOptions.RightAlign | System.Windows.Forms.MessageBoxOptions.RtlReading); } } catch (System.Exception ex) { System.Windows.Forms.MessageBox.Show($"Unexpected Error:{ex.Message}", caption: "ERROR", buttons: System.Windows.Forms.MessageBoxButtons.OK, icon: System.Windows.Forms.MessageBoxIcon.Error); } finally { if (databaseContext != null) { databaseContext.Dispose(); } } }