Ejemplo n.º 1
0
        public void ExecuteReaderTest()
        {
            var testData = new CustomExecution
            {
                DotNetMethodName = "GetKMHLimitByDebitCard",
                ReturnValueType  = "BOA.Types.Kernel.DebitCard.DebitCardKMHInfoContract".LoadBOAType(),
                SqlProcedureName = "sel_KMHLimitByDebitCard",
                ExecutionType    = ExecutionType.ExecuteReader,

                Comment = "Aloha"
            };

            testData.ProcedureDefinitionScript = sel_KMHLimitByDebitCard;
            testData.DatabaseEnumName          = "Boa";
            testData.ProcedureFullName         = "DBT.sel_KMHLimitByDebitCard";

            testData.Database = DbLayerPrep;

            var instance = new CustomExecutionCs(null, testData);


            var cs = instance.Generate();

            Assert.IsTrue(StringHelper.IsEqualAsData(ExpectedOutputForExecuteReader, cs, GlobalizationUtility.EnglishCulture));
        }
Ejemplo n.º 2
0
        public void ExecuteScalarTest()
        {
            var testData = new CustomExecution
            {
                DotNetMethodName = "SelectTotalUsedAmountOfAccount",
                ReturnValueType  = "decimal?".LoadBOAType(),
                SqlProcedureName = "sel_DebitTransactionTotalUsedAmountOfAccount",
                ExecutionType    = ExecutionType.ExecuteScalar,

                Comment = "Aloha"
            };

            testData.ProcedureDefinitionScript = File.ReadAllText("Generators\\DBT.sel_DebitTransactionTotalUsedAmountOfAccount.txt");
            testData.DatabaseEnumName          = "Boa";
            testData.ProcedureFullName         = "DBT.sel_DebitTransactionTotalUsedAmountOfAccount";
            testData.Database = DbLayerPrep;

            var instance = new CustomExecutionCs(null, testData);


            var cs = instance.Generate();

            Assert.IsTrue(StringHelper.IsEqualAsData(ExpectedOutputForExecuteScalar, cs, GlobalizationUtility.EnglishCulture));
        }
Ejemplo n.º 3
0
        public void Handle()
        {
            var procedureName = _input.ProcedureName;

            if (procedureName.IsNullOrEmpty())
            {
                Result.ErrorMessage = "Herhangi bir procedure ismi seçilmelidir";
                return;
            }
            var connectionInfo = FindProcedureContainerDatabaseConnectionInfo();

            if (connectionInfo == null)
            {
                return;
            }

            using (var database = new SqlDatabase(connectionInfo.ConnectionStringDev))
            {
                procedureName = ClearProcedure(procedureName);

                var dotNetMethodName = GetMethodNameFromProcedure(procedureName);

                var data = new CustomExecution
                {
                    DotNetMethodName  = dotNetMethodName,
                    SqlProcedureName  = procedureName.Split('.').Last(),
                    ExecutionType     = ExecutionType.ExecuteReader,
                    DatabaseEnumName  = connectionInfo.DatabaseName,
                    ProcedureFullName = procedureName,
                    Database          = database
                };

                if (dotNetMethodName.StartsWith("Update") ||
                    dotNetMethodName.StartsWith("Delete"))
                {
                    data.ExecutionType = ExecutionType.ExecuteNonQuery;
                }
                if (dotNetMethodName.StartsWith("Insert"))
                {
                    data.ExecutionType = ExecutionType.ExecuteScalar;
                }

                var generator = new CustomExecutionCs(null, data);

                if (dotNetMethodName.StartsWith("Select"))
                {
                    if (generator.ProcedureInfoReturnColumns.Count == 1)
                    {
                        data.ExecutionType = ExecutionType.ExecuteReaderForOneColumn;
                    }
                }

                if (data.ReturnValueType == null)
                {
                    if (generator.ParameterIsContract ||
                        data.ExecutionType == ExecutionType.ExecuteReader)
                    {
                        data.ReturnValueType = FindType();
                    }
                }

                Result.GeneratedCsCode = generator.Generate();
            }
        }