private BuildAgentPool(BuildAgentPoolDto fullDto, TeamCityServer instance) : base(fullDto, instance) { this.Projects = new AsyncLazy <List <IProject> >(async() => { var tasks = this.Dto.Projects ?.Items ?.Select(project => Project.Create(project, false, Instance)); return(tasks != null ? (await Task.WhenAll(tasks).ConfigureAwait(false)).ToList() : new List <IProject>()); }); this.Agents = new AsyncLazy <List <IBuildAgent> >(async() => { var tasks = this.Dto.Agents ?.Items ?.Select(agent => BuildAgent.Create(agent.Id, Instance)); return(tasks != null ? (await Task.WhenAll(tasks).ConfigureAwait(false)).ToList() : new List <IBuildAgent>()); }); }
private Build(BuildDto fullDto, TeamCityServer instance) : base(fullDto, instance) { this.Changes = new AsyncLazy <List <IChange> >(async() => { var changes = await instance.Service.Changes( $"build:{IdString}", "change(id,version,username,user,date,comment,vcsRootInstance)").ConfigureAwait(false); var tasks = changes.Items ?.Select(dto => Change.Create(dto, true, instance)); return((await Task.WhenAll(tasks).ConfigureAwait(false)) .ToList() ?? throw new NullReferenceException()); }); this.SnapshotDependencies = new AsyncLazy <List <IBuild> >(async() => { var tasks = fullDto.SnapshotDependencies ?.Items ?.Select(dto => Build.Create(dto.Id, instance)); return(tasks != null ? (await Task.WhenAll(tasks).ConfigureAwait(false)) .ToList <IBuild>() : new List <IBuild>()); }); this.Agent = new AsyncLazy <IBuildAgent>(async() => (Dto.Agent?.Id == null) ? null : await BuildAgent.Create(Dto.Agent.Id, Instance).ConfigureAwait(false) ); }