/// <inheritdoc/> public async Task <Profile> GetProfile(OAuthToken token) { token.ThrowIfNull(nameof(token)); using (var client = await this.ConnectAsync <ProfileHttpClient>(token)) { return(await client.GetProfileAsync(new ProfileQueryContext(AttributesScope.Core))); } }
/// <inheritdoc/> public async Task <IList <Account> > GetAccounts(OAuthToken token, Guid memberId) { token.ThrowIfNull(nameof(token)); using (var client = await this.ConnectAsync <AccountHttpClient>(token)) { return(await client.GetAccountsByMemberAsync(memberId)); } }
/// <inheritdoc /> public async Task <IList <TeamFoundation.Services.WebApi.Subscription> > GetSubscriptions(string account, OAuthToken token) { account.ThrowIfNullOrWhiteSpace(nameof(account)); token.ThrowIfNull(nameof(token)); using (var client = await this.ConnectAsync <ServiceHooksHttpClient>(token, account)) { return(await client.GetSubscriptionsAsync()); } }
/// <inheritdoc /> public async Task DeleteSubscription(string account, Guid subscriptionId, OAuthToken token) { account.ThrowIfNull(nameof(account)); token.ThrowIfNull(nameof(token)); using (var client = await this.ConnectAsync <ServiceHooksHttpClient>(token, account)) { await client.DeleteSubscriptionAsync(subscriptionId); } }
/// <inheritdoc /> public async Task <IList <ReleaseDefinition> > GetReleaseDefinitionsAsync(string account, string teamProject, OAuthToken token) { account.ThrowIfNullOrWhiteSpace(nameof(account)); teamProject.ThrowIfNullOrWhiteSpace(nameof(teamProject)); token.ThrowIfNull(nameof(token)); using (var client = await this.ConnectAsync <ReleaseHttpClient2>(token, account)) { return(await client.GetReleaseDefinitionsAsync(teamProject)); } }
/// <inheritdoc/> public async Task <IList <BuildDefinitionReference> > GetBuildDefinitionsAsync(string account, string teamProject, OAuthToken token) { account.ThrowIfNullOrWhiteSpace(nameof(account)); teamProject.ThrowIfNullOrWhiteSpace(nameof(teamProject)); token.ThrowIfNull(nameof(token)); using (var client = await this.ConnectAsync <BuildHttpClient>(token, account)) { return(await client.GetDefinitionsAsync(teamProject, name : null)); } }
/// <inheritdoc /> public async Task <Release> GetReleaseAsync(string account, string teamProject, int id, OAuthToken token) { account.ThrowIfNullOrWhiteSpace(nameof(account)); teamProject.ThrowIfNullOrWhiteSpace(nameof(teamProject)); id.ThrowIfSmallerOrEqual(nameof(id)); token.ThrowIfNull(nameof(token)); using (var client = await this.ConnectAsync <ReleaseHttpClient2>(token, account)) { return(await client.GetReleaseAsync(teamProject, id)); } }
/// <inheritdoc /> public async Task <IList <TeamProjectReference> > GetProjects(string account, OAuthToken token) { account.ThrowIfNullOrWhiteSpace(nameof(account)); token.ThrowIfNull(nameof(token)); using (var client = await this.ConnectAsync <ProjectHttpClient>(token, account)) { var results = await client.GetProjects(); return(results.ToList()); } }
/// <inheritdoc /> public async Task <Release> CreateReleaseAsync(string account, string teamProject, int definitionId, OAuthToken token) { account.ThrowIfNullOrWhiteSpace(nameof(account)); teamProject.ThrowIfNullOrWhiteSpace(nameof(teamProject)); definitionId.ThrowIfSmallerOrEqual(nameof(definitionId)); token.ThrowIfNull(nameof(token)); ReleaseDefinition definition; using (var client = await this.ConnectAsync <ReleaseHttpClient2>(token, account)) { definition = await client.GetReleaseDefinitionAsync(teamProject, definitionId); } var metadatas = new List <ArtifactMetadata>(); using (var client = await this.ConnectAsync <BuildHttpClient>(token, account)) { foreach (var artifact in definition.Artifacts.Where(a => string.Equals(a.Type, ArtifactTypes.BuildArtifactType, StringComparison.OrdinalIgnoreCase))) { var definitions = new List <int> { Convert.ToInt32(artifact.DefinitionReference["definition"].Id) }; var builds = await client.GetBuildsAsync2(teamProject, definitions); var build = builds.OrderByDescending(b => b.LastChangedDate).FirstOrDefault(); if (build == null) { continue; } var metadata = new ArtifactMetadata { Alias = artifact.Alias, InstanceReference = new BuildVersion { Id = build.Id.ToString() } }; metadatas.Add(metadata); } } using (var client = await this.ConnectAsync <ReleaseHttpClient2>(token, account)) { var metaData = new ReleaseStartMetadata { DefinitionId = definitionId, Artifacts = metadatas }; return(await client.CreateReleaseAsync(metaData, teamProject)); } }
/// <inheritdoc /> public async Task <TeamFoundation.Services.WebApi.Subscription> CreateSubscription(string account, TeamFoundation.Services.WebApi.Subscription subscription, OAuthToken token) { account.ThrowIfNull(nameof(account)); subscription.ThrowIfNull(nameof(subscription)); token.ThrowIfNull(nameof(token)); var isRm = subscription.PublisherId.Equals("RM", StringComparison.OrdinalIgnoreCase); using (var client = await this.ConnectAsync <ServiceHooksHttpClient>(token, account, isRm)) { return(await client.CreateSubscriptionAsync(subscription)); } }
/// <inheritdoc /> public async Task <Build> QueueBuildAsync(string account, string teamProject, int definitionId, OAuthToken token) { account.ThrowIfNullOrWhiteSpace(nameof(account)); teamProject.ThrowIfNullOrWhiteSpace(nameof(teamProject)); definitionId.ThrowIfSmallerOrEqual(nameof(definitionId)); token.ThrowIfNull(nameof(token)); using (var client = await this.ConnectAsync <BuildHttpClient>(token, account)) { var build = new Build { Definition = new BuildDefinitionReference { Id = definitionId } }; return(await client.QueueBuildAsync(build, teamProject)); } }