private Type GetReturnType(DatabaseFunction cItem) { //اینجا میتوان برای استورد پروسیجر ها با یک خصوصیت تعیین کرد که کدوم پارامتر خروجی اصلی است BizColumn bizColumn = new BizColumn(); DatabaseFunctionParameter parameter = null; var output = (short)Enum_DatabaseFunctionParameterType.Output; parameter = cItem.DatabaseFunctionParameter.FirstOrDefault(x => x.InputOutput == output); if (parameter != null) { return(bizColumn.GetColumnDotNetType(parameter.DataType, false)); } else { output = (short)Enum_DatabaseFunctionParameterType.InputOutput; parameter = cItem.DatabaseFunctionParameter.FirstOrDefault(x => x.InputOutput == output); if (parameter != null) { return(bizColumn.GetColumnDotNetType(parameter.DataType, false)); } else { output = (short)Enum_DatabaseFunctionParameterType.ReturnValue; parameter = cItem.DatabaseFunctionParameter.FirstOrDefault(x => x.InputOutput == output); if (parameter != null) { return(bizColumn.GetColumnDotNetType(parameter.DataType, false)); } } } return(null); }
private DatabaseFunctionParameter ConvertToDatabaseFunctionParameter(FunctionParameter parameter) { var type = ((PrimitiveDataType)parameter.DataType).Clone(); var mode = this.parameterModeMapping[parameter.Mode]; var databaseFunctionParameter = new DatabaseFunctionParameter(parameter.Name, type, mode); this.ApplyDataGeneratorAnnotationToStoreItem(databaseFunctionParameter, parameter); return(databaseFunctionParameter); }
private void UpdateEntityInModel(MyProjectEntities projectContext, int databaseID, DatabaseFunctionDTO function, List <DBSchema> listAddedSchema) { DBSchema dbSchema = null; var schema = function.RelatedSchema; dbSchema = listAddedSchema.FirstOrDefault(x => x.DatabaseInformationID == databaseID && x.Name == function.RelatedSchema); if (dbSchema == null) { dbSchema = new DBSchema() { DatabaseInformationID = databaseID, Name = schema }; dbSchema.SecurityObject = new SecurityObject(); dbSchema.SecurityObject.Type = (int)DatabaseObjectCategory.Schema; projectContext.DBSchema.Add(dbSchema); listAddedSchema.Add(dbSchema); } var dbFunction = projectContext.DatabaseFunction.Include("DatabaseFunctionParameter").FirstOrDefault(x => x.FunctionName == function.Name && x.DBSchema.DatabaseInformationID == databaseID); if (dbFunction == null) { dbFunction = new DatabaseFunction(); projectContext.DatabaseFunction.Add(dbFunction); dbFunction.FunctionName = function.Name; dbFunction.Enable = true; } dbFunction.DBSchema = dbSchema; dbFunction.Type = (short)function.Type; foreach (var column in function.DatabaseFunctionParameter) { var dbColumn = dbFunction.DatabaseFunctionParameter.Where(x => x.ParamName == column.ParameterName).FirstOrDefault(); if (dbColumn == null) { dbColumn = new DatabaseFunctionParameter(); dbColumn.ParamName = column.ParameterName; dbColumn.Enable = true; dbFunction.DatabaseFunctionParameter.Add(dbColumn); } dbColumn.InputOutput = (short)column.InputOutput; dbColumn.DataType = column.DataType; dbColumn.ParamName = column.ParameterName; } var columnNames = function.DatabaseFunctionParameter.Select(x => x.ParameterName).ToList(); foreach (var dbColumn in dbFunction.DatabaseFunctionParameter.Where(x => !columnNames.Contains(x.ParamName))) { dbColumn.Enable = false; } }