public static string Process(string toProcess, IProgress <string> progress) { if (string.IsNullOrWhiteSpace(toProcess)) { return(string.Empty); } var resultList = BracketCodeCommon.ContentBracketCodeMatches(toProcess, BracketCodeToken); var context = Db.Context().Result; foreach (var loopMatch in resultList) { var dbContent = context.FileContents.FirstOrDefault(x => x.ContentId == loopMatch.contentGuid); if (dbContent == null) { continue; } progress?.Report($"Adding file download link {dbContent.Title} from Code"); var settings = UserSettingsSingleton.CurrentSettings(); var linkTag = new LinkTag( string.IsNullOrWhiteSpace(loopMatch.displayText) ? dbContent.Title : loopMatch.displayText.Trim(), dbContent.PublicDownloadLink ? settings.FileDownloadUrl(dbContent) : settings.FilePageUrl(dbContent), "file-download-link"); toProcess = toProcess.Replace(loopMatch.bracketCodeText, linkTag.ToString()); } return(toProcess); }
public static HtmlTag TagListTextLinkList(List <string> tags) { tags ??= new List <string>(); tags = tags.Where(x => !string.IsNullOrWhiteSpace(x)).Select(x => x.Trim()).ToList(); if (!tags.Any()) { return(HtmlTag.Empty()); } var tagsContainer = new HtmlTag("p"); var innerContent = new List <string>(); foreach (var loopTag in tags) { var tagLink = new LinkTag(loopTag.Replace("-", " "), UserSettingsSingleton.CurrentSettings().TagPageUrl(loopTag)) .AddClass("tag-detail-link"); innerContent.Add(tagLink.ToString()); } tagsContainer.Text($"Tags: {string.Join(", ", innerContent)}").Encoded(false); return(tagsContainer); }
public static string SpecialPagesCodeProcess(string toProcess, IProgress <string> progress) { if (string.IsNullOrWhiteSpace(toProcess)) { return(string.Empty); } progress?.Report("Searching for Special Page Codes"); var specialPageLookup = new List <(string bracketCode, string defaultDisplayString, string url)> { ("index", "Main", $"https:{UserSettingsSingleton.CurrentSettings().IndexPageUrl()}"), ("indexrss", "Main Page RSS Feed", $"https:{UserSettingsSingleton.CurrentSettings().RssIndexFeedUrl()}"), ("filerss", "Files RSS Feed", $"https:{UserSettingsSingleton.CurrentSettings().FileRssUrl()}"), ("imagerss", "Images RSS Feed", $"https:{UserSettingsSingleton.CurrentSettings().ImageRssUrl()}"), ("linkrss", "Links RSS Feed", $"https:{UserSettingsSingleton.CurrentSettings().LinkRssUrl()}"), ("noterss", "Notes RSS Feed", $"https:{UserSettingsSingleton.CurrentSettings().NoteRssUrl()}"), ("photorss", "Photo Gallery RSS Feed", $"https:{UserSettingsSingleton.CurrentSettings().PhotoRssUrl()}"), ("photogallerypage", "Photos", $"https:{UserSettingsSingleton.CurrentSettings().CameraRollPhotoGalleryUrl()}"), ("searchpage", "Search", $"https:{UserSettingsSingleton.CurrentSettings().AllContentListUrl()}"), ("tagspage", "Tags", $"https:{UserSettingsSingleton.CurrentSettings().AllTagsListUrl()}"), ("linklistpage", "Links", $"https:{UserSettingsSingleton.CurrentSettings().LinkListUrl()}") }; foreach (var loopLookups in specialPageLookup) { var matches = BracketCodeCommon.SpecialPageBracketCodeMatches(toProcess, loopLookups.bracketCode); foreach (var loopMatch in matches) { progress?.Report($"Adding Special Page {loopLookups.bracketCode} from Code"); var linkTag = new LinkTag( string.IsNullOrWhiteSpace(loopMatch.displayText) ? loopLookups.defaultDisplayString : loopMatch.displayText.Trim(), loopLookups.url, "special-page-link"); toProcess = toProcess.Replace(loopMatch.bracketCodeText, linkTag.ToString()); } } return(toProcess); }
public static string Process(string toProcess, IProgress <string> progress) { if (string.IsNullOrWhiteSpace(toProcess)) { return(string.Empty); } progress?.Report("Searching for GeoJson Link Codes..."); var resultList = BracketCodeCommon.ContentBracketCodeMatches(toProcess, BracketCodeToken); if (!resultList.Any()) { return(toProcess); } var context = Db.Context().Result; foreach (var loopMatch in resultList) { var dbContent = context.GeoJsonContents.FirstOrDefault(x => x.ContentId == loopMatch.contentGuid); if (dbContent == null) { continue; } progress?.Report($"Adding GeoJson Link {dbContent.Title} from Code"); var linkTag = new LinkTag( string.IsNullOrWhiteSpace(loopMatch.displayText) ? dbContent.Title : loopMatch.displayText.Trim(), UserSettingsSingleton.CurrentSettings().GeoJsonPageUrl(dbContent), "geojson-page-link"); toProcess = toProcess.Replace(loopMatch.bracketCodeText, linkTag.ToString()); } return(toProcess); }