private void SetCommandParameters(CodeGenerator generator, InputParameterCollection parameters) { //Debug.WriteLine("SetCommandParameters(): Command context has " + parameters.Count + " parameters"); Debug.Indent(); foreach (InputParameter parameter in parameters) { //Debug.WriteLine("Adding Context Parameter '" + parameter.Name + "' Value='" + parameter.Value + "' after index " + generator.Context.Parameters.Count); generator.Context.Parameters.Add(parameter.Name, parameter.Value); } Debug.Unindent(); }
private void CheckCodeGenParameters(InputParameterCollection parameters, CodeGen.PackageLib.InputParameterCollection packageParameters) { if (packageParameters == null) { return; } foreach (CodeGen.PackageLib.InputParameter packageParameter in packageParameters) { if (!parameters.Contains(packageParameter.Name)) { if (!packageParameter.IsRequired) { parameters.Add(packageParameter.Name, packageParameter.Value); } else { throw new ApplicationException(String.Format("Parameter {0} was not specified.", packageParameter.Name)); } } } }
private void AddProjectParameters(InputParameterCollection parameters) { if (Project != null) { foreach (InputParameter parameter in Project.InputParameters) { if (!parameters.Contains(parameter.Name)) { parameters.Add(parameter.Name, parameter.Value); } } } }
private void CheckTemplateParameters(InputParameterCollection parameters) { // TODO: REFACTOR // TODO: Add/check parameters from template then package SetTemplateBaseFolder(); try { if (_package == "") { return; } else { Package package = CodeGen.PackageLib.Package.Load(_package); if (package == null || !package.Templates.Contains(_template)) { throw new FileNotFoundException("Template '" + _package + "::" + _template + "' not found."); } else { CheckCodeGenParameters(parameters, package.Templates[_template].InputParameters); CheckCodeGenParameters(parameters, package.InputParameters); } } } finally { RestoreTemplateBaseFolder(); } }
private void PrepareParameters(XmlDocument metadata, MetadataFile inputFile, InputParameterCollection parameters) { Debug.WriteLine("PrepareParameters(): Command context has " + parameters.Count + " parameters"); for (int x = 0; x < 10; x++) { bool parameterChanged = false; foreach (InputParameter parameter in parameters) { if (parameter.Value.IndexOf("$") < 0 && parameter.Value.IndexOf("#") < 0) { continue; } //Debug.WriteLine("PrepareParameters(): Preparing parameter '" + parameter.Name + "' Value='" + parameter.Value + "'"); Trace.Indent(); try { CodeGenerator generator = CreateGenerator(inputFile); SetGeneratorTemplate(generator); generator.Template.Name = "Prepare Parameter '" + parameter.Name + "' : value '" + parameter.Value + "'"; generator.Template.Content = new StringReader(parameter.Value); //generator.Template = new Template(parameter.Value, ); //SetGeneratorTemplate(generator); SetCommandParameters(generator, parameters); //StringReader reader = ; //generator.Template = reader; StringWriter writer = new StringWriter(); generator.UseDefaultEngine = true; generator.Generate(metadata, writer); //Trace.WriteLineIf(parameter.Value != writer.ToString(), "Prepared parameter '" + parameter.Name + "': OldVal='" + parameter.Value + "' NewVal='" + writer.ToString() + "'"); if (parameter.Value != writer.ToString()) { parameter.Value = writer.ToString(); parameterChanged = true; } } finally { Trace.Unindent(); } } if (!parameterChanged) { break; } } }