diff --git a/src/TeamCitySharp/ActionTypes/Builds.cs b/src/TeamCitySharp/ActionTypes/Builds.cs index 4c52f340..1a0a316b 100644 --- a/src/TeamCitySharp/ActionTypes/Builds.cs +++ b/src/TeamCitySharp/ActionTypes/Builds.cs @@ -34,7 +34,14 @@ public Build LastBuildByAgent(string agentName) )).SingleOrDefault(); } - public void Add2QueueBuildByBuildConfigId(string buildConfigId) + public Build ById(string buildId) + { + var build = _caller.GetFormat("/app/rest/builds/id:{0}", buildId); + + return build; + } + + public void Add2QueueBuildByBuildConfigId(string buildConfigId) { _caller.GetFormat("/action.html?add2Queue={0}", buildConfigId); } diff --git a/src/TeamCitySharp/ActionTypes/IBuilds.cs b/src/TeamCitySharp/ActionTypes/IBuilds.cs index 6afba988..8f166190 100644 --- a/src/TeamCitySharp/ActionTypes/IBuilds.cs +++ b/src/TeamCitySharp/ActionTypes/IBuilds.cs @@ -23,6 +23,7 @@ public interface IBuilds List NonSuccessfulBuildsForUser(string userName); List ByBranch(string branchName); Build LastBuildByAgent(string agentName); + Build ById(string buildId); void Add2QueueBuildByBuildConfigId(string buildConfigId); } } \ No newline at end of file diff --git a/src/TeamCitySharp/DomainEntities/Agent.cs b/src/TeamCitySharp/DomainEntities/Agent.cs index ea811e2e..7b10e468 100644 --- a/src/TeamCitySharp/DomainEntities/Agent.cs +++ b/src/TeamCitySharp/DomainEntities/Agent.cs @@ -11,5 +11,14 @@ public override string ToString() { return Name; } + + public override bool Equals(object obj) + { + return Name.Equals(((Agent)obj).Name); + } + public override int GetHashCode() + { + return Name.GetHashCode(); + } } } diff --git a/src/TeamCitySharp/TeamCityClient.cs b/src/TeamCitySharp/TeamCityClient.cs index eeb9bb82..2fd7171c 100644 --- a/src/TeamCitySharp/TeamCityClient.cs +++ b/src/TeamCitySharp/TeamCityClient.cs @@ -1,5 +1,8 @@ -using TeamCitySharp.ActionTypes; +using System; +using System.IO; +using TeamCitySharp.ActionTypes; using TeamCitySharp.Connection; +using TeamCitySharp.DomainEntities; namespace TeamCitySharp { @@ -80,5 +83,14 @@ public IBuildArtifacts Artifacts { get { return _artifacts ?? (_artifacts = new BuildArtifacts(_caller)); } } + + /// + /// + /// + public void DownloadTestsCsv(Action downloadHandler, Build build) + { + string uriPart = string.Format("/get/tests/buildId/{0}", build.Id); + _caller.GetDownloadFormat(downloadHandler, uriPart); + } } }