Пример #1
0
        public void Should_Return_One_DataAccess_Classes_To_Generate_When_JdbcQueryActivity_is_Mapped()
        {
            SqlRequestToActivityMapper.ClearActivityHasSet();
            CodeNamespaceCollection classToGenerate = jdbcQueryActivityBuilder.GenerateClassesToGenerate(jdbcQueryActivity, new Dictionary <string, string>());

            Assert.AreEqual("CurrencyDataAccess", classToGenerate [0].Types[0].Name);
        }
Пример #2
0
 public void SetUp()
 {
     jdbcQueryActivity = new JdbcQueryActivity("Currency", ActivityType.jdbcQueryActivityType);
     jdbcQueryActivity.QueryStatement           = select;
     jdbcQueryActivity.ClassName                = jdbcQueryActivity.Name;
     jdbcQueryActivity.QueryStatementParameters = new Dictionary <string, string> {
         {
             "IdBbUnique",
             "VARCHAR"
         }
     };
     jdbcQueryActivity.JdbcSharedConfig = string.Empty;
     jdbcQueryActivityBuilder           = new JdbcQueryActivityBuilder(
         new DataAccessBuilder(),
         new DataAccessServiceBuilder(),
         new DataAccessInterfacesCommonBuilder(),
         new XslBuilder(new XpathBuilder()),
         new ResultSetBuilder()
         );
     SqlRequestToActivityMapper.Clear();
 }
Пример #3
0
        private string GenerateClassName(JdbcQueryActivity jdbcQueryActivity)
        {
            if (!string.IsNullOrEmpty(jdbcQueryActivity.ClassName))
            {
                return(jdbcQueryActivity.ClassName);
            }

            if (jdbcQueryActivity.Type == ActivityType.jdbcCallActivityType)
            {
                return(jdbcQueryActivity.QueryStatement);
            }

            if (!SqlRequestToActivityMapper.IsThisJdbcActivityNameUsed(jdbcQueryActivity.Name))
            {
                SqlRequestToActivityMapper.SetThisJdbcActivityNameHasUsed(jdbcQueryActivity.Name);
                return(VariableHelper.ToClassName(jdbcQueryActivity.Name));
            }

            var className = VariableHelper.ToClassName(jdbcQueryActivity.Name) + SqlRequestToActivityMapper.Counter;

            SqlRequestToActivityMapper.Counter++;

            return(className);
        }
Пример #4
0
 public void Should_return_First_serviceName_When_Sql_request_does_exist()
 {
     SqlRequestToActivityMapper.SaveSqlRequest("select 1", "ServiceClass1");
     SqlRequestToActivityMapper.SaveSqlRequest("select 1", "ServiceClass2");
     Assert.AreEqual("ServiceClass1", SqlRequestToActivityMapper.GetJdbcServiceName("select 1"));
 }
Пример #5
0
 public void Should_Not_Add_sql_request_To_Dico_When_Sql_request_does_exist()
 {
     SqlRequestToActivityMapper.SaveSqlRequest("select 1", "ServiceClass1");
     SqlRequestToActivityMapper.SaveSqlRequest("select 1", "ServiceClass2");
     Assert.AreEqual(1, SqlRequestToActivityMapper.Count());
 }
