예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #4
0
        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);
        }