public EditMarkdownDocumentCategoriesDialog(Window owner, MarkdownDocumentViewModel doc, MarkdownTree tree) { InitializeComponent(); Owner = owner; _viewModel = new EditMarkdownDocumentCategoriesViewModel(this, doc, tree); }
public static void ShowMarkdownDocument(MarkdownDocumentViewModel doc) { if (!_windows.ContainsKey(doc.Model.id)) { _windows[doc.Model.id] = new MarkdownDocumentWindow(); _windows[doc.Model.id]._viewModel = doc; } _windows[doc.Model.id].Show(); _windows[doc.Model.id].Activate(); _windows[doc.Model.id].Focus(); }
private void doMarkdownDocumentSearch(List <SearchResult> results) { _cmdSearchMarkdownDocuments.Parameters["@searchTerm"].Value = _searchTerm; using (SQLiteDataReader reader = _cmdSearchMarkdownDocuments.Command.ExecuteReader()) { while (reader.Read()) { MarkdownDocumentSearchResult result = new MarkdownDocumentSearchResult(reader); MarkdownDocumentViewModel mdvm = _selectedUniverse.MarkdownTree.Items.SingleOrDefault(i => i is MarkdownDocumentViewModel && (i as MarkdownDocumentViewModel).Model.id == result.rowid) as MarkdownDocumentViewModel; if (mdvm == null) { // "Special" documents don't have a viewmodel loaded at all times. MarkdownDocument doc = new MarkdownDocument(_cmdSearchMarkdownDocuments.Connection); doc.id = result.rowid; doc.Load(); mdvm = new MarkdownDocumentViewModel(doc, this.SelectedUniverse); } if (mdvm != null) { // If the document is "special", it is attached to an item such as a ticket, chapter, scene, etc. if (mdvm.Model.IsSpecial) { // Ticket search. TicketViewModel ticketVm = _selectedUniverse.TicketTrackerViewModel.Tickets.SingleOrDefault(i => i.Model.MarkdownDocumentId == mdvm.Model.id); if (ticketVm != null) { result.Owner = ticketVm; } // Category search. CategoryViewModel catVm = _selectedUniverse.Categories.SingleOrDefault(i => i.Model.MarkdownDocumentId == mdvm.Model.id); if (catVm != null) { result.Owner = catVm; } // Story search. StoryViewModel storyVm = _selectedUniverse.Stories.SingleOrDefault(i => i.Model.MarkdownDocumentId == mdvm.Model.id); if (storyVm != null) { result.Owner = storyVm; } // Chapter search. ChapterViewModel chapterVm = _selectedUniverse.Stories.SelectMany(i => i.Chapters).SingleOrDefault(i => i.Model.MarkdownDocumentId == mdvm.Model.id); if (chapterVm != null) { result.Owner = chapterVm; } // Scene search. SceneViewModel sceneVm = _selectedUniverse.Stories.SelectMany(i => i.Chapters).SelectMany(i => i.Scenes).SingleOrDefault(i => i.Model.MarkdownDocumentId == mdvm.Model.id); if (sceneVm != null) { result.Owner = sceneVm; } } else { // Not special. This is a normal note in the universe's tree of markdown documents. result.Owner = mdvm; } if (result.Owner != null) { results.Add(result); } } } } }