Esempio n. 1
0
        public DbTypeBuilderResult Build(string name)
        {
            if (String.IsNullOrWhiteSpace(name))
            {
                return(null);
            }

            name = name.ToLowerInvariant().Trim().Replace(" ", "");
            var result = new DbTypeBuilderResult();

            var typeName = name;

            if (name.Contains("("))
            {
                typeName = name.Substring(0, name.IndexOf("("));
            }


            DbType value;

            if (!Enum.TryParse <DbType>(typeName, true, out value))
            {
                if (!TryParseEquivalent(typeName, out value))
                {
                    throw new ArgumentException(String.Format("Unknown type for database: {0}", typeName), "name");
                }
            }
            result.Value = value;

            if (CanDefinePrecision(value))
            {
                byte precison;
                if (TryDefinePrecision(name, out precison))
                {
                    result.Precision = precison;
                }
            }

            if (CanDefineSize(value))
            {
                int size;
                if (TryDefineSize(name, out size))
                {
                    result.Size = size;
                }
            }

            return(result);
        }
Esempio n. 2
0
        public DbTypeBuilderResult Build(string name)
        {
            if (String.IsNullOrWhiteSpace(name))
                return null;

            name = name.ToLowerInvariant().Trim().Replace(" ","");
            var result = new DbTypeBuilderResult();

            var typeName = name;
            if (name.Contains("("))
                typeName = name.Substring(0, name.IndexOf("("));

            DbType value;
            if (!Enum.TryParse<DbType>(typeName, true, out value))
            {
                if (!TryParseEquivalent(typeName, out value))
                {
                    throw new ArgumentException(String.Format("Unknown type for database: {0}", typeName), "name");
                }
            }
            result.Value = value;

            if (CanDefinePrecision(value))
            {
                byte precison;
                if (TryDefinePrecision(name, out precison))
                    result.Precision = precison;
            }

            if (CanDefineSize(value))
            {
                int size;
                if (TryDefineSize(name, out size))
                    result.Size = size;
            }

            return result;
        }