//Search Method
        private void BtnSearch_Click(object sender, EventArgs e)
        {
            CmbCombobox select = CmbGenre.SelectedItem as CmbCombobox;

            if (string.IsNullOrEmpty(TxtBookName.Text) &&
                string.IsNullOrEmpty(TxtAuthor.Text) &&
                CmbGenre.SelectedItem != null)
            {
                MessageBox.Show("Please fill at least one field");
                return;
            }
            var book = _context.Books
                       .Where(b => (TxtBookName.Text != string.Empty ? b.Name.Contains(TxtBookName.Text) : false))


                       .OrderBy(b => b.Name)
                       .ToList();

            DgvAddBooks.Rows.Clear();
            foreach (var item in book)
            {
                DgvAddBooks.Rows.Add(item.Id,
                                     item.Name,
                                     item.Author,
                                     item.Genre.Name,
                                     item.RentalPrice,
                                     item.Count);
            }
            Clear();
        }
        //Create and Read
        private void BtnBookAdd_Click(object sender, EventArgs e)
        {
            CmbCombobox select = CmbGenre.SelectedItem as CmbCombobox;

            if (!string.IsNullOrEmpty(TxtBookName.Text) ||
                !string.IsNullOrEmpty(TxtAuthor.Text) ||
                !string.IsNullOrEmpty(CmbGenre.Text) ||
                !string.IsNullOrEmpty(TxtRentalPrice.Text) ||
                !string.IsNullOrEmpty(TxtCount.Text))
            {
                Book book = new Book//add book to database
                {
                    Name        = TxtBookName.Text,
                    Author      = TxtAuthor.Text,
                    GenreId     = select.Id,
                    RentalPrice = Convert.ToDouble(TxtRentalPrice.Text),
                    Count       = Convert.ToInt32(TxtCount.Text),
                };

                _context.Books.Add(book);
                _context.SaveChanges();
                Clear();
            }
            else
            {
                MessageBox.Show("Add,please");
            }
            FillBooks();
        }
        // Book Create Event//
        private void BtnSave_Click(object sender, EventArgs e)
        {
            //Book Update Event//
            CmbCombobox select = CmbGenre.SelectedItem as CmbCombobox;

            if (_isUpdate)
            {
                _book.Name    = TxtBookName.Text;
                _book.Price   = Convert.ToDecimal(TxtPrice.Text);
                _book.Count   = Convert.ToInt32(TxtCount.Text);
                _book.GenreId = select.Id;
                _bookDal.Update(_book);
                AddBook?.Invoke(_book, new EventArgs());
                MessageBox.Show("Melumat Deisildi");
            }
            else
            {
                if (!this.CheckInput() || CmbGenre.SelectedItem == null)
                {
                    MessageBox.Show("Xanalari doldurun");
                    return;
                }
                Book book = new Book
                {
                    Name    = TxtBookName.Text,
                    Price   = Convert.ToDecimal(TxtPrice.Text),
                    Count   = Convert.ToInt32(TxtCount.Text),
                    GenreId = select.Id
                };
                _bookDal.Create(book);
                MessageBox.Show("Melumat elave edildi");
                AddBook?.Invoke(book, new EventArgs());
            }
            this.Close();
        }
        private void FillDataGenre()
        {
            List <Genre> genres = _context.Genres.ToList();

            foreach (Genre item in genres)
            {
                CmbCombobox combobox = new CmbCombobox
                {
                    Id   = item.Id,
                    Name = item.Name
                };
                CmbGenre.Items.Add(combobox);
            }
        }
        //Combobox Add Genres
        public void FillGenreAdd()
        {
            List <Genre> genres = _genreDal.GetGenreList();

            foreach (Genre item in genres)
            {
                CmbCombobox combobox = new CmbCombobox
                {
                    Id   = item.Id,
                    Name = item.Name
                };
                CmbGenre.Items.Add(combobox);
            }
        }
        //Update Method
        private void BtnUpdate_Click(object sender, EventArgs e)
        {
            CmbCombobox select = CmbGenre.SelectedItem as CmbCombobox;
            Book        book   = _context.Books.Find(_book.Id);

            book.Name        = TxtBookName.Text;
            book.Author      = TxtAuthor.Text;
            book.Count       = Convert.ToInt32(TxtCount.Text);
            book.RentalPrice = Convert.ToDouble(TxtRentalPrice.Text);
            book.GenreId     = select.Id;

            _context.SaveChanges();
            FillBooks();
            Clear();
        }
        private void DgvAddBooks_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            CmbCombobox select = CmbGenre.SelectedItem as CmbCombobox;

            TxtBookName.Text    = _book.Name;
            TxtAuthor.Text      = _book.Author;
            TxtCount.Text       = _book.Count.ToString();
            TxtRentalPrice.Text = _book.RentalPrice.ToString();
            Genre genre = _context.Genres.Find(_book.GenreId);

            CmbGenre.SelectedItem = new CmbCombobox
            {
                Id   = genre.Id,
                Name = genre.Name
            };

            CmbGenre.Text = genre.Name;
        }