public void PendingConnect() { InitConnection(); try { if (_conn.State != FdoConnectionState.Closed) { _conn.Close(); } _conn.ConnectionString = string.Format("{0}={1};{2}={3};{4}={5}", _view.ServiceParameter, _view.Service, _view.UsernameParameter, _view.Username, _view.PasswordParameter, _view.Password); if (_conn.Open() == FdoConnectionState.Pending) { List <DataStoreInfo> datastores = new List <DataStoreInfo>(); var cmds = _conn.Capability.GetArrayCapability(CapabilityType.FdoCapabilityType_CommandList); if (Array.IndexOf(cmds, CommandType.CommandType_ListDataStores) >= 0) { using (var svc = _conn.CreateFeatureService()) { var stores = svc.ListDataStores(false); foreach (var store in stores) { var ds = new DataStoreInfo( store.Name, store.Name + ((store.IsFdoEnabled) ? "" : " (*)"), store.IsFdoEnabled); datastores.Add(ds); } } } else { var prop = _conn.GetConnectTimeProperty(_view.DataStoreParameter) as EnumerableDictionaryProperty; if (prop != null) { foreach (string name in prop.Values) { datastores.Add(new DataStoreInfo(name, name, true)); } } } SetDataStore(datastores.ToArray()); } } catch (Exception ex) { _view.ShowError(ex.Message); } }
public void PendingConnect() { try { if (_conn.State != FdoConnectionState.Closed) { _conn.Close(); } _conn.ConnectionString = string.Format("Server={0};Instance={1};Username={2};Password={3}", _view.Server, _view.Instance, _view.Username, _view.Password); if (_conn.Open() == FdoConnectionState.Pending) { EnumerableDictionaryProperty prop = (EnumerableDictionaryProperty)_conn.GetConnectTimeProperty("DataStore"); SetDataStore(prop.Values); } } catch (Exception ex) { _view.ShowError(ex.Message); } }
public bool Connect() { if (string.IsNullOrEmpty(_view.ConnectionName)) { _view.FlagNameError("Required"); return(false); } FdoConnection conn = _manager.GetConnection(_view.ConnectionName); if (conn != null) { _view.FlagNameError("A connection named " + _view.ConnectionName + " already exists"); return(false); } FdoProviderInfo provider = _view.SelectedProvider; //string connStr = ExpressUtility.ConvertFromNameValueCollection(_view.ConnectProperties); NameValueCollection cp = new NameValueCollection(_view.ConnectProperties); if (_pendingProperties.Count > 0) { NameValueCollection extra = new NameValueCollection(); cp.Add(extra); } string connStr = ExpressUtility.ConvertFromNameValueCollection(cp); conn = new FdoConnection(provider.Name, connStr); if (FileService.FileExists(_view.ConfigFile)) { try { conn.SetConfiguration(_view.ConfigFile); } catch (Exception ex) { conn.Dispose(); _view.FlagConfigError(ex.Message); return(false); } } try { FdoConnectionState state = conn.Open(); if (state == FdoConnectionState.Open) { _manager.AddConnection(_view.ConnectionName, conn); return(true); } else if (state == FdoConnectionState.Pending) { //Re-query the pending parameters and re-prompt in a new dialog if (_pendingProperties.Count > 0) { List <DictionaryProperty> pend = new List <DictionaryProperty>(); foreach (DictionaryProperty p in _pendingProperties) { pend.Add(conn.GetConnectTimeProperty(p.Name)); } NameValueCollection extra = PendingParameterDialog.GetExtraParameters(pend); //Cancelled action if (extra == null) { return(false); } cp.Add(extra); conn.ConnectionString = ExpressUtility.ConvertFromNameValueCollection(cp); if (conn.Open() == FdoConnectionState.Open) { _manager.AddConnection(_view.ConnectionName, conn); return(true); } } } else { return(false); } } catch (Exception ex) { _view.ShowError(ex); conn.Dispose(); return(false); } return(false); }