コード例 #1
0
        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);
        }
コード例 #2
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);
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        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);
        }
コード例 #5
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);
        }