Пример #1
0
 public ProjectDefinition()
 {
     ProjectName       = "Project1";
     LastGeneration    = DateTime.MinValue;
     GenerationPath    = "";
     DbSettions        = new ProjectDbSettions();
     CodeGenSettings   = new ProjectCodeGenSettings();
     RenamingOptions   = new ProjectRenaming();
     _generatorVersion = 2.1f;
 }
 public ProjectDefinaton()
 {
     ProjectName = "Project1";
     LastGeneration = DateTime.MinValue;
     GenerationPath = "";
     DbSettions = new ProjectDbSettions();
     CodeGenSettings = new ProjectCodeGenSettings();
     RenamingOptions = new ProjectRenaming();
     _generatorVersion = 2.0f;
 }
        /// <summary>
        /// 
        /// </summary>
        internal static string NaturalizeNames_RenamingOptions(string name, ProjectRenaming opt, bool isTable, bool isProp)
        {
            if (string.IsNullOrWhiteSpace(name))
                return name;

            var underlineSplit = name.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries);

            bool shoulRemoveUnderline = false;
            if (opt.RemoveUnderline.Enabled)
            {
                if ((isTable && opt.RemoveUnderline.Tables) ||
                    (isProp && opt.RemoveUnderline.Properties))
                {
                    shoulRemoveUnderline = true;
                }
            }

            if (opt.CaseChange.Enabled)
            {
                switch (opt.CaseChangeMode)
                {
                    case ProjectRenaming.CaseChangeType.Capitalize:

                        var resultCapt = new List<string>();
                        if (opt.UnderlineWordDelimiter)
                        {
                            // deliminination

                            foreach (string match in underlineSplit)
                            {
                                var value = match;
                                if (!string.IsNullOrWhiteSpace(value))
                                {
                                    // first letter of each part
                                    var fc = value[0];
                                    var fother = value.Substring(1, value.Length - 1);
                                    value = fc.ToString().ToUpper() + fother.ToLower();

                                    resultCapt.Add(value);
                                }
                            }

                            // join the result according to underlines
                            if (shoulRemoveUnderline)
                                name = string.Concat(resultCapt.ToArray());
                            else
                                name = string.Join("_", resultCapt.ToArray());
                        }
                        else
                        {
                            if (shoulRemoveUnderline)
                                name = string.Concat(underlineSplit);
                            else
                                name = string.Join("_", underlineSplit);

                            // only first word is upper case
                            var fc = name[0];
                            var fother = name.Substring(1, name.Length - 1);
                            name = fc.ToString().ToUpper() + fother.ToLower();
                        }

                        break;

                    case ProjectRenaming.CaseChangeType.CamelCase:
                        var resultCamel = new List<string>();

                        foreach (string match in underlineSplit)
                        {
                            var value = match;
                            if (!string.IsNullOrWhiteSpace(value))
                            {
                                // first letter of each part
                                var fc = value[0];
                                var fother = value.Substring(1, value.Length - 1);
                                value = fc.ToString().ToUpper() + fother;

                                resultCamel.Add(value);
                            }
                        }

                        if (resultCamel.Count > 0)
                        {
                            // first part is lower case
                            resultCamel[0] = resultCamel[0].ToLower();
                        }

                        // join the result according to underlines
                        if (shoulRemoveUnderline)
                            name = string.Concat(resultCamel.ToArray());
                        else
                            name = string.Join("_", resultCamel.ToArray());

                        break;

                    case ProjectRenaming.CaseChangeType.PascalCase:
                        var resultPascal = new List<string>();
                        if (opt.UnderlineWordDelimiter)
                        {
                            // deliminination

                            foreach (string match in underlineSplit)
                            {
                                var value = match;
                                if (!string.IsNullOrWhiteSpace(value))
                                {
                                    // first letter of each part
                                    var fc = value[0];
                                    var fother = value.Substring(1, value.Length - 1);
                                    value = fc.ToString().ToUpper() + fother;

                                    resultPascal.Add(value);
                                }
                            }

                            // join the result according to underlines
                            if (shoulRemoveUnderline)
                                name = string.Concat(resultPascal.ToArray());
                            else
                                name = string.Join("_", resultPascal.ToArray());
                        }
                        else
                        {
                            if (shoulRemoveUnderline)
                                name = string.Concat(underlineSplit);
                            else
                                name = string.Join("_", underlineSplit);

                            // only first word is upper case
                            var fc = name[0];
                            var fother = name.Substring(1, name.Length - 1);
                            name = fc.ToString().ToUpper() + fother;
                        }
                        break;

                    case ProjectRenaming.CaseChangeType.Lower:
                        if (shoulRemoveUnderline)
                            name = string.Concat(underlineSplit);
                        else
                            name = string.Join("_", underlineSplit);
                        name = name.ToLower();
                        break;

                    case ProjectRenaming.CaseChangeType.Upper:
                        if (shoulRemoveUnderline)
                            name = string.Concat(underlineSplit);
                        else
                            name = string.Join("_", underlineSplit);
                        name = name.ToUpper();
                        break;
                }
            }

            return name;
        }