Ejemplo n.º 1
0
        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= ?"

            };
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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())
     );
 }
Ejemplo n.º 5
0
        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;
        }
Ejemplo n.º 6
0
        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;
        }
Ejemplo n.º 7
0
 public CodeNamespaceImport[] GenerateServiceImport(JdbcQueryActivity jdbcQueryActivity)
 {
     return new CodeNamespaceImport[3] {
         new CodeNamespaceImport ("System"),
         new CodeNamespaceImport (TargetAppNameSpaceService.domainContractNamespaceName),
         new CodeNamespaceImport (TargetAppNameSpaceService.dataAccessNamespace)
     };
 }
Ejemplo n.º 8
0
 private CodeMemberMethod[] GenererateMethods(JdbcQueryActivity jdbcQueryActivity)
 {
     return new CodeMemberMethod[1] { this.GenerateExecuteQueryMethod(jdbcQueryActivity) };
 }
Ejemplo n.º 9
0
 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();
 }
Ejemplo n.º 10
0
        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();
        }
Ejemplo n.º 11
0
 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();
 }
Ejemplo n.º 12
0
        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();
        }
Ejemplo n.º 13
0
 public CodeNamespaceImport[] GenerateImport(JdbcQueryActivity jdbcQueryActivity)
 {
     return new CodeNamespaceImport[3] {
         new CodeNamespaceImport ("System"),
         new CodeNamespaceImport ("System.Linq"),
         new CodeNamespaceImport (TargetAppNameSpaceService.dataAccessCommonNamespace)
     };
 }