public List <string> GenerateVarchar() { string[] separationPatterns = { "$" }; // escaping pattern = pattern.Replace("\\$", "1wf#F1efadF^G21"); // Split the pattern string[] split = pattern.Split(separationPatterns, StringSplitOptions.None); List <IKeywordGenerator> generators = new List <IKeywordGenerator>(); // Make generator for each word for (int i = 1; i < split.Length; i += 2) { generators.Add(KeywordGeneratorFactory.getGenerator(split[i], ctx, Column)); } List <string> resultValues = new List <string>(); for (int h = 0; h < NumberOfRowsToGenerate; h++) { string line = ""; for (int i = 0; i < split.Length; i++) { if (i % 2 == 0) { line += split[i]; } else { line += generators[i / 2].generateWord(); } } // return escaped line = line.Replace("1wf#F1efadF^G21", "$"); resultValues.Add($"'{line}'"); } return(resultValues); }
public void MergeDocText_ListWithCheckboxes() { var writer = new DocumentTemplateWriter(); writer.InsertMarkdown(@" | Item | | -------------------------------------------------------------- | | {{ each Items }}{{ checkbox InStock }} {{ Name }}{{ end each }} | "); var data = new { Items = new[] { new {Name = "Milk", InStock = true }, new {Name = "Eggs", InStock = true }, new {Name = "Artisan Bread", InStock = false } }, }; var generatorFactory = new KeywordGeneratorFactory<IGenerator<Document, Node, Type, object, string>>(); generatorFactory.Generators.Add("checkbox", new CheckBoxSymbolGenerator<Type, object, string>()); writer.Document.Merge(data, generatorFactory: generatorFactory); AssertText(writer.Document, @" Item þ Milk þ Eggs ¨ Artisan Bread "); Assert.AreEqual(4, writer.Document.SelectNodes("//Row").Count, "The row should be repeated for each item."); Assert.AreEqual(4, writer.Document.SelectNodes("//Cell").Count, "The cell should be repeated in each row."); }