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);
 }
Exemple #3
0
        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());
        }
Exemple #4
0
        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());
        }
Exemple #5
0
 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);
 }