Пример #6
0
        public override CodeNamespaceCollection GenerateClassesToGenerate(Activity activity, Dictionary <string, string> variables)
        {
            var jdbcQueryActivity = (JdbcQueryActivity)activity;

            var result = new CodeNamespaceCollection();

            if (this.HasThisSqlRequestAlreadyGenerateAService(jdbcQueryActivity.QueryStatement))
            {
                this.ServiceToInvoke        = this.GetExistingJdbcServiceName(jdbcQueryActivity.QueryStatement);
                jdbcQueryActivity.ClassName = this.ServiceToInvoke.Replace("Service", string.Empty);
            }
            else
            {
                jdbcQueryActivity.ClassName = this.GenerateClassName(jdbcQueryActivity);
                this.ServiceToInvoke        = jdbcQueryActivity.ClassName + "Service";

                SqlRequestToActivityMapper.SaveSqlRequest(jdbcQueryActivity.QueryStatement, this.ServiceToInvoke);

                if (jdbcQueryActivity.QueryOutputStatementParameters != null && jdbcQueryActivity.QueryOutputStatementParameters.Count != 0)
                {
                    result.Add(this.resultSetBuilder.Build(jdbcQueryActivity));
                }

                var dataAccessNameSpace          = this.dataAccessBuilder.Build(jdbcQueryActivity);
                var dataAccessInterfaceNameSpace = InterfaceExtractorFromClass.Extract(dataAccessNameSpace.Types[0], TargetAppNameSpaceService.dataAccessNamespace());
                if (jdbcQueryActivity.QueryOutputStatementParameters != null &&
                    jdbcQueryActivity.QueryOutputStatementParameters.Count != 0)
                {
                    dataAccessInterfaceNameSpace.Imports.Add(new CodeNamespaceImport(TargetAppNameSpaceService.domainContractNamespaceName()));
                }

                dataAccessNameSpace.Types[0].BaseTypes.Add(new CodeTypeReference(dataAccessInterfaceNameSpace.Types[0].Name));

                var serviceNameSpace          = this.dataAccessServiceBuilder.Build(jdbcQueryActivity);
                var serviceInterfaceNameSpace = InterfaceExtractorFromClass.Extract(serviceNameSpace.Types[0], TargetAppNameSpaceService.domainContractNamespaceName());

                serviceNameSpace.Types[0].BaseTypes.Add(new CodeTypeReference(serviceInterfaceNameSpace.Types[0].Name));

                result.Add(dataAccessNameSpace);
                result.Add(dataAccessInterfaceNameSpace);
                result.Add(serviceNameSpace);
                result.Add(serviceInterfaceNameSpace);

                if (ConfigurationApp.GetProperty("HasCommonDataAccessAlreadyGenerated") != "true")
                {
                    var dataCommonNamespace = this.dataAccessCommonBuilder.Build();
                    result.Add(dataCommonNamespace);
                    ConfigurationApp.SaveProperty("HasCommonDataAccessAlreadyGenerated", "true");
                }

                //TODO : Find a more suitable way to retrieve the CustomAttribute To Build
                string dataCustomAttributeName = this.GetDataCustomAttributeName(dataAccessNameSpace);
                if (ConfigurationApp.GetProperty(dataCustomAttributeName) != "true")
                {
                    var dataBaseAttributeNamespace = new DatabaseAttributeBuilder().Build(dataCustomAttributeName);
                    result.Add(dataBaseAttributeNamespace);
                    ConfigurationApp.SaveProperty(dataCustomAttributeName, "true");
                }

                ModuleBuilder.AddServiceToRegister(dataAccessInterfaceNameSpace.Types[0].Name, dataAccessNameSpace.Types[0].Name);
                ModuleBuilder.AddServiceToRegister(serviceInterfaceNameSpace.Types[0].Name, this.ServiceToInvoke);
            }

            return(result);
        }
Пример #7
0
 private string GetExistingJdbcServiceName(string queryStatement)
 {
     return(SqlRequestToActivityMapper.GetJdbcServiceName(queryStatement));
 }
Пример #8
0
 /// <summary>
 /// Determines whether this sql request has already generate A service for the specified queryStatement.
 /// </summary>
 /// <returns><c>true</c> if this sql request already generate A service;
 /// otherwise, <c>false</c>.</returns>
 /// <param name="queryStatement">Query statement.</param>
 private bool HasThisSqlRequestAlreadyGenerateAService(string queryStatement)
 {
     return(SqlRequestToActivityMapper.ContainsKey(queryStatement));
 }