private async Task Connect(T settings) { try { var provider = _buildProviderStrategy.Create(settings); var projects = await provider.GetProjectsAsync(CancellationToken.None).ConfigureAwait(false); Settings.IsDirty = false; Settings.TrackedProjects = _trackedProjectsFactory.Create(projects.OrderBy(project => project.Name).Select(project => _trackedProjectFactory.Create(project.Id, project.Name, _currentSettings.TrackedProjects.Contains(project.Id))).ToArray()); HasConnected = true; } catch (Exception ex) { _logService.Log(GetType(), new LogEntry(LogEntryType.Error, "An error occurred while editing connection.", ex)); HasConnected = false; throw; } }
private IBuildProvider GetProvider() { return(_provider ?? (_provider = _buildProviderStrategy.Create(Settings))); }