System.Data.Entity.Internal.LazyInternalContext.StripInvalidCharacters C# (CSharp) Method

StripInvalidCharacters() private static method

private static StripInvalidCharacters ( string value ) : string
value string
return string
        private static string StripInvalidCharacters(string value)
        {
            if (String.IsNullOrWhiteSpace(value))
            {
                // The case where the value is null or whitespace is treated as a special case
                // of a string with no invalid characters and hence the consistent return type
                // for other input of this type is to return the empty string.
                return String.Empty;
            }

            var builder = new StringBuilder(value.Length);
            var nextMustBeStartChar = true;
            foreach (var c in value)
            {
                if (c == '.')
                {
                    if (!nextMustBeStartChar)
                    {
                        builder.Append(c);
                    }
                    continue;
                }

                switch (Char.GetUnicodeCategory(c))
                {
                    case UnicodeCategory.UppercaseLetter:
                    case UnicodeCategory.LowercaseLetter:
                    case UnicodeCategory.TitlecaseLetter:
                    case UnicodeCategory.ModifierLetter:
                    case UnicodeCategory.OtherLetter:
                    case UnicodeCategory.LetterNumber:
                        {
                            nextMustBeStartChar = false;
                            builder.Append(c);
                            break;
                        }
                    case UnicodeCategory.NonSpacingMark:
                    case UnicodeCategory.SpacingCombiningMark:
                    case UnicodeCategory.DecimalDigitNumber:
                    case UnicodeCategory.ConnectorPunctuation:
                        if (!nextMustBeStartChar)
                        {
                            builder.Append(c);
                        }
                        break;
                }
            }
            return builder.ToString();
        }

Usage Example

Exemplo n.º 1
0
        public DbModelBuilder CreateModelBuilder()
        {
            DbModelBuilderVersionAttribute versionAttribute = this._attributeProvider.GetAttributes(this.Owner.GetType()).OfType <DbModelBuilderVersionAttribute>().FirstOrDefault <DbModelBuilderVersionAttribute>();
            DbModelBuilder modelBuilder   = new DbModelBuilder(versionAttribute != null ? versionAttribute.Version : DbModelBuilderVersion.Latest);
            string         modelNamespace = LazyInternalContext.StripInvalidCharacters(this.Owner.GetType().Namespace);

            if (!string.IsNullOrWhiteSpace(modelNamespace))
            {
                modelBuilder.Conventions.Add((IConvention) new ModelNamespaceConvention(modelNamespace));
            }
            string containerName = LazyInternalContext.StripInvalidCharacters(this.Owner.GetType().Name);

            if (!string.IsNullOrWhiteSpace(containerName))
            {
                modelBuilder.Conventions.Add((IConvention) new ModelContainerConvention(containerName));
            }
            new DbSetDiscoveryService(this.Owner).RegisterSets(modelBuilder);
            this.Owner.CallOnModelCreating(modelBuilder);
            if (this.OnModelCreating != null)
            {
                this.OnModelCreating(modelBuilder);
            }
            return(modelBuilder);
        }