/// <summary>
        ///     Processes {{image 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 Process(string toProcess, Func <SingleImagePage, string> pageConversion,
                                      IProgress <string> progress)
        {
            if (string.IsNullOrWhiteSpace(toProcess))
            {
                return(string.Empty);
            }

            progress?.Report("Searching for Image Codes");

            var resultList = BracketCodeCommon.ContentBracketCodeMatches(toProcess, BracketCodeToken);

            if (!resultList.Any())
            {
                return(toProcess);
            }

            var context = Db.Context().Result;

            foreach (var loopMatch in resultList)
            {
                var dbImage = context.ImageContents.FirstOrDefault(x => x.ContentId == loopMatch.contentGuid);
                if (dbImage == null)
                {
                    continue;
                }

                progress?.Report($"Image Code for {dbImage.Title} processed");
                var singleImageInfo = new SingleImagePage(dbImage);

                toProcess = toProcess.Replace(loopMatch.bracketCodeText, pageConversion(singleImageInfo));
            }

            return(toProcess);
        }
Example #2
0
        public static void GenerateHtml(ImageContent toGenerate, DateTime?generationVersion,
                                        IProgress <string> progress)
        {
            progress?.Report($"Image Content - Generate HTML for {toGenerate.Title}");

            var htmlContext = new SingleImagePage(toGenerate)
            {
                GenerationVersion = generationVersion
            };

            htmlContext.WriteLocalHtml();
        }