Deveel.Data.Client.DeveelDbConnectionStringBuilder.SetValue C# (CSharp) Method

SetValue() private method

private SetValue ( string key, object value ) : void
key string
value object
return void
        private void SetValue(string key, object value)
        {
            if (key == null)
                throw new ArgumentNullException("key");

            key = MappKey(key);

            switch (key) {
                case HostKey: {
                        if (value == null) {
                            host = DefaultHost;
                            base.Remove(key);
                        } else {
                            Host = value.ToString();
                        }
                        break;
                    }
                case PortKey:
                    if (value == null) {
                        port = DefaultPort;
                        base.Remove(key);
                    } else {
                        Port = ToInt32(value);
                    }
                    break;
                case DatabaseKey:
                    if (value == null) {
                        database = DefaultDatabase;
                        base.Remove(key);
                    } else {
                        Database = value.ToString();
                    }
                    break;
                case SchemaKey:
                    if (value == null) {
                        schema = DefaultSchema;
                        base.Remove(key);
                    } else {
                        Schema = value.ToString();
                    }
                    break;
                case PathKey:
                    if (value == null) {
                        path = DefaultPath;
                        base.Remove(key);
                    } else {
                        Path = value.ToString();
                    }
                    break;
                case UserNameKey:
                    if (value == null) {
                        userName = DefaultUserName;
                        base.Remove(key);
                    } else {
                        UserName = value.ToString();
                    }
                    break;
                case PasswordKey:
                    if (value == null) {
                        password = DefaultPassword;
                        base.Remove(key);
                    } else {
                        Password = value.ToString();
                    }
                    break;
                case PersistSecurityInfoKey:
                    if (value == null) {
                        persistSecurityInfo = DefaultPersistSecurityInfo;
                        base.Remove(key);
                    } else {
                        PersistSecurityInfo = ToBoolean(value);
                    }
                    break;
                case VerboseColumnNamesKey:
                    if (value == null) {
                        verboseColumnNames = DefaultVerboseColumnName;
                        base.Remove(key);
                    } else {
                        VerboseColumnNames = ToBoolean(value);
                    }
                    break;
                case ParameterStyleKey:
                    if (value == null) {
                        paramStyle = DefaultParameterStyle;
                        base.Remove(key);
                    } else if (value is string) {
                        ParameterStyle = (QueryParameterStyle)Enum.Parse(typeof(QueryParameterStyle), (string)value, true);
                    } else if (value is int ||
                               value is QueryParameterStyle) {
                        ParameterStyle = (QueryParameterStyle)value;
                    }
                    break;
                case RowCacheSizeKey:
                    if (value == null) {
                        rowCacheSize = DefaultRowCacheSize;
                        base.Remove(key);
                    } else {
                        RowCacheSize = ToInt32(value);
                    }
                    break;
                case MaxCacheSizeKey:
                    if (value == null) {
                        maxCacheSize = DefaultMaxCacheSize;
                        base.Remove(key);
                    } else {
                        MaxCacheSize = ToInt32(value);
                    }
                    break;
                case QueryTimeoutKey:
                    if (value == null) {
                        queryTimeout = DefaultQueryTimeout;
                        base.Remove(key);
                    } else {
                        QueryTimeout = ToInt32(value);
                    }
                    break;
                case IgnoreIdentifiersCaseKey:
                    if (value == null) {
                        ignoreCase = DefaultIgnoreIdentifiersCase;
                        base.Remove(key);
                    } else {
                        IgnoreIdentifiersCase = ToBoolean(value);
                    }
                    break;
                case CreateKey:
                    if (value == null) {
                        create = DefaultCreate;
                        base.Remove(key);
                    } else {
                        Create = ToBoolean(value);
                    }
                    break;
                case BootOrCreateKey:
                    if (value == null) {
                        bootOrCreate = DefaultBootOrCreate;
                        base.Remove(key);
                    } else {
                        BootOrCreate = ToBoolean(value);
                    }
                    break;
                case StrictGetValueKey:
                    if (value == null) {
                        strictGetValue = DefaultStrictGetValue;
                        base.Remove(key);
                    } else {
                        StrictGetValue = ToBoolean(value);
                    }
                    break;
                case "DataSource":
                    if (value == null) {

                    } else {
                        string s = value.ToString();
                        int index = s.IndexOf(':');
                        if (index != -1) {
                            string sPort = s.Substring(index + 1);
                            Host = s.Substring(0, index);
                            Port = Int32.Parse(sPort);
                        } else {
                            Host = s;
                        }
                    }
                    break;
                case FetchSizeKey:
                    if (value == null) {
                        fetchSize = DefaultFetchSize;
                        base.Remove(FetchSizeKey);
                    } else {
                        FetchSize = ToInt32(value);
                    }
                    break;
                case MaxFetchSizeKey:
                    if (value == null) {
                        maxFetchSize = DefaultMaxFetchSize;
                        base.Remove(MaxFetchSizeKey);
                    } else {
                        MaxFetchSize = ToInt32(value);
                    }
                    break;
                case AutoCommitKey:
                    if (value == null) {
                        autoCommit = DefaultAutoCommit;
                        base.Remove(AutoCommitKey);
                    } else {
                        AutoCommit = ToBoolean(value);
                    }
                    break;
                case EnlistKey:
                    if (value == null) {
                        enlist = DefaultEnlist;
                        base.Remove(EnlistKey);
                    } else {
                        Enlist = ToBoolean(value);
                    }
                    break;
                default:
                    //TODO: support additional parameters for Boot/Create process...
                    throw new ArgumentException("Key '" + key + "' is not recognized.", "key");
            }
        }