public BookItemWindow(string buttonText = "Add Book >>", string bookName = "", string bookDescription = "", bool isNewItem = true, int bookId = -1)
        {
            InitializeComponent();
            DataContext            = this;
            Sages                  = new ObservableCollection <Sage>();
            SelectedSages          = new ObservableCollection <Sage>();
            BookName               = bookName;
            BookDescription        = bookDescription;
            BookId                 = bookId;
            foundSages.ItemsSource = Sages;
            sagesList.ItemsSource  = SelectedSages;
            ButtonText             = buttonText;
            IsNewItem              = isNewItem;
            TextRange textRange = new TextRange(bookDescriptionField.Document.ContentStart, bookDescriptionField.Document.ContentEnd);

            textRange.Text = BookDescription;
            if (!IsNewItem)
            {
                using (SgDbContext sbc = new SgDbContext())
                {
                    foreach (var sage in sbc.Sages.Where(p => p.Books.Any(b => b.Id == bookId)))
                    {
                        SelectedSages.Add(sage);
                    }
                    sagesList.ItemsSource = SelectedSages;
                    sagesList.Items.Refresh();
                }
            }
        }
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            Sages.Clear();
            foundSages.Items.Refresh();

            using (SgDbContext sbc = new SgDbContext())
            {
                string sName = sageName.Text;
                string sCity = sageCity.Text;

                ICollection <Sage> sages = new List <Sage>();
                if (sName != "" && sCity != "")
                {
                    sages = sbc.Sages.Where(p => p.Name == sName).Where(p => p.City == sCity).ToList();
                }
                else if (sName != "" && sCity == "")
                {
                    sages = sbc.Sages.Where(p => p.Name == sName).ToList();
                }
                else if (sName == "" && sCity != "")
                {
                    sages = sbc.Sages.Where(p => p.City == sCity).ToList();
                }
                else
                {
                    sages = sbc.Sages.Select(p => p).ToList();
                }
                foreach (var sg in sages)
                {
                    Sages.Add(sg);
                }
            }

            foundSages.Items.Refresh();
        }
Esempio n. 3
0
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            if (!sageAge.Text.All(char.IsDigit))
            {
                MessageBox.Show($"Age should be a number. But is: {sageAge.Text}");
            }
            else if (sageName.Text == null || sageCity == null)
            {
                MessageBox.Show("All fields shooould be filled!");
            }
            else
            {
                Sage _sage = new Sage {
                    Name = sageName.Text, City = sageCity.Text, Age = int.Parse(sageAge.Text)
                };
                using (SgDbContext sbc = new SgDbContext())
                {
                    if (sbc.Sages.Where(s => s.Age == _sage.Age && s.Name == _sage.Name && s.City == _sage.City).ToList().Count() != 0)
                    {
                        MessageBox.Show($"Sage {_sage} already exist. Please add new or cancel");
                    }
                    else
                    {
                        if (IsNewItem)
                        {
                            if (sbc.Sages.Any(s => s.Name == _sage.Name && s.City == _sage.City && s.Age == _sage.Age))
                            {
                                MessageBox.Show("Sage already exists.Please edit your form!");
                            }
                            else
                            {
                                sbc.Sages.Add(_sage);
                            }
                        }
                        else
                        {
                            Sage editedSage = sbc.Sages.Where(p => p.Id == SageId).FirstOrDefault();
                            sbc.Sages.Attach(editedSage);
                            editedSage.Name = SageDefaultName;
                            editedSage.City = SageDefaultCity;
                            editedSage.Age  = int.Parse(SageDefaultAge);
                        }

                        sbc.SaveChanges();
                    }

                    Close();
                }
            }
        }
        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            string bookName        = ((TextBox)FindName("bookNameField")).Text;
            string bookDescription = ((RichTextBox)FindName("bookDescriptionField")).Document.Blocks.FirstOrDefault().ToString();

            if (bookName == "")
            {
                MessageBox.Show("Please enter the book name");
            }
            if (sagesList.Items.Count == 0)
            {
                MessageBox.Show("The book has no author. Please add at least one author!");
            }

            using (SgDbContext sbc = new SgDbContext())
            {
                if (IsNewItem)
                {
                    Book book = new Book {
                        Title = bookName, Description = bookDescription, Sages = SelectedSages
                    };
                    if (sbc.Books.Any(b => b.Title == book.Title && b.Description == book.Description && b.Sages == book.Sages))
                    {
                        MessageBox.Show("Book already exists");
                    }
                    else
                    {
                        sbc.Books.Add(book);
                    }
                }
                else
                {
                    Book book = sbc.Books.Where(b => b.Id == BookId).FirstOrDefault();
                    sbc.Books.Attach(book);
                    book.Title       = bookNameField.Text;
                    book.Description = bookDescriptionField.Document.Blocks.FirstOrDefault().ToString();
                    book.Sages       = SelectedSages;
                }
                sbc.SaveChanges();
            }

            DialogResult = true;
            Close();
        }