Example #1
0
        private async Task DeactivateProjectAsync(AccountConfiguration configuration, string projectId, bool force = false)
        {
            if (!configuration.IsActivated(projectId) && !force)
            {
                return;
            }

            if (configuration.HasActiveRepositories(projectId) && !force)
            {
                return;
            }

            var serviceFactory = _connectionFactory.CreateFactory(new Uri(configuration.BaseUrl),
                                                                  new VssBasicCredential(string.Empty, configuration.PersonalAccessToken));

            var client = await serviceFactory.GetClientAsync <ServiceHooksPublisherHttpClient>();

            var serviceHookIds = configuration.GetServiceHookIds(projectId);

            configuration.Deactivate(projectId);

            foreach (var serviceHookId in serviceHookIds)
            {
                try
                {
                    await client.DeleteSubscriptionAsync(new Guid(serviceHookId));
                }
                catch
                {
                    // TODO: log?
                }
            }

            await _configurationRepository.UpdateAsync(configuration);
        }
        public void ActivateStatusPolicy_NotActivated_ShouldReturnActivated()
        {
            var projectId        = Guid.NewGuid().ToString();
            var repositoryId     = Guid.NewGuid().ToString();
            var statusPolicyName = "TestPolic";

            var accountConfiguration = new AccountConfiguration();

            accountConfiguration.Activate(projectId, repositoryId, statusPolicyName);

            accountConfiguration.IsStatusPolicyEnabled(projectId, repositoryId, statusPolicyName).Should().BeTrue();
            accountConfiguration.HasActiveRepositories(projectId).Should().BeTrue();
        }
        public void HasActivateRepositories_StillOneActive_ShouldReturnTrue()
        {
            var projectId        = Guid.NewGuid().ToString();
            var repositoryId     = Guid.NewGuid().ToString();
            var statusPolicyName = "TestPolic";

            var accountConfiguration = new AccountConfiguration();

            accountConfiguration.Activate(projectId, repositoryId, statusPolicyName);
            accountConfiguration.Activate(projectId, repositoryId, statusPolicyName + "2");
            accountConfiguration.Deactivate(projectId, repositoryId, statusPolicyName);

            accountConfiguration.HasActiveRepositories(projectId).Should().BeTrue();
        }