public static List<Page> Search(DirectoryInfo repositoryRoot, string filter) { var result = new List<Page>(); var keywords = filter.Split(' '); foreach (var fileInfo in repositoryRoot.GetFiles("*.wiki")) { var page = new Page(fileInfo); bool matches = true; foreach (var keyword in keywords) { if (!page.Matches(keyword)) { matches = false; break; } } if (matches) result.Add(page); } return result; }
private void LoadDocument(Page page) { loading = true; SaveDocument(); ActivePage = page; editor.Text = ActivePage.Text; searchText.Clear(); editor.Focus(); loading = false; Text = ActivePage == null ? string.Empty : string.Format("{0} - Merki", ActivePage["Title"]); }
public MainForm(Repository repository) { Repository = repository; InitializeComponent(); var username = System.Environment.UserName; var homePage = new Page( Repository[username + ".wiki"] ); if (homePage.IsNew) homePage["Title"] = username + "'s Home Page"; LoadDocument( homePage ); SearchFilterChanged(); timer.AutoReset = false; timer.Elapsed += timer_Elapsed; }
private void newPageMenuItem_Click(object sender, EventArgs e) { var newPageDialog = new NewPageForm(); var result = newPageDialog.ShowDialog(this); if (result == DialogResult.OK) { var name = Guid.NewGuid() + ".wiki"; var page = new Page( Repository[name] ); page["Title"] = newPageDialog.PageTitle; LoadDocument(page); } }
private void UpdatePreview(Page page) { if (page != null) { var wikiText = page.Text; var renderedText = wikiRenderer.Render(wikiText); previewBrowser.DocumentText = renderedText; } else { previewBrowser.DocumentText = string.Empty; } }