Example #1
0
        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());
        }
Example #2
0
        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());
        }
Example #3
0
        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)));
        }