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); }
private async Task ActivateProjectAsync(AccountConfiguration configuration, string projectId, bool force = false) { if (configuration.IsActivated(projectId) && !force) { return; } var serviceFactory = _connectionFactory.CreateFactory(new Uri(configuration.BaseUrl), new VssBasicCredential(string.Empty, configuration.PersonalAccessToken)); var client = await serviceFactory.GetClientAsync <ServiceHooksPublisherHttpClient>(); var token = Guid.NewGuid().ToString(); var pullRequestCreatedSubscription = await client.CreateSubscriptionAsync(CreateSubscription(projectId, token, "git.pullrequest.created")); var pullRequestUpdatedSubscription = await client.CreateSubscriptionAsync(CreateSubscription(projectId, token, "git.pullrequest.updated")); configuration.Activate(projectId, token, new[] { pullRequestCreatedSubscription.Id.ToString(), pullRequestUpdatedSubscription.Id.ToString() }); await _configurationRepository.UpdateAsync(configuration); }
public void Constructor_NotActivated_ShouldReturnNotActivated() { var projectId = Guid.NewGuid().ToString(); var accountConfiguration = new AccountConfiguration(); accountConfiguration.IsActivated(projectId).Should().BeFalse(); accountConfiguration.GetServiceHookIds(projectId).Should().BeEmpty(); }
public void DeactivateProject_NotActivated_ShouldReturnNotActivated() { var projectId = Guid.NewGuid().ToString(); var accountConfiguration = new AccountConfiguration(); accountConfiguration.Deactivate(projectId); accountConfiguration.IsActivated(projectId).Should().BeFalse(); }
public void ActivateProject_NotActivated_ShouldActivateProjectAndReturnsServiceHookIds() { var projectId = Guid.NewGuid().ToString(); var serviceHookIds = new[] { Guid.NewGuid().ToString(), Guid.NewGuid().ToString() }; var accountConfiguration = new AccountConfiguration(); accountConfiguration.Activate(projectId, new Guid().ToString(), serviceHookIds); accountConfiguration.IsActivated(projectId).Should().BeTrue(); accountConfiguration.GetServiceHookIds(projectId).Should().Contain(serviceHookIds); }
public void DeactivateProject_Activated_ShouldDeactivateProjectAndNotReturnsServiceHookIds() { var projectId = Guid.NewGuid().ToString(); var serviceHookIds = new[] { Guid.NewGuid().ToString(), Guid.NewGuid().ToString() }; var accountConfiguration = new AccountConfiguration(); accountConfiguration.Activate(projectId, new Guid().ToString(), serviceHookIds); accountConfiguration.Deactivate(projectId); accountConfiguration.IsActivated(projectId).Should().BeFalse(); accountConfiguration.GetServiceHookIds(projectId).Should().BeEmpty(); }