public ConnectionGroupInfo GetGroup(long groupId) { ConnectionGroupRow groupRow = this._groupManager .GetGroupById(groupId); if (groupRow == null) { return(null); } ConnectionGroupInfo group = new ConnectionGroupInfo { Identity = groupId, Name = groupRow.Name, IsDirectConnection = groupRow.IsDirect }; group.Connections = GetGroupInstances(groupId); return(group); }
public ConnectionGroupRow GetGroupByName(string name) { string clause = string.Join(" AND ", Lists.Of( ConnectionGroupDirectory.NameFn.AsSqlClausePair(), ConnectionGroupDirectory.IsDirectConnectionFn.AsSqlClausePair() )); List <SQLiteParameter> parameters = Lists.Of( new SQLiteParameter(ConnectionGroupDirectory.NameFn, name), new SQLiteParameter(ConnectionGroupDirectory.IsDirectConnectionFn, true) ); ConnectionGroupRow row = this._storage.ConnectionGroupDirectory.GetRows( clause, parameters, 1 ) .Select(RowConverter.Convert <ConnectionGroupRow>) .FirstOrDefault(); return(row); }
public void UpdateGroupInstances(ConnectionGroupInfo group, string protocolType) { ConnectionGroupRow savedGroupRow = this._groupManager.GetGroupByName(group.Name); if (savedGroupRow == null) { return; } long id = savedGroupRow.Identity; List <ServerInstanceRow> savedRows = this._instanceManager .GetAllGroupInstances(id, protocolType); List <InstanceInfo> newInstances = group.Connections; foreach (ServerInstanceRow savedRow in savedRows) { InstanceInfo savedInstance = CreateFromRow(savedRow); bool exist = newInstances.Any(Predicates.MatchesTo(savedInstance)); if (savedRow.IsDeleted) { if (exist) { this._instanceManager.RestoreInstance(savedRow); } } else { if (!exist) { this._instanceManager.DeleteInstance(savedRow); } } } }