Skip to content
This repository was archived by the owner on Feb 12, 2019. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions src/TeamCitySharp/ActionTypes/BuildDetails.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using System.Linq;
using System.Collections.Generic;
using TeamCitySharp.Connection;
using TeamCitySharp.DomainEntities;
using TeamCitySharp.Locators;

namespace TeamCitySharp.ActionTypes
{
internal class BuildDetails : IBuildDetails
{
private readonly TeamCityCaller _caller;

internal BuildDetails(TeamCityCaller caller)
{
_caller = caller;
}

public Build ByBuildLocator(BuildLocator locator)
{
var buildWrapper = _caller.GetFormat<BuildWrapper>("/app/rest/builds/{0}", locator);

return buildWrapper.Build == null ? null : buildWrapper.Build.FirstOrDefault();
}
}
}
14 changes: 14 additions & 0 deletions src/TeamCitySharp/ActionTypes/Changes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using System.Linq;
using TeamCitySharp.Connection;
using TeamCitySharp.DomainEntities;
using TeamCitySharp.Locators;

namespace TeamCitySharp.ActionTypes
{
Expand Down Expand Up @@ -42,5 +43,18 @@ public Change LastChangeDetailByBuildConfigId(string buildConfigId)
return changes.FirstOrDefault();
}

public List<Change> ByBuildLocator(BuildLocator buildLocator)
{
var changeWrapper = _caller.GetFormat<ChangeWrapper>("/app/rest/changes?build={0}", buildLocator);

if (changeWrapper.Change == null)
{
return new List<Change>();
}

return changeWrapper.Change
.Select(c => _caller.GetFormat<Change>("/app/rest/changes/id:{0}", c.Id))
.ToList();
}
}
}
12 changes: 12 additions & 0 deletions src/TeamCitySharp/ActionTypes/IBuildDetails.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using System.Linq;
using System.Collections.Generic;
using TeamCitySharp.DomainEntities;
using TeamCitySharp.Locators;

namespace TeamCitySharp.ActionTypes
{
public interface IBuildDetails
{
Build ByBuildLocator(BuildLocator locator);
}
}
2 changes: 2 additions & 0 deletions src/TeamCitySharp/ActionTypes/IChanges.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using TeamCitySharp.DomainEntities;
using TeamCitySharp.Locators;

namespace TeamCitySharp.ActionTypes
{
Expand All @@ -9,5 +10,6 @@ public interface IChanges
Change ByChangeId(string id);
Change LastChangeDetailByBuildConfigId(string buildConfigId);
List<Change> ByBuildConfigId(string buildConfigId);
List<Change> ByBuildLocator(BuildLocator buildLocator);
}
}
1 change: 0 additions & 1 deletion src/TeamCitySharp/DomainEntities/Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,5 @@ public override string ToString()
{
return Number;
}

}
}
1 change: 1 addition & 0 deletions src/TeamCitySharp/ITeamCityClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ public interface ITeamCityClient
bool Authenticate();

IBuilds Builds { get; }
IBuildDetails BuildDetails { get; }
IBuildConfigs BuildConfigs { get; }
IProjects Projects { get; }
IServerInformation ServerInformation { get; }
Expand Down
22 changes: 14 additions & 8 deletions src/TeamCitySharp/TeamCityClient.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using TeamCitySharp.ActionTypes;
using TeamCitySharp.ActionTypes;
using TeamCitySharp.Connection;

namespace TeamCitySharp
Expand All @@ -7,6 +7,7 @@ public class TeamCityClient : IClientConnection, ITeamCityClient
{
private readonly TeamCityCaller _caller;
private IBuilds _builds;
private IBuildDetails _buildDetails;
private IProjects _projects;
private IBuildConfigs _buildConfigs;
private IServerInformation _serverInformation;
Expand All @@ -32,8 +33,13 @@ public bool Authenticate()
}

public IBuilds Builds
{
get { return _builds ?? (_builds = new Builds(_caller)); }
{
get { return _builds ?? (_builds = new Builds(_caller)); }
}

public IBuildDetails BuildDetails
{
get { return _buildDetails ?? (_buildDetails = new BuildDetails(_caller)); }
}

public IBuildConfigs BuildConfigs
Expand All @@ -50,8 +56,8 @@ public IServerInformation ServerInformation
{
get { return _serverInformation ?? (_serverInformation = new ServerInformation(_caller)); }
}

public IUsers Users
public IUsers Users
{
get { return _users ?? (_users = new Users(_caller)); }
}
Expand All @@ -67,13 +73,13 @@ public IVcsRoots VcsRoots
}

public IChanges Changes
{
get { return _changes ?? (_changes = new Changes(_caller)); }
{
get { return _changes ?? (_changes = new Changes(_caller)); }
}

public IBuildArtifacts Artifacts
{
get { return _artifacts ?? (_artifacts = new BuildArtifacts(_caller)); }
}
}
}
}
2 changes: 2 additions & 0 deletions src/TeamCitySharp/TeamCitySharp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,13 @@
<Compile Include="ActionTypes\Agents.cs" />
<Compile Include="ActionTypes\BuildArtifacts.cs" />
<Compile Include="ActionTypes\BuildConfigs.cs" />
<Compile Include="ActionTypes\BuildDetails.cs" />
<Compile Include="ActionTypes\Builds.cs" />
<Compile Include="ActionTypes\Changes.cs" />
<Compile Include="ActionTypes\IAgents.cs" />
<Compile Include="ActionTypes\IBuildArtifacts.cs" />
<Compile Include="ActionTypes\IBuildConfigs.cs" />
<Compile Include="ActionTypes\IBuildDetails.cs" />
<Compile Include="ActionTypes\IBuilds.cs" />
<Compile Include="ActionTypes\IChanges.cs" />
<Compile Include="ActionTypes\IProjects.cs" />
Expand Down