Пример #1
0
        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;
                }
            }
        }
Пример #2
0
        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();
                }
            }
        }