private async Task <IBuildServerAdapter> GetBuildServerAdapterAsync() { await TaskScheduler.Default; var buildServerSettings = _module().EffectiveSettings.BuildServer; if (!buildServerSettings.EnableIntegration.Value) { return(null); } var buildServerType = buildServerSettings.Type.Value; if (string.IsNullOrEmpty(buildServerType)) { return(null); } var exports = ManagedExtensibility.GetExports <IBuildServerAdapter, IBuildServerTypeMetadata>(); var export = exports.SingleOrDefault(x => x.Metadata.BuildServerType == buildServerType); if (export is not null) { try { var canBeLoaded = export.Metadata.CanBeLoaded; if (!string.IsNullOrEmpty(canBeLoaded)) { Debug.Write(export.Metadata.BuildServerType + " adapter could not be loaded: " + canBeLoaded); return(null); } var buildServerAdapter = export.Value; buildServerAdapter.Initialize(this, buildServerSettings.TypeSettings, () => { // To run the `StartSettingsDialog()` in the UI Thread _revisionGrid.Invoke((Action)(() => { _revisionGrid.UICommands.StartSettingsDialog(typeof(BuildServerIntegrationSettingsPage)); })); }, objectId => _revisionGrid.GetRevision(objectId) is not null); return(buildServerAdapter); } catch (InvalidOperationException ex) { Debug.Write(ex); // Invalid arguments, do not return a build server adapter } } return(null); }
private bool TryGetSelectedRevision(out GitRevision selectedRevision) { var blameCommit = GetBlameCommit(); if (blameCommit is null) { selectedRevision = null; return(false); } selectedRevision = _revGrid?.GetRevision(blameCommit.ObjectId); return(selectedRevision is not null); }
private string DescribeRevision([CanBeNull] ObjectId objectId, int maxLength = 0) { if (objectId == null) { // No parent at all, present as working directory return(ResourceManager.Strings.Workspace); } var revision = _revisionGrid.GetRevision(objectId); if (revision == null) { return(objectId.ToShortString()); } return(_revisionGrid.DescribeRevision(revision, maxLength)); }
private async Task <IBuildServerAdapter> GetBuildServerAdapterAsync() { await TaskScheduler.Default; var buildServerSettings = _module().EffectiveSettings.BuildServer; if (!buildServerSettings.EnableIntegration.ValueOrDefault) { return(null); } var buildServerType = buildServerSettings.Type.ValueOrDefault; if (string.IsNullOrEmpty(buildServerType)) { return(null); } var exports = ManagedExtensibility.GetExports <IBuildServerAdapter, IBuildServerTypeMetadata>(); var export = exports.SingleOrDefault(x => x.Metadata.BuildServerType == buildServerType); if (export != null) { try { var canBeLoaded = export.Metadata.CanBeLoaded; if (!canBeLoaded.IsNullOrEmpty()) { Debug.Write(export.Metadata.BuildServerType + " adapter could not be loaded: " + canBeLoaded); return(null); } var buildServerAdapter = export.Value; buildServerAdapter.Initialize(this, buildServerSettings.TypeSettings, objectId => _revisionGrid.GetRevision(objectId) != null); return(buildServerAdapter); } catch (InvalidOperationException ex) { Debug.Write(ex); // Invalid arguments, do not return a build server adapter } } return(null); }