private void DeleteGroup(ConnectionGroupViewModel obj) { var isSelected = obj == SelectedObject; int index = 0; if (isSelected) { index = ConnectionGroupViewModels.IndexOf(obj); } ConnectionGroupViewModels.Remove(obj); if (isSelected) { if (ConnectionGroupViewModels.Count == index) { index--; } if (index >= 0) { SelectedObject = ConnectionGroupViewModels[index]; } else { SelectedObject = null; } } }
private void SaveProject() { var groups = ConnectionGroupViewModels.Select(vm => vm.Source).ToList(); var repoReader = new NewRepositoryReader(_knownConnections); repoReader.Save(ConnectionsFile, groups); repoReader.SaveProfiles(ProfilesFile, _knownConnections._knownConnectionProfiles); }
private void DeleteConnection(ConnectionDescriptionViewModel obj) { var pair = ConnectionGroupViewModels .SelectMany(g => g.ConnectionViewModels.Select(c => new { Group = g, Connection = c })) .Where(anon => anon.Connection == obj) .FirstOrDefault(); if (pair == null) { return; } obj.Source.Profile = null; var isSelected = obj == SelectedObject; int index = 0; if (isSelected) { index = pair.Group.ConnectionViewModels.IndexOf(obj); } pair.Group.RemoveConnection(pair.Connection); if (isSelected) { if (pair.Group.ConnectionViewModels.Count == index) { index--; } if (index >= 0) { SelectedObject = pair.Group.ConnectionViewModels[index]; } else { SelectedObject = pair.Group; } } }