public Task <dynamic> Build(string buildId) { var cached = m_Cache.Get(buildId); if (cached == null) { m_Cache.Set(buildId, m_Underlying.Build(buildId)); } return(m_Cache.Get(buildId)); }
public async Task <TeamcityRevisionForBuild> RevisionForBuild(string buildId) { if (m_Cache.Get(buildId) != null) { return(m_Cache.Get(buildId)); } var build = await m_Api.Build(buildId); var repo = GetRepo(build); var user = GetUser(build); if (build.revisions.revision != null) { foreach (var revision in build.revisions.revision) { if (revision["vcs-root-instance"]["vcs-root-id"] == "SqlCompareDataCompareStaging_GitHubAutocrlfParameterised") { var result = new TeamcityRevisionForBuild(buildId, user, repo, revision.version); m_Cache.Set(buildId, result); return(result); } } } if (build["snapshot-dependencies"] != null && build["snapshot-dependencies"].build != null) { foreach (var dependency in build["snapshot-dependencies"].build) { var revisionFromDependency = await RevisionForBuild(dependency.id.ToString()); if (revisionFromDependency != null) { return(revisionFromDependency); } } } return(null); }