public IssuingBooksForm(Читатели reader) { InitializeComponent(); DataContext = reader; IssuedBooksDataGrid.ItemsSource = reader.Выданные_книги; //TODO: Добавить редактирование выданных книг(добавление даты возврата). Понять как это всё вообще сохранить. }
public IssuingBooksViewModel(Читатели reader) { _reader = reader; IssueBook = new RelayCommand( (param) => { //if(App.MOYABAZA.Читатели.FirstOrDefault(r => r == _reader).Выданные_книги.FirstOrDefault(b => b.Инвентарный_номер == _selectedBook.Инвентарный_номер).Дата_выдачи > _selectedBook.Дата_возврата) //{ // MessageBox.Show($"Дата возврата не может быть меньше даты выдачи!!!!!!!! \n({_selectedBook.Экземпляры_книги.Книги.Название})"); //} //else //{ App.MOYABAZA.SaveChanges(); //} CollectionViewSource.GetDefaultView(_reader.Выданные_книги).Refresh(); }, (param) => /*App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.E == 1) != 0 &&*/ param != null); }
public ReadersRegViewModel(MOYABAZAEntities model, Читатели reader) { //App.MOYABAZA.Улицы.Load(); _reader = reader; Streets = CollectionViewSource.GetDefaultView(App.MOYABAZA.Улицы.ToArray()); if (reader.Номер_читательского_билета == null) { Title = "Регистрация читателя"; ButtonText = "Зарегистрировать"; RegistrationTime = DateTime.Now; } else { Title = "Изменение читателя"; ButtonText = "Изменить"; } AddCommand = new RelayCommand( (param) => { }, (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.AuthorThesaurusName && uo.W == 1) != 0); Streets.Filter = FilterFunction; }
public IssuingBooksReaderViewModel(Читатели reader) { MOYABAZAEntities model = App.MOYABAZA; model.Экземпляры_книги.Load(); _reader = reader; GiveBook = new RelayCommand( (param) => { try { foreach (var book in GiveOutBooks) { book.Дата_выдачи = DateTime.Now; _reader.Выданные_книги.Add(book); } App.MOYABAZA.SaveChanges(); MessageBox.Show("Книги выданы!"); GiveOutBooks.Clear(); } catch (Exception e) { MessageBox.Show("Произошла ошибка!\n" + e.Message); } }, (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.E == 1) != 0); AddBook = new RelayCommand( (param) => { //App.MOYABAZA.SaveChanges(); int inventaryNumber = int.Parse(InventaryNumber); var bookCopy = model.Экземпляры_книги.FirstOrDefault(x => x.Инвентарный_номер == inventaryNumber); var bookToGive = new Выданные_книги(); //bookToGive.Инвентарный_номер = bookCopy.Инвентарный_номер; if (bookCopy == null) { MessageBox.Show("Инвентарный номер не найден!", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error); } else if (GiveOutBooks.FirstOrDefault(x => x.Экземпляры_книги.Инвентарный_номер == bookCopy.Инвентарный_номер) != null) { MessageBox.Show("Данный экземпляр книги уже добавлен!"); } else { bookToGive.Экземпляры_книги = bookCopy; bookToGive.Читатели = _reader; GiveOutBooks.Add(bookToGive); } }, (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.E == 1) != 0); DeleteBook = new RelayCommand( (param) => { GiveOutBooks.Remove(param as Выданные_книги); }, (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.E == 1) != 0 && param != null); }
public ReadersViewModel() { MOYABAZAEntities model = App.MOYABAZA; model.Читатели.Load(); Readers = CollectionViewSource.GetDefaultView(model.Читатели.Local); AddCommand = new RelayCommand( (param) => { Читатели reader = new Читатели(); ReadersReg readersReg = new ReadersReg(model, reader); readersReg.ShowDialog(); if (readersReg.DialogResult == true) { model.Читатели.Local.Add(reader); try { model.SaveChanges(); } catch (DbUpdateException e) { model.Читатели.Local.Remove(reader); MessageBox.Show($"Такой reader уже существует! \n {e.Message}"); } Readers.Refresh(); } }, (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.W == 1) != 0); ChangeCommand = new RelayCommand( (param) => { ReadersReg readersReg = new ReadersReg(model, _selectedReader); readersReg.ShowDialog(); if (readersReg.DialogResult == true) { try { model.SaveChanges(); } catch (DbUpdateException e) { model.Entry(_selectedReader).State = EntityState.Unchanged; MessageBox.Show($"Такой reader уже существует! \n {e.Message}"); } Readers.Refresh(); } else { model.Entry(_selectedReader).State = EntityState.Unchanged; } }, (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.E == 1) != 0 && param != null); DeleteCommand = new RelayCommand( (param) => { if (MessageBox.Show("Уверен?", "Назад дороги не будет", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.Yes) { try { if (_selectedReader.Выданные_книги.Count != 0) { throw new DbUpdateException("У читателя есть выданные книги!!!!"); } model.Читатели.Remove(_selectedReader); model.SaveChanges(); } catch (DbUpdateException ex) { MessageBox.Show($"Произошла ошибка при удалении данных: {Environment.CommandLine}{ex.Message}", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error); } } }, (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.D == 1) != 0 && param != null); ReturnBookCommand = new RelayCommand( (param) => { IssuingBooksFormMVVM issuingBooksForm = new IssuingBooksFormMVVM(SelectedReader); issuingBooksForm.ShowDialog(); }, (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.E == 1) != 0 && param != null); // Возможно нужно добавить ещё уровень доступа IssueBookCommand = new RelayCommand( (param) => { IssuingBooksReader issuingBooksReader = new IssuingBooksReader(SelectedReader); issuingBooksReader.ShowDialog(); }, (param) => App.ActiveUser.Пользователи_Объекты.Count(uo => uo.Объекты.SName == Constants.ReadersName && uo.E == 1) != 0 && param != null); // Возможно нужно добавить ещё уровень доступа Readers.Filter = FilterFunction; }
public IssuingBooksReader(Читатели reader) { InitializeComponent(); DataContext = new IssuingBooksReaderViewModel(reader); }
public ReadersReg(MOYABAZAEntities model, Читатели reader) { InitializeComponent(); RegDate.SelectedDate = DateTime.Now; DataContext = new ReadersRegViewModel(model, reader); }