public Connection(int id, ConnectionData data) { this.id = id; // prirad datovy kontejner a prihlas se k odberu jeho udalosti this.data = data; data.ConnectionInvalidated += connectionDataInvalidatedHandler; }
public EConnectionSaveCode AddConnection(ConnectionData data) { EConnectionSaveCode saveCode; string connName = data.Name; // jmeno spojeni musi byt unikatni if (connectionNames.ContainsKey(connName)) { return EConnectionSaveCode.DuplicateConnectionName; } // spojeni musi byt validni if ((saveCode = data.ValidateConnectionData()) != EConnectionSaveCode.Ok) return saveCode; // ziskej nove id int nextId = getNextConnectionId(); //klonuj ConnectionData clone = data.Clone() as ConnectionData; // pridej do slovniku connections.Add(nextId, clone); connectionNames.Add(connName, clone); // vytvor handle a ohlas jej Connection handle = new Connection(nextId, clone); ConnectionAdded(new ConnectionAddedEventArgs() { Connection = handle, Source = EConnectionOperationSource.ConnectionManagerDialog }); return EConnectionSaveCode.Ok; }
void connectionDataInvalidatedHandler() { // uloz pro ucely zpracovani vyjimek name = data.Name; // nuluj odkaz na data data = null; }
public object Clone() { ConnectionData clone = new ConnectionData(); clone.Name = Name; clone.UserName = UserName; clone.OsAuthentication = OsAuthentication; clone.NamingMethod = NamingMethod; switch (NamingMethod) { case ENamingMethod.ConnectDescriptor: clone.Server = Server; clone.Port = Port; if (clone.UsingSid = UsingSid) { clone.Sid = Sid; } else { clone.ServiceName = ServiceName; clone.InstanceName = InstanceName; } clone.ServerType = ServerType; break; case ENamingMethod.TnsServiceName: clone.TnsServiceName = TnsServiceName; break; case ENamingMethod.Ldap: clone.LdapServiceName = LdapServiceName; clone.LdapServer = LdapServer; clone.LdapPort = LdapPort; clone.LdapContext = LdapContext; break; } // advanced connection string options clone.Pooling = Pooling; clone.MinPoolSize = MinPoolSize; clone.MaxPoolSize = MaxPoolSize; clone.IncrPoolSize = IncrPoolSize; clone.DecrPoolSize = DecrPoolSize; clone.ConnectionLifetime = ConnectionLifetime; clone.ConnectionTimeout = ConnectionTimeout; clone.ProxyUserId = ProxyUserId; clone.ProxyUserPassword = ProxyUserPassword; return clone; }