public static List <PhotoContent> DbContentFromBracketCodes(string toProcess, IProgress <string> progress) { if (string.IsNullOrWhiteSpace(toProcess)) { return(new List <PhotoContent>()); } var guidList = BracketCodeCommon.ContentBracketCodeMatches(toProcess, BracketCodeToken) .Select(x => x.contentGuid).Distinct().ToList(); var returnList = new List <PhotoContent>(); if (!guidList.Any()) { return(returnList); } var context = Db.Context().Result; foreach (var loopGuid in guidList) { var dbContent = context.PhotoContents.FirstOrDefault(x => x.ContentId == loopGuid); if (dbContent == null) { continue; } progress?.Report($"Photo Link Code - Adding DbContent For {dbContent.Title}"); returnList.Add(dbContent); } return(returnList); }
/// <summary> /// Processes {{photo guid;human_identifier}} with a specified function - best use may be for easily building /// library code. /// </summary> /// <param name="toProcess"></param> /// <param name="pageConversion"></param> /// <param name="progress"></param> /// <returns></returns> private static string PhotoCodeProcess(string toProcess, Func <SinglePhotoPage, string> pageConversion, IProgress <string> progress) { if (string.IsNullOrWhiteSpace(toProcess)) { return(string.Empty); } progress?.Report("Searching for Photo Codes"); var resultList = BracketCodeCommon.ContentBracketCodeMatches(toProcess, BracketCodeToken); if (!resultList.Any()) { return(toProcess); } var context = Db.Context().Result; foreach (var loopMatch in resultList) { var dbPhoto = context.PhotoContents.FirstOrDefault(x => x.ContentId == loopMatch.contentGuid); if (dbPhoto == null) { continue; } progress?.Report($"Photo Code for {dbPhoto.Title} processed"); var singlePhotoInfo = new SinglePhotoPage(dbPhoto); toProcess = toProcess.Replace(loopMatch.bracketCodeText, pageConversion(singlePhotoInfo)); } return(toProcess); }
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 CoreLinksDiv(IProgress <string> progress = null) { var db = Db.Context().Result; var items = db.MenuLinks.OrderBy(x => x.MenuOrder).ToList(); if (!items.Any()) { return(HtmlTag.Empty()); } var coreLinksDiv = new DivTag().AddClass("core-links-container"); foreach (var loopItems in items) { var html = ContentProcessing.ProcessContent( BracketCodeCommon.ProcessCodesForSite(loopItems.LinkTag, progress), ContentFormatEnum.MarkdigMarkdown01); var coreLinkContainer = new DivTag().AddClass("core-links-item").Text(html).Encoded(false); coreLinksDiv.Children.Add(coreLinkContainer); } return(coreLinksDiv); }
public static string Process(string toProcess, IProgress <string> progress) { if (string.IsNullOrWhiteSpace(toProcess)) { return(string.Empty); } progress?.Report("Searching for MapComponent 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.MapComponents.FirstOrDefault(x => x.ContentId == loopMatch.contentGuid); if (dbContent == null) { continue; } progress?.Report($"Adding mapComponent {dbContent.Title} from Code"); toProcess = toProcess.Replace(loopMatch.bracketCodeText, MapParts.MapDivAndScript(dbContent)); } return(toProcess); }
public static HtmlTag PostBodyDiv(IBodyContent dbEntry, IProgress <string> progress = null) { if (string.IsNullOrWhiteSpace(dbEntry.BodyContent)) { return(HtmlTag.Empty()); } var bodyContainer = new HtmlTag("div").AddClass("post-body-container"); var bodyText = ContentProcessing.ProcessContent( BracketCodeCommon.ProcessCodesForSite(dbEntry.BodyContent, progress), dbEntry.BodyContentFormat); bodyContainer.Children.Add(new HtmlTag("div").AddClass("post-body-content").Encoded(false).Text(bodyText)); return(bodyContainer); }
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); }
public static HtmlTag UpdateNotesDiv(IUpdateNotes dbEntry) { if (string.IsNullOrWhiteSpace(dbEntry.UpdateNotes)) { return(HtmlTag.Empty()); } var updateNotesDiv = new DivTag().AddClass("update-notes-container"); updateNotesDiv.Children.Add(new DivTag().AddClass("update-notes-title").Text("Updates:")); var updateNotesContentContainer = new DivTag().AddClass("update-notes-content"); var updateNotesHtml = ContentProcessing.ProcessContent( BracketCodeCommon.ProcessCodesForSite(dbEntry.UpdateNotes, null), dbEntry.UpdateNotesFormat); updateNotesContentContainer.Encoded(false).Text(updateNotesHtml); updateNotesDiv.Children.Add(updateNotesContentContainer); return(updateNotesDiv); }
public static string IncludeIfNeeded(string content) { return(BracketCodeCommon.ContainsSpatialBracketCodes(content) ? ScriptsAndLinks() : string.Empty); }