public void OnRemoveBooks() { List <BookVM> books = bookForm.GetBooks(BookRelation.CreateAbstract()); abstractForm.Books.Clear(); abstractForm.Books.AddRange(books); foreach (ConceptVM concept in AllConcepts) { books = bookForm.GetBooks(BookRelation.CreateConcept(concept.Id)); concept.Books.Clear(); concept.Books.AddRange(books); } foreach (QuestionVM question in AllQuestions) { books = bookForm.GetBooks(BookRelation.CreateQuestion(question.Id)); question.Response.Books.Clear(); question.Response.Books.AddRange(books); } foreach (VariableVM variable in Variables) { books = bookForm.GetBooks(BookRelation.CreateVariable(variable.Id)); variable.Response.Books.Clear(); variable.Response.Books.AddRange(books); } }
private BookRelationVM FindExistRelation(BookRelation relationModel) { foreach (BookRelationVM relation in bookRelations) { BookRelation thisRelationModel = relation.BookRelation; if (thisRelationModel.BookRelationType == relationModel.BookRelationType && thisRelationModel.MetadataId == relationModel.MetadataId) { return(relation); } } return(null); }
public List <BookVM> GetBooks(BookRelation relation) { List <BookVM> resultBooks = new List <BookVM>(); foreach (BookVM book in books) { if (book.ContainsRelation(relation)) { resultBooks.Add(book); } } return(resultBooks); }
public void Init(BookRelation fromRelation) { foreach (BookRelation relationModel in Book.BookRelations) { BookRelationVM relation = CreateRelation(relationModel); bookRelations.Add(relation); } if (fromRelation != null && FindExistRelation(fromRelation) == null) { Book.BookRelations.Add(fromRelation); bookRelations.Add(CreateRelation(fromRelation)); } modelSyncher = new ModelSyncher <BookRelationVM, BookRelation>(this, bookRelations, Book.BookRelations); }
private void RemoveBookRelationOfMetaData(string metaDataId) { foreach (BookVM book in books) { for (int i = book.Book.BookRelations.Count - 1; i >= 0; i--) { BookRelation relation = book.Book.BookRelations[i]; if (relation.MetadataId == metaDataId) { book.Book.BookRelations.RemoveAt(i); } } } }
public BookVM AddBookExternal(BookRelation relation) { BookVM newBook = AddOrEditBook(null, relation); if (newBook != null) { using (UndoTransaction tx = new UndoTransaction(UndoManager)) { books.Add(newBook); StudyUnit.OnRemoveBooks(); tx.Commit(); } } return(newBook); }
private BookRelationVM CreateRelation(BookRelation relationModel) { ObservableCollection <ITitleProvider> objects = StudyUnit.RelatedMetaData(relationModel.BookRelationType); string typeName = BookRelationItem.GetLabel(relationModel.BookRelationType); ITitleProvider obj = SelectMetaDataWindowVM.Find(objects, relationModel.MetadataId); string metaDataName = null; if (obj != null) { metaDataName = obj.Title; } BookRelationVM relation = new BookRelationVM(relationModel) { Parent = this, TypeName = typeName, MetaDataName = metaDataName }; return(relation); }
public BookVM SelectBookExternal(BookRelation relation) { SelectObjectWindowVM <BookVM> vm = new SelectObjectWindowVM <BookVM>(books); SelectObjectWindow window = new SelectObjectWindow(vm); BookVM book = SelectObjectWindow.Select(Resources.SelectBook, vm) as BookVM; //Select if (book != null) { using (UndoTransaction tx = new UndoTransaction(UndoManager)) { if (book.Book.FindRelation(relation) == null) { //Need not be generated here since ViewModel Since is re-generated every time EditBookWindow is displayed. book.Book.BookRelations.Add(relation); } StudyUnit.OnRemoveBooks(); tx.Commit(); } } return(book); }
private BookRelationVM SelectRelation(BookRelation selectedRelationModel) { BookRelationType type = BookRelationType.Abstract; string metaDataId = null; if (selectedRelationModel != null) { type = selectedRelationModel.BookRelationType; metaDataId = selectedRelationModel.MetadataId; } SelectMetaDataWindowVM vm = new SelectMetaDataWindowVM(type, metaDataId) { Parent = this }; vm.Init(); SelectMetaDataWindow window = new SelectMetaDataWindow(vm); window.Owner = Window; BookRelationVM relation = null; if (window.ShowDialog() == true) { BookRelation relationModel = new BookRelation(); relationModel.BookRelationType = vm.BookRelationType; ITitleProvider selectedObject = vm.SelectedObject as ITitleProvider; if (selectedObject != null) { relationModel.MetadataId = selectedObject.Id; } relation = FindExistRelation(relationModel); if (relation == null) { relation = CreateRelation(relationModel); } } return(relation); }
private BookVM AddOrEditBook(Book book, BookRelation relation) { EditBookWindowVM vm = new EditBookWindowVM(book) { Parent = this }; vm.Init(relation); EditBookWindow window = new EditBookWindow(vm); window.Owner = Application.Current.MainWindow; BookVM newBook = null; if (window.ShowDialog() == true) { newBook = new BookVM(vm.Book) { Parent = this }; } window.Content = null; return(newBook); }
private BookRelation FromRelation() { return(BookRelation.CreateAbstract()); }
private BookRelation FromRelation() { return(BookRelation.CreateConcept(Id)); }
private BookRelation FromRelation() { return(IsQuestionDesignMode ? BookRelation.CreateQuestion(ParentId) : BookRelation.CreateVariable(ParentId)); }
public BookRelationVM(BookRelation bookRelation) { this.bookRelation = bookRelation; }
public BookVM AddBook(BookRelation relation) { return(bookForm.AddBookExternal(relation)); }
public BookVM SelectBook(BookRelation bookRelation) { return(bookForm.SelectBookExternal(bookRelation)); }
public bool ContainsRelation(BookRelation relation) { return(Book.ContainsBookRelation(relation)); }