public string GenerateProcedureProperties(ProcedureDefinition procedure) { StringBuilder builder = new StringBuilder(); string templateProperty = Templates.ProcedureProperty; foreach (ProcedureParameterDefinition parameter in procedure.Parameters) { builder.AppendLine(); string propertyName = parameter.ToPascalCase(CodeFormatOptions.None); string xmlElementName = propertyName; if (parameter.Name == procedure.Name) { propertyName += "_"; } if (procedure.CharAsBooleans.ContainsKey(parameter.Name)) { builder.AppendLine(templateProperty.Replace(Tokens.SchemaAttributes, GeneratePropertyAttribute(parameter)).Replace(Tokens.XmlAttribute, xmlElementName).Replace(Tokens.DataTypeShort, TableColumnDefinition.GetDataTypeShort(DbType.Boolean, false, session.Configuration.CodeGen.UseNullableTypes)).Replace(Tokens.DataTypeLong, "CharAsBoolean").Replace("#SETOPTION#", "BooleanAsChar").Replace(Tokens.PropertyName, propertyName).Replace(Tokens.ColumnName, propertyName)); } else { builder.AppendLine(templateProperty.Replace(Tokens.SchemaAttributes, GeneratePropertyAttribute(parameter)).Replace(Tokens.XmlAttribute, xmlElementName).Replace(Tokens.DataTypeShort, parameter.GetDataTypeShort()).Replace(Tokens.DataTypeLong, parameter.GetDataTypeLong()).Replace("#SETOPTION#", string.Empty).Replace(Tokens.PropertyName, propertyName).Replace(Tokens.ColumnName, propertyName)); } } return(builder.ToString()); }
public string GenerateSingleProcedure(ProcedureDefinition procedure, IEnumerable <string> namespaces) { Argument.Assert.IsNotNull(procedure, nameof(procedure)); StringBuilder output = new StringBuilder(); output.AppendLine("#region Using Directives"); output.AppendLine("using System;"); output.AppendLine("using System.Data;"); output.AppendLine("using System.Xml;"); output.AppendLine("using System.Xml.Schema;"); output.AppendLine("using System.Xml.Serialization;"); output.AppendLine("using System.Runtime.Serialization;"); output.AppendLine("using Loom;"); output.AppendLine("using Loom.Data.Mapping;"); output.AppendLine("using Loom.Data.Mapping.Schema;"); foreach (string ns in namespaces) { output.AppendLine(string.Format("using {0};", ns)); } output.AppendLine("#endregion"); string baseNamespace = session.Configuration.CodeGen.BaseNamespace.Trim(); if (!Compare.AreSameOrdinalIgnoreCase(procedure.Owner, "dbo")) { baseNamespace += "." + procedure.Owner; } AddBaseNamespaceStart(output, baseNamespace); output.AppendLine(procedureProcessor.GenerateProcedure(procedure)); AddBaseNamespaceEnd(output, baseNamespace); return(output.ToString()); }
public string GenerateProcedure(ProcedureDefinition definition) { StringBuilder parameterBuilder = new StringBuilder(); foreach (ProcedureParameterDefinition parameterInfo in definition.Parameters) { parameterBuilder.AppendLine(Indent.Two + "public static ICallableParameter " + parameterInfo.ToPascalCase() + "{"); parameterBuilder.AppendLine(Indent.Three + "get { return CreateParameter(\"" + parameterInfo.ToPascalCase() + "\", typeof(" + definition.ToPascalCase() + ")); }"); parameterBuilder.AppendLine(Indent.Two + "}"); parameterBuilder.AppendLine(); } string className = definition.ToPascalCase(); TablesElement procedureConfig = session.GetTableConfiguration(definition.Owner, definition.Name); if (procedureConfig != null) { if (!Compare.IsNullOrEmpty(procedureConfig.RenameTo)) { className = procedureConfig.RenameTo; } if (!Compare.IsNullOrEmpty(procedureConfig.AddPrefix)) { className = procedureConfig.AddPrefix + className; } if (!Compare.IsNullOrEmpty(procedureConfig.AddSuffix)) { className += procedureConfig.AddSuffix; } } return(Templates.ProcedureClass.Replace(Tokens.SchemaAttributes, GenerateProcedureAttribute(definition)).Replace(Tokens.ParameterList, parameterBuilder.ToString()).Replace(Tokens.ClassName, className).Replace(Tokens.SchemaName, definition.Owner).Replace(Tokens.ProcedureName, definition.Name).Replace(Tokens.Properties, GenerateProcedureProperties(definition))); }