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(); }
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(); }