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)); }
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)); }
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(); } }