public void SetUp() { this.builder = new DataAccessBuilder (new JdbcQueryBuilderUtils()); this.jdbcQueryActivity = new JdbcQueryActivity { Type = ActivityType.jdbcCallActivityType, Name = "TestJbdcQueryActivity", JdbcSharedConfig = "Panorama", EmptyStringAsNull = false, QueryStatement = "select 1 from toto where id= ?" }; }
public CodeSnippetStatement GenerateExecuteQueryBody(JdbcQueryActivity jdbcQueryActivity, CodeMemberMethod method) { var sb = new StringBuilder(); sb.Append(bodyMethodStart); var tabulation = new Tab(); if (method.ReturnType.BaseType == voidString) { sb.AppendLine(string.Format("{0}(", dbQuery)); } else { sb.AppendLine(string.Format("return {0} <{1}>(", dbQuery, method.ReturnType.BaseType)); } tabulation.Increment(); sb.Append(string.Format("{0}{1}", tabulation, SqlQueryStatement)); if (method.Parameters != null && method.Parameters.Count >= 1) { sb.AppendLine(","); sb.AppendLine(string.Format("{0}new", tabulation)); sb.AppendLine(string.Format("{0}{{", tabulation.Increment())); tabulation.Increment(); foreach (CodeParameterDeclarationExpression inputParameter in method.Parameters) { sb.AppendLine(string.Format("{0}{1} = {1},", tabulation, inputParameter.Name)); } // remove last comma sb.Remove(sb.ToString().LastIndexOf(','), 1); tabulation.Decrement(); sb.AppendLine(string.Format("{0}}}", tabulation)); } //ferme le dbQuery tabulation.Decrement(); if (method.ReturnType.BaseType != voidString) { sb.AppendLine(string.Format("{0}).FirstOrDefault();", tabulation)); } else { sb.AppendLine(string.Format("{0});", tabulation)); } // ferme le using sb.AppendLine("}"); return new CodeSnippetStatement(sb.ToString()); }
public CodeMemberMethod GenerateExecuteQueryMethod(JdbcQueryActivity jdbcQueryActivity) { { var method = new CodeMemberMethod(); method.Attributes = MemberAttributes.Public | MemberAttributes.Final; method.Name = ExecuteSqlQueryMethodName; method.ReturnType = this.jdbcQueryBuilderUtils.ConvertSQLTypeToObjectType(jdbcQueryActivity.QueryOutputCachedSchemaDataTypes.ToString()); method.Parameters.AddRange(this.jdbcQueryBuilderUtils.ConvertQueryStatementParameter(jdbcQueryActivity.QueryStatementParameters)); method.Statements.Add(this.GenerateExecuteQueryBody(method)); return method; } }
public void SetUp() { jdbcQueryActivity = new JdbcQueryActivity ("Currency" , ActivityType.jdbcQueryActivityType); jdbcQueryActivity.QueryStatement = select; jdbcQueryActivity.QueryStatementParameters = new Dictionary<string, string> { { "IdBbUnique", "VARCHAR" } }; jdbcQueryActivity.JdbcSharedConfig = string.Empty; var jdbcQueryBuilderUtils = new JdbcQueryBuilderUtils (); jdbcQueryActivityBuilder = new JdbcQueryActivityBuilder ( new DataAccessBuilder (jdbcQueryBuilderUtils), new DataAccessServiceBuilder (jdbcQueryBuilderUtils), new DataAccessInterfacesCommonBuilder(), new XslBuilder(new XpathBuilder()) ); }
public CodeNamespace Build(JdbcQueryActivity jdbcQueryActivity) { var serviceNameSpace = new CodeNamespace(TargetAppNameSpaceService.domainServiceNamespaceName); serviceNameSpace.Imports.AddRange(this.GenerateServiceImport(jdbcQueryActivity)); var serviceToGenerate = new CodeTypeDeclaration(); serviceToGenerate.IsClass = true; serviceToGenerate.TypeAttributes = TypeAttributes.Public; serviceToGenerate.Name = VariableHelper.ToClassName(jdbcQueryActivity.Name) + "Service"; //dataAccessToGenerate.Imports = this.GenerateImport (jdbcQueryActivity); serviceToGenerate.Members.AddRange(this.GenererateFields(jdbcQueryActivity)); serviceToGenerate.Members.AddRange(this.GenererateContructors(jdbcQueryActivity, serviceToGenerate)); serviceToGenerate.Members.AddRange(this.GenererateMethods(jdbcQueryActivity)); serviceNameSpace.Types.Add(serviceToGenerate); return serviceNameSpace; }
public Activity Parse(XElement inputElement) { var jdbcQueryActivity = new JdbcQueryActivity (); jdbcQueryActivity.Name = inputElement.Attribute ("name").Value; jdbcQueryActivity.Type = (ActivityType) inputElement.Element (XmlnsConstant.tibcoProcessNameSpace + "type").Value; var configElement = inputElement.Element ("config"); jdbcQueryActivity.TimeOut = XElementParserUtils.GetIntValue(configElement.Element("timeout")); jdbcQueryActivity.Commit = XElementParserUtils.GetBoolValue(configElement.Element("commit")); jdbcQueryActivity.MaxRows = XElementParserUtils.GetIntValue(configElement.Element("maxRows")); jdbcQueryActivity.EmptyStringAsNull = XElementParserUtils.GetBoolValue(configElement.Element("emptyStrAsNil")); jdbcQueryActivity.JdbcSharedConfig = XElementParserUtils.GetStringValue(configElement.Element("jdbcSharedConfig")); if (jdbcQueryActivity.Type == ActivityType.jdbcCallActivityType) { jdbcQueryActivity.QueryStatement = XElementParserUtils.GetStringValue (configElement.Element ("ProcedureName")); // TODO : faut il enlever le ;1 à la fin ? je dirai que oui, à moins que cela donne la position du return dans la liste en dessous..bizarre if (jdbcQueryActivity.QueryStatement.Contains(";")) { jdbcQueryActivity.QueryStatement = jdbcQueryActivity.QueryStatement.Remove(jdbcQueryActivity.QueryStatement.LastIndexOf(';'), 2); } var preparedParamDataTypeElement = configElement.Element ("parameterTypes"); jdbcQueryActivity.QueryStatementParameters = new Dictionary <string, string> (); var parameterElements = preparedParamDataTypeElement.Elements ("parameter"); foreach (var parameterElement in parameterElements) { string parameterName = XElementParserUtils.GetStringValue(parameterElement.Element ("colName")); parameterName = parameterName.Substring (1, parameterName.Length-1); jdbcQueryActivity.QueryStatementParameters.Add( parameterName, XElementParserUtils.GetStringValue(parameterElement.Element ("typeName")) ); } } else { jdbcQueryActivity.QueryStatement = XElementParserUtils.GetStringValue (configElement.Element ("statement")); var preparedParamDataTypeElement = configElement.Element ("Prepared_Param_DataType"); jdbcQueryActivity.QueryStatementParameters = new Dictionary <string, string> (); var parameterElements = preparedParamDataTypeElement.Elements ("parameter"); foreach (var parameterElement in parameterElements) { jdbcQueryActivity.QueryStatementParameters.Add( XElementParserUtils.GetStringValue(parameterElement.Element ("parameterName")), XElementParserUtils.GetStringValue(parameterElement.Element ("dataType")) ); } } jdbcQueryActivity.QueryOutputCachedSchemaColumns = XElementParserUtils.GetStringValue(configElement.Element("QueryOutputCachedSchemaColumns")); jdbcQueryActivity.QueryOutputCachedSchemaDataTypes = XElementParserUtils.GetIntValue(configElement.Element("QueryOutputCachedSchemaDataTypes")); jdbcQueryActivity.QueryOutputCachedSchemaStatus = XElementParserUtils.GetStringValue(configElement.Element("QueryOutputCachedSchemaStatus")); if (inputElement.Element(XmlnsConstant.tibcoProcessNameSpace + "inputBindings") != null && inputElement.Element(XmlnsConstant.tibcoProcessNameSpace + "inputBindings").Element("jdbcQueryActivityInput") != null) { jdbcQueryActivity.InputBindings = inputElement.Element(XmlnsConstant.tibcoProcessNameSpace + "inputBindings").Element("jdbcQueryActivityInput").Nodes(); jdbcQueryActivity.Parameters = new XslParser().Build(jdbcQueryActivity.InputBindings); } return jdbcQueryActivity; }
public CodeNamespaceImport[] GenerateServiceImport(JdbcQueryActivity jdbcQueryActivity) { return new CodeNamespaceImport[3] { new CodeNamespaceImport ("System"), new CodeNamespaceImport (TargetAppNameSpaceService.domainContractNamespaceName), new CodeNamespaceImport (TargetAppNameSpaceService.dataAccessNamespace) }; }
private CodeMemberMethod[] GenererateMethods(JdbcQueryActivity jdbcQueryActivity) { return new CodeMemberMethod[1] { this.GenerateExecuteQueryMethod(jdbcQueryActivity) }; }
private CodeMemberField[] GenererateFields(JdbcQueryActivity jdbcQueryActivity) { var fields = new List<CodeMemberField> { new CodeMemberField { Name = DataAccessVariableName, Type = new CodeTypeReference (VariableHelper.ToClassName (jdbcQueryActivity.Name) + "DataAccess"), Attributes = MemberAttributes.Private }, }; return fields.ToArray(); }
private CodeConstructor[] GenererateContructors(JdbcQueryActivity jdbcQueryActivity, CodeTypeDeclaration classModel) { var constructor = new CodeConstructor(); constructor.Attributes = MemberAttributes.Public; foreach (CodeMemberField field in classModel.Members) { constructor.Parameters.Add( new CodeParameterDeclarationExpression() { Type = field.Type, Name = field.Name }); var parameterReference = new CodeFieldReferenceExpression( new CodeThisReferenceExpression(), field.Name); constructor.Statements.Add(new CodeAssignStatement(parameterReference, new CodeArgumentReferenceExpression(field.Name))); } return new List<CodeConstructor> { constructor }.ToArray(); }
private CodeMemberField[] GenererateFields(JdbcQueryActivity jdbcQueryActivity) { var fields = new List<CodeMemberField> { new CodeMemberField { Name = SqlQueryStatement, Type = new CodeTypeReference(typeof(System.String)), Attributes = MemberAttributes.Private | MemberAttributes.Const, InitExpression = new CodePrimitiveExpression( jdbcQueryActivity.QueryStatement ) }, new CodeMemberField { Name = "dataAccessFactory", Type = new CodeTypeReference (iDataAccessFactory), Attributes = MemberAttributes.Private }, }; return fields.ToArray(); }
public CodeConstructor[] GenererateContructors(JdbcQueryActivity jdbcQueryActivity, CodeTypeDeclaration classModel) { var constructor = new CodeConstructor(); constructor.Attributes = MemberAttributes.Public; foreach (CodeMemberField field in classModel.Members) { if (field.Type.BaseType == iDataAccessFactory) { constructor.Parameters.Add( new CodeParameterDeclarationExpression() { Type = field.Type, Name = field.Name, // TODO verifier que ca marche CustomAttributes = new CodeAttributeDeclarationCollection { new CodeAttributeDeclaration ( this.jdbcQueryBuilderUtils.ConvertJDBCConnectionName (jdbcQueryActivity.JdbcSharedConfig) ) } }); var parameterReference = new CodeFieldReferenceExpression( new CodeThisReferenceExpression(), field.Name); constructor.Statements.Add(new CodeAssignStatement(parameterReference, new CodeArgumentReferenceExpression(field.Name))); } } return new List<CodeConstructor> { constructor }.ToArray(); }
public CodeNamespaceImport[] GenerateImport(JdbcQueryActivity jdbcQueryActivity) { return new CodeNamespaceImport[3] { new CodeNamespaceImport ("System"), new CodeNamespaceImport ("System.Linq"), new CodeNamespaceImport (TargetAppNameSpaceService.dataAccessCommonNamespace) }; }