public void ShouldReturnTwoContextesWithNoChilds()
        {
            DatabaseNameDatabaseContextHandler databaseNameDatabaseContextHandler = new DatabaseNameDatabaseContextHandler(templateHandlerNew);
            TableNameTableContextHandler       tableNameTableContextHandler       = new TableNameTableContextHandler(templateHandlerNew);
            var results = _tested.ExtractAllContextUntilDepth($"{databaseNameDatabaseContextHandler.Signature}-{tableNameTableContextHandler.Signature}", 0);

            Assert.IsNotNull(results);
            var resultAsList = results.ToList();

            CollectionAssert.IsNotEmpty(resultAsList);
            Assert.AreEqual(2, resultAsList.Count);
            var first = resultAsList[0];

            Assert.IsNotNull(first.current);
            Assert.IsNotNull(first.childs);
            CollectionAssert.IsEmpty(first.childs);
            Assert.AreEqual(first.current.StartContextDelimiter, databaseNameDatabaseContextHandler.StartContext);
            Assert.AreEqual(first.current.InnerContent, String.Empty);
            Assert.AreEqual(first.current.EndContextDelimiter, databaseNameDatabaseContextHandler.EndContext);
            var second = resultAsList[1];

            Assert.IsNotNull(second.current);
            Assert.IsNotNull(second.childs);
            CollectionAssert.IsEmpty(second.childs);
            Assert.AreEqual(second.current.StartContextDelimiter, tableNameTableContextHandler.StartContext);
            Assert.AreEqual(second.current.InnerContent, String.Empty);
            Assert.AreEqual(second.current.EndContextDelimiter, tableNameTableContextHandler.EndContext);
        }
Exemple #2
0
        private void PreProcess(ITemplateModel templateModel, IDictionary <string, AbstactPreprocessorContextHandler> handlersByStartContext)
        {
            var contextes = contextVisitor.ExtractAllContextUntilDepth(templateModel.TemplatedFileContent, 1);
            var contextesAndProcessesResult = contextes.Select(context =>
                                                               (contextAsString: ToContextValue(context), processedContextContent: PreProcess(ToContextValue(context), context, handlersByStartContext), context)).ToList();
            int lenghtSumDifference = 0;
            var result = templateModel.TemplatedFileContent;

            foreach (var current in contextesAndProcessesResult)
            {
                result =
                    result.Substring(0, current.context.current.StartIndex + lenghtSumDifference) +
                    current.processedContextContent +
                    result.Substring(current.context.current.StartIndex + current.contextAsString.Length + lenghtSumDifference, result.Length
                                     - (current.context.current.StartIndex + current.contextAsString.Length + lenghtSumDifference));
                lenghtSumDifference = lenghtSumDifference + (current.processedContextContent.Length - current.contextAsString.Length);
            }
            templateModel.TemplatedFileContent = result;
        }
Exemple #3
0
        public string HandleTemplate(string templateString, IDatabaseContext databaseContext)
        {
            if (!templateValidator.TemplateStringValidation(templateString))
            {
                return(templateString);
            }

            var contextes          = contextVisitor.ExtractAllContextUntilDepth(templateString, 0);
            var qualifiedContextes = toQualifiedTemplateContextConverter.ToQualifiedTemplateContextes(contextes);
            var result             = templateString;
            var charDiffSum        = 0;

            foreach (var context in qualifiedContextes)
            {
                var contextContent           = context.current.Content;
                var processorDatabaseContext = databaseContext;
                var contextContentProcessed  = templateContextProcessor.ProcessTemplateContextComposite(context, processorDatabaseContext);
                result      = $"{result.Substring(0, context.current.StartIndex + charDiffSum)}{contextContentProcessed}{result.Substring(context.current.StartIndex + contextContent.Length + charDiffSum)}";
                charDiffSum = charDiffSum + contextContentProcessed.Length - contextContent.Length;
            }
            return(result);
        }