public void Initialize([NotNull] IThreatModel model)
        {
            _configuration = new ExtensionConfigurationManager(model, (new ConfigurationPanelFactory()).GetExtensionId());

            _enableEffortSupport.Checked  = _configuration.EnableEffort;
            _normalizationReference.Value = _configuration.NormalizationReference;
        }
Example #2
0
        private void DevOpsManagerOnRefreshDone([NotNull] IThreatModel model, int count)
        {
            var  configManager = new ExtensionConfigurationManager(model, (new AutoConnector()).GetExtensionId());
            bool show;

            switch (configManager.NotificationStrategy)
            {
            case NotificationType.SuccessOnly:
                show = count > 0;
                break;

            case NotificationType.Full:
                show = true;
                break;

            default:
                show = false;
                break;
            }

            if (show)
            {
                ShowMessage?.Invoke($"DevOps Updater has detected {count} update(s).");
            }
        }
        public async void Process(IThreatModel model)
        {
            Connect.ChangeDisconnectButtonStatus(null, false);

            var schemaManager = new DevOpsConfigPropertySchemaManager(model);
            var connector     = schemaManager.GetDevOpsConnector(out var url, out var project);

            if (connector != null && !string.IsNullOrWhiteSpace(url) && !string.IsNullOrWhiteSpace(project))
            {
                try
                {
                    var tokenManager = new SecretsManager();
                    var token        = tokenManager.GetSecret(url);
                    if (!string.IsNullOrWhiteSpace(token))
                    {
                        connector.Connect(url, token);
                        var projects = (await connector.GetProjectsAsync())?.ToArray();
                        if (projects?.Contains(project) ?? false)
                        {
                            if (connector.OpenProject(project))
                            {
                                DevOpsManager.Register(connector, model);
                                Connect.ChangeDisconnectButtonStatus(connector, true);

                                var configManager = new ExtensionConfigurationManager(model, this.GetExtensionId());
                                configManager.Apply();

                                await DevOpsManager.UpdateAsync(model);
                            }
                        }
                        else
                        {
                            connector.Disconnect();
                            ShowWarning?.Invoke(
                                "DevOps system cannot be automatically connected due to an internal error.");
                        }
                    }
                    else
                    {
                        ShowWarning?.Invoke(
                            "DevOps system cannot be automatically connected because no Personal Access Token has been found.");
                    }
                }
                catch (Exception exc)
                {
                    ShowWarning?.Invoke($@"DevOps system cannot be automatically connected due to the following error: {exc.Message}. Everything else should be unaffected.");
                }
            }
        }
        public void Initialize([NotNull] IThreatModel model)
        {
            _configuration = new ExtensionConfigurationManager(model, (new AutoConnector()).GetExtensionId());

            _scheduledRefresh.Checked = _configuration.ScheduledRefreshes;
            _interval.Value           = _configuration.RefreshInterval;
            switch (_configuration.NotificationStrategy)
            {
            case NotificationType.SuccessOnly:
                _raiseSomeEvents.Checked = true;
                break;

            case NotificationType.Full:
                _raiseAllEvents.Checked = true;
                break;

            default:
                _raiseNoEvents.Checked = true;
                break;
            }
        }
Example #5
0
        public void Process([NotNull] IThreatModel model)
        {
            var schemaManager = new DevOpsConfigPropertySchemaManager(model);
            var connector     = schemaManager.GetDevOpsConnector(out var url, out var project);

            if (connector != null && !string.IsNullOrWhiteSpace(url) && !string.IsNullOrWhiteSpace(project))
            {
                var projects = connector.Connect(url);
                if (projects.Contains(project))
                {
                    if (connector.OpenProject(project))
                    {
                        DevOpsManager.Register(connector, model);
                        Connect.ChangeDisconnectButtonStatus(connector, true);

                        var configManager = new ExtensionConfigurationManager(model, this.GetExtensionId());
                        configManager.Apply();
                    }
                }
            }
        }