public void Remove(Guid environmentId) { var index = Servers.IndexOf(Servers.FirstOrDefault(s => s.EnvironmentModel.ID == environmentId)); if (index != -1) { var selectedServer = Servers[index]; if (selectedServer.IsConnected) { Disconnect(selectedServer.EnvironmentModel); } _studioResourceRepository.RemoveEnvironment(environmentId); if (ConnectedServerChanged != null) { var localhost = Servers.FirstOrDefault(s => s.EnvironmentModel.IsLocalHost); Guid localhostId = localhost == null ? Guid.Empty : localhost.EnvironmentModel.ID; ConnectedServerChanged(this, new ConnectedServerChangedEvent(localhostId)); } } }