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(); }