private string GetBindingsCode(BindingClassInput bindingClassInput, InputProjectDriver inputProjectDriver) { StringBuilder result = new StringBuilder(); int counter = 0; foreach (var stepBindingInput in bindingClassInput.StepBindings) { switch (inputProjectDriver.Language.ToLower()) { case "c#": result.AppendFormat(@"[{2}(@""{3}"")]public void sb{0}({4} {5}) {{ {1} }}", ++counter, stepBindingInput.Code, stepBindingInput.ScenarioBlock, stepBindingInput.Regex, stepBindingInput.ParameterType, stepBindingInput.ParameterName); break; case "vb.net": if (String.IsNullOrEmpty(stepBindingInput.ParameterType)) { result.AppendFormat(@"<[{2}](""{3}"")> Public Sub sb{0}() {1} End Sub", ++counter, stepBindingInput.Code, stepBindingInput.ScenarioBlock, stepBindingInput.Regex); } else { result.AppendFormat(@"<[{2}](""{3}"")> Public Sub sb{0}({4} as {5}) {1} End Sub", ++counter, stepBindingInput.Code, stepBindingInput.ScenarioBlock, stepBindingInput.Regex, stepBindingInput.ParameterName, stepBindingInput.ParameterType); } break; } result.AppendLine(); } foreach (var otherBinding in bindingClassInput.OtherBindings) { result.AppendLine(otherBinding); } return(result.ToString()); }
private void AddBindingClass(InputProjectDriver inputProjectDriver, Project project, BindingClassInput bindingClassInput) { if (bindingClassInput.RawClass != null) { SaveFileFromTemplate(inputProjectDriver.CompilationFolder, "BindingClass.cs", bindingClassInput.FileName, new Dictionary<string, string> { { "AdditionalUsings", "" }, { "BindingClass", bindingClassInput.RawClass }, }); } else { SaveFileFromTemplate(inputProjectDriver.CompilationFolder, "Bindings.cs", bindingClassInput.FileName, new Dictionary<string, string> { { "ClassName", bindingClassInput.Name }, { "Bindings", GetBindingsCode(bindingClassInput) }, }); } project.AddItem("Compile", bindingClassInput.ProjectRelativePath); }
private string GetBindingsCode(BindingClassInput bindingClassInput) { StringBuilder result = new StringBuilder(); int counter = 0; foreach (var stepBindingInput in bindingClassInput.StepBindings) { result.AppendFormat(@"[{2}(@""{3}"")]public void sb{0}({4}) {{ {1} }}", ++counter, stepBindingInput.Code, stepBindingInput.ScenarioBlock, stepBindingInput.Regex, stepBindingInput.Parameters); result.AppendLine(); } foreach (var otherBinding in bindingClassInput.OtherBindings) { result.AppendLine(otherBinding); } return(result.ToString()); }
protected override string GetBindingsCode(BindingClassInput bindingClassInput) { var result = new StringBuilder(); var counter = 0; foreach (var stepBindingInput in bindingClassInput.StepBindings) { result.AppendFormat(@"<[{2}](""{3}"")> Public Sub sb{0}() {1} End Sub", ++counter, stepBindingInput.VBNetCode, stepBindingInput.ScenarioBlock, stepBindingInput.Regex); result.AppendLine(); } foreach (var otherBinding in bindingClassInput.OtherBindings) { result.AppendLine(otherBinding); } return(result.ToString()); }
private void AddBindingClass(InputProjectDriver inputProjectDriver, Project project, BindingClassInput bindingClassInput) { if (bindingClassInput.RawClass != null && bindingClassInput.RawClass.Contains("[assembly:")) { string outputPath = Path.Combine(inputProjectDriver.CompilationFolder, bindingClassInput.ProjectRelativePath); File.WriteAllText(outputPath, bindingClassInput.RawClass, Encoding.UTF8); } else if (bindingClassInput.RawClass != null) { SaveFileFromTemplate(inputProjectDriver.CompilationFolder, "BindingClass." + inputProjectDriver.CodeFileExtension, bindingClassInput.FileName, new Dictionary <string, string> { { "AdditionalUsings", "" }, { "BindingClass", bindingClassInput.RawClass }, }); } else { SaveFileFromTemplate(inputProjectDriver.CompilationFolder, "Bindings." + inputProjectDriver.CodeFileExtension, bindingClassInput.FileName, new Dictionary <string, string> { { "ClassName", bindingClassInput.Name }, { "Bindings", GetBindingsCode(bindingClassInput) }, }); } project.AddItem("Compile", bindingClassInput.ProjectRelativePath); }
private string GetBindingsCode(BindingClassInput bindingClassInput, InputProjectDriver inputProjectDriver) { StringBuilder result = new StringBuilder(); int counter = 0; foreach (var stepBindingInput in bindingClassInput.StepBindings) { switch (inputProjectDriver.Language.ToLower()) { case "c#": result.AppendFormat(@"[{2}(@""{3}"")]public void sb{0}({4} {5}) {{ {1} }}", ++counter, stepBindingInput.Code, stepBindingInput.ScenarioBlock, stepBindingInput.Regex, stepBindingInput.ParameterType, stepBindingInput.ParameterName); break; case "vb.net": if (String.IsNullOrEmpty(stepBindingInput.ParameterType)) { result.AppendFormat(@"<[{2}](""{3}"")> Public Sub sb{0}() {1} End Sub", ++counter, stepBindingInput.Code, stepBindingInput.ScenarioBlock, stepBindingInput.Regex); } else { result.AppendFormat(@"<[{2}](""{3}"")> Public Sub sb{0}({4} as {5}) {1} End Sub", ++counter, stepBindingInput.Code, stepBindingInput.ScenarioBlock, stepBindingInput.Regex, stepBindingInput.ParameterName, stepBindingInput.ParameterType); } break; } result.AppendLine(); } foreach (var otherBinding in bindingClassInput.OtherBindings) { result.AppendLine(otherBinding); } return result.ToString(); }
private void AddBindingClass(InputProjectDriver inputProjectDriver, Project project, BindingClassInput bindingClassInput) { if (bindingClassInput.RawClass != null && bindingClassInput.RawClass.Contains("[assembly:")) { string outputPath = Path.Combine(inputProjectDriver.CompilationFolder, bindingClassInput.ProjectRelativePath); File.WriteAllText(outputPath, bindingClassInput.RawClass, Encoding.UTF8); } else if (bindingClassInput.RawClass != null) { SaveFileFromTemplate(inputProjectDriver.CompilationFolder, "BindingClass." + inputProjectDriver.CodeFileExtension, bindingClassInput.FileName, new Dictionary<string, string> { { "AdditionalUsings", "" }, { "BindingClass", bindingClassInput.RawClass }, }); } else { SaveFileFromTemplate(inputProjectDriver.CompilationFolder, "Bindings." + inputProjectDriver.CodeFileExtension, bindingClassInput.FileName, new Dictionary<string, string> { { "ClassName", bindingClassInput.Name }, { "Bindings", GetBindingsCode(bindingClassInput, inputProjectDriver) }, }); } project.AddItem("Compile", bindingClassInput.ProjectRelativePath); }
private void AddBindingClass(InputProjectDriver inputProjectDriver, Project project, BindingClassInput bindingClassInput) { if (bindingClassInput.RawClass != null) { SaveFileFromTemplate(inputProjectDriver.CompilationFolder, "BindingClass.cs", bindingClassInput.FileName, new Dictionary <string, string> { { "AdditionalUsings", "" }, { "BindingClass", bindingClassInput.RawClass }, }); } else { SaveFileFromTemplate(inputProjectDriver.CompilationFolder, "Bindings.cs", bindingClassInput.FileName, new Dictionary <string, string> { { "ClassName", bindingClassInput.Name }, { "Bindings", GetBindingsCode(bindingClassInput) }, }); } project.AddItem("Compile", bindingClassInput.ProjectRelativePath); }
private void AddBindingClass(InputProjectDriver inputProjectDriver, Project project, BindingClassInput bindingClassInput) { _programLanguageProjectCompiler.AddBindingClass(inputProjectDriver, project, bindingClassInput); }
private string GetBindingsCode(BindingClassInput bindingClassInput) { StringBuilder result = new StringBuilder(); int counter = 0; foreach (var stepBindingInput in bindingClassInput.StepBindings) { result.AppendFormat(@"[{2}(@""{3}"")]public void sb{0}({4}) {{ {1} }}", ++counter, stepBindingInput.Code, stepBindingInput.ScenarioBlock, stepBindingInput.Regex, stepBindingInput.Parameters); result.AppendLine(); } foreach (var otherBinding in bindingClassInput.OtherBindings) { result.AppendLine(otherBinding); } return result.ToString(); }
protected abstract string GetBindingsCode(BindingClassInput bindingClassInput);
public void AddBindingClass(InputProjectDriver inputProjectDriver, Project project, BindingClassInput bindingClassInput) { ProjectCompilerHelper.SaveFileFromResourceTemplate(inputProjectDriver.ProjectFolder, BindingClassFileName, bindingClassInput.FileName, new Dictionary <string, string> { { "ClassName", bindingClassInput.Name }, { "Bindings", GetBindingsCode(bindingClassInput) }, }); project.AddItem("Compile", bindingClassInput.ProjectRelativePath); }