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;
                }
            }
        }