예제 #1
0
        public EditMarkdownDocumentCategoriesDialog(Window owner, MarkdownDocumentViewModel doc, MarkdownTree tree)
        {
            InitializeComponent();
            Owner = owner;

            _viewModel = new EditMarkdownDocumentCategoriesViewModel(this, doc, tree);
        }
예제 #2
0
 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();
 }
예제 #3
0
        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);
                        }
                    }
                }
            }
        }