public void TestInitialize() { _definitionProvider = new TestDefinitionProvider(); _dataProvider = new TestDataProvider(); _generator = new FragmentGenerators(_definitionProvider, _dataProvider); _macroVariables = new TestMacroVariables(); }
public void TestInitialize() { _definitionProvider = new TestDefinitionProvider(); _dataProvider = new TestDataProvider(); _generator = new FragmentGenerators(_definitionProvider, _dataProvider); _macroVariables = new TestMacroVariables(); var direction = new Direction(TestSynonyms.GetSynonyms()); _renderer = new Basic10KRenderer(_macroVariables, _definitionProvider.Templates, direction); }
public static string ProcessMacros(IMacroVariables macroVariables, IClauseFragment fragment, string template) { if (string.IsNullOrEmpty(template) || fragment == null) { return(""); } var result = template; var items = Regex.Matches(template, @"\[([^]]*)\]"); foreach (Match item in items) { var itemValue = item.Value.ToUpper(); var macroVariable = macroVariables.Get(itemValue); if (macroVariable != null) { string macroValue = null; if (!string.IsNullOrEmpty(macroVariable.Type)) { if (macroVariable.Type == fragment.GetType().Name) { var fragmentData = fragment.Data; var property = fragmentData.GetType().GetProperty(macroVariable.Value); if (property != null) { macroValue = property.GetValue(fragmentData)?.ToString(); } else { property = fragment.GetType().GetProperty(macroVariable.Value); macroValue = property.GetValue(fragment)?.ToString(); } } } else { macroValue = macroVariable.Value; } if (macroValue != null) { result = result.Replace(item.Value, macroValue); } } } return(result); }
// EZSTOOD - write unit tests for this public TestMacroVariables() { MacroVariables = new MacroVariables(); var macroList = new List <MacroVariable>() { new MacroVariable { Name = "HOMES", Value = " homes" }, new MacroVariable { Name = "METRIC CODE", Value = "Code", Type = "MetricFragment" }, new MacroVariable { Name = "METRIC NAME", Value = "ShortName", Type = "MetricFragment" }, new MacroVariable { Name = "METRIC LONGNAME", Value = "LongName", Type = "MetricFragment" }, new MacroVariable { Name = "ACTUAL VALUE", Value = "CurrentValue", Type = "DataFragment" }, new MacroVariable { Name = "PREVIOUS VALUE", Value = "PreviousValue", Type = "DataFragment" }, new MacroVariable { Name = "PCT", Value = "PercentChange", Type = "DataFragment" }, new MacroVariable { Name = "DATA UNITS", Value = "Units", Type = "DataFragment" }, new MacroVariable { Name = "ACTUAL NAME", Value = "ShortName", Type = "VariableFragment" }, new MacroVariable { Name = "ACTUAL LONGNAME", Value = "LongName", Type = "VariableFragment" }, new MacroVariable { Name = "VAR UNITS", Value = "Units", Type = "VariableFragment" }, new MacroVariable { Name = "DIR", Value = "" } }; MacroVariables.Add(macroList); }
public Basic10KRenderer(IMacroVariables macroVariable, Templates templates, IDirection direction) { _macroVariable = macroVariable; _direction = direction; _templates = templates ?? DefaultTemplates; }