Exemplo n.º 1
0
        private static void FixDuplicateName(ICollection <string> tableNames, DatabaseTable table)
        {
            var netName = table.NetName;

            if (!tableNames.Contains(netName))
            {
                return;
            }
            //first we try to add the schema as a prefix (eg DboCategory).
            var schemaOwner = NameFixer.ToPascalCase(table.SchemaOwner);
            var name        = schemaOwner + netName;

            if (!tableNames.Contains(name))
            {
                table.NetName = name;
                return;
            }
            //let's try suffixes- just count up to 100, and if we find a free one, use it
            for (var i = 0; i < 100; i++)
            {
                name = netName + "1";
                if (!tableNames.Contains(name))
                {
                    table.NetName = name;
                    return;
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Translates the namedObject's Name to a code-friendly name
        /// </summary>
        /// <param name="namedObject">The named object.</param>
        /// <returns></returns>
        public virtual string Name(INamedObject namedObject)
        {
            var name   = NameFixer.ToPascalCase(namedObject.Name);
            var column = namedObject as DatabaseColumn;

            if (column != null)
            {
                //if it's a foreign key (CategoryId)
                if (column.IsForeignKey && name.Length > 2)
                {
                    if (name.EndsWith("Id", StringComparison.OrdinalIgnoreCase))
                    {
                        //remove the "Id" - it's just a "Category"
                        name = name.Substring(0, name.Length - 2);
                    }
                }

                //member name cannot be same as class name
                if (name == column.Table.NetName)
                {
                    name += "Property";
                }
            }
            return(name);
        }
Exemplo n.º 3
0
        public string NameColumnAsMethodTitle(string name)
        {
            var namePascalCase = NameFixer.ToPascalCase(name);

            if (namePascalCase.EndsWith("Id", StringComparison.OrdinalIgnoreCase))
            {
                //remove the "Id" - it's just a "Category"
                namePascalCase = namePascalCase.Substring(0, namePascalCase.Length - 2);
            }

            return(namePascalCase);
        }
Exemplo n.º 4
0
 private static void PrepareStoredProcedureNames(DatabaseStoredProcedure sproc)
 {
     if (string.IsNullOrEmpty(sproc.NetName))
     {
         sproc.NetName = NameFixer.ToPascalCase(sproc.Name);
     }
     foreach (var argument in sproc.Arguments)
     {
         if (string.IsNullOrEmpty(argument.NetName))
         {
             argument.NetName = NameFixer.ToPascalCase(argument.Name);
         }
     }
 }
Exemplo n.º 5
0
        private static void Prepare(DatabaseColumn column)
        {
            if (!string.IsNullOrEmpty(column.NetName))
            {
                return;
            }

            column.NetName = NameFixer.ToPascalCase(column.Name);
            //if it's a foreign key (CategoryId)
            if (column.IsForeignKey && column.NetName.EndsWith("Id", StringComparison.OrdinalIgnoreCase))
            {
                //remove the "Id" - it's just a "Category"
                var netName = column.NetName;
                column.NetName = netName.Substring(0, netName.Length - 2);
            }
        }
Exemplo n.º 6
0
        public static void Prepare(DatabaseSchema schema)
        {
            //no check for duplicate names
            //if NetNames are already set, they are not overridden

            foreach (var table in schema.Tables)
            {
                if (string.IsNullOrEmpty(table.NetName))
                {
                    table.NetName = NameFixer.ToPascalCase(table.Name);
                }
                foreach (var column in table.Columns)
                {
                    Prepare(column);
                }
            }
            foreach (var view in schema.Views)
            {
                if (string.IsNullOrEmpty(view.NetName))
                {
                    view.NetName = NameFixer.ToPascalCase(view.Name);
                }
                foreach (var column in view.Columns)
                {
                    Prepare(column);
                }
            }
            foreach (var sproc in schema.StoredProcedures)
            {
                PrepareStoredProcedureNames(sproc);
            }
            foreach (var package in schema.Packages)
            {
                if (string.IsNullOrEmpty(package.NetName))
                {
                    package.NetName = NameFixer.ToPascalCase(package.Name);
                }
                foreach (var sproc in package.StoredProcedures)
                {
                    PrepareStoredProcedureNames(sproc);
                }
            }
        }