Skip to content
This repository was archived by the owner on Feb 12, 2019. It is now read-only.

find changes by changelocator #92

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
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
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ Each area has its own list of methods available
Change ByChangeId(string id);
Change LastChangeDetailByBuildConfigId(string buildConfigId);
List<Change> ByBuildConfigId(string buildConfigId);
List<Change> ByLocator(ChangeLocator changeLocator);

###BuildArtifacts
void DownloadArtifactsByBuildId(string buildId, Action<string> downloadHandler);
Expand Down
1 change: 1 addition & 0 deletions packages/repositories.config
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@
<repositories>
<repository path="..\src\Samples\TeamCitySharp.BuildMonitor\packages.config" />
<repository path="..\src\TeamCitySharp\packages.config" />
<repository path="..\src\Tests\IntegrationTests\packages.config" />
<repository path="..\src\Tests\UnitTests\packages.config" />
</repositories>
6 changes: 6 additions & 0 deletions src/TeamCitySharp/ActionTypes/Builds.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@ public void Add2QueueBuildByBuildConfigId(string buildConfigId)
_caller.GetFormat("/action.html?add2Queue={0}", buildConfigId);
}

public Build ByBuildId(string id)
{
var build = _caller.GetFormat<Build>("/app/rest/builds/id:{0}", id);
return build;
}

public List<Build> SuccessfulBuildsByBuildConfigId(string buildConfigId)
{
return ByBuildLocator(BuildLocator.WithDimensions(BuildTypeLocator.WithId(buildConfigId),
Expand Down
10 changes: 10 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,14 @@ public Change LastChangeDetailByBuildConfigId(string buildConfigId)
return changes.FirstOrDefault();
}

public List<Change> ByLocator(ChangeLocator locator)
{
var changeWrapper = _caller.GetFormat<ChangeWrapper>("/app/rest/changes?locator={0}", locator);
if (changeWrapper.Change.Count > 0)
{
return changeWrapper.Change;
}
return new List<Change>();
}
}
}
1 change: 1 addition & 0 deletions src/TeamCitySharp/ActionTypes/IBuilds.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ namespace TeamCitySharp.ActionTypes
{
public interface IBuilds
{
Build ByBuildId(string id);
List<Build> SuccessfulBuildsByBuildConfigId(string buildConfigId);
Build LastSuccessfulBuildByBuildConfigId(string buildConfigId);
List<Build> FailedBuildsByBuildConfigId(string buildConfigId);
Expand Down
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> ByLocator(ChangeLocator locator);
}
}
10 changes: 10 additions & 0 deletions src/TeamCitySharp/ActionTypes/IStatistics.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
using System.Collections.Generic;
using TeamCitySharp.DomainEntities;

namespace TeamCitySharp.ActionTypes
{
public interface IStatistics
{
List<Property> GetByBuildId(string buildId);
}
}
10 changes: 10 additions & 0 deletions src/TeamCitySharp/ActionTypes/ITestOccurrences.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
using System.Collections.Generic;
using TeamCitySharp.DomainEntities;

namespace TeamCitySharp.ActionTypes
{
public interface ITestOccurrences
{
List<TestOccurrence> ByBuildId(string buildId, int count);
}
}
21 changes: 21 additions & 0 deletions src/TeamCitySharp/ActionTypes/Statistics.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using System.Collections.Generic;
using TeamCitySharp.Connection;
using TeamCitySharp.DomainEntities;

namespace TeamCitySharp.ActionTypes
{
public class Statistics : IStatistics
{
private readonly TeamCityCaller _caller;

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

public List<Property> GetByBuildId(string buildId)
{
return _caller.GetFormat<Properties>("/app/rest/builds/id:{0}/statistics", buildId).Property;
}
}
}
26 changes: 26 additions & 0 deletions src/TeamCitySharp/ActionTypes/TestOccurrences.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TeamCitySharp.Connection;
using TeamCitySharp.DomainEntities;

namespace TeamCitySharp.ActionTypes
{
internal class TestOccurrences : ITestOccurrences
{
private readonly TeamCityCaller _caller;

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

public List<TestOccurrence> ByBuildId(string buildId, int count)
{
var testOccurenceWrapper = _caller.GetFormat<TestOccurrenceWrapper>("/app/rest/testOccurrences?locator=build:{0},count:{1}", buildId, count);

return testOccurenceWrapper.TestOccurrence;
}
}
}
46 changes: 23 additions & 23 deletions src/TeamCitySharp/DomainEntities/Build.cs
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
using System;

namespace TeamCitySharp.DomainEntities
{
public class Build
{
public string Id { get; set; }
public string Number { get; set; }
public string Status { get; set; }
public string BuildTypeId { get; set; }
public string Href { get; set; }
public string WebUrl { get; set; }
public string StatusText { get; set; }
namespace TeamCitySharp.DomainEntities
{
public class Build
{
public string Id { get; set; }
public string Number { get; set; }
public string Status { get; set; }
public BuildConfig BuildType { get; set; }
public string Href { get; set; }
public string WebUrl { get; set; }
public string StatusText { get; set; }
public DateTime StartDate { get; set; }
public DateTime FinishDate { get; set; }

public BuildConfig BuildConfig { get; set; }
public Agent Agent { get; set;}
public ChangeWrapper Changes { get; set; }

public override string ToString()
{
return Number;
}

}
public DateTime FinishDate { get; set; }
public BuildConfig BuildConfig { get; set; }
public Agent Agent { get; set;}
public ChangeWrapper Changes { get; set; }
public override string ToString()
{
return Number;
}
}
}
17 changes: 17 additions & 0 deletions src/TeamCitySharp/DomainEntities/TestOccurrence.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TeamCitySharp.DomainEntities
{
public class TestOccurrence
{
public string Name { get; set; }
public string Status { get; set; }
public int Duration { get; set; }
public bool Muted { get; set; }
public bool Ignored { get; set; }
public string Href { get; set; }
}
}
12 changes: 12 additions & 0 deletions src/TeamCitySharp/DomainEntities/TestOccurrenceWrapper.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TeamCitySharp.DomainEntities
{
public class TestOccurrenceWrapper
{
public List<TestOccurrence> TestOccurrence { get; set; }
}
}
8 changes: 5 additions & 3 deletions src/TeamCitySharp/ITeamCityClient.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using TeamCitySharp.ActionTypes;
using TeamCitySharp.ActionTypes;

namespace TeamCitySharp
{
Expand All @@ -7,7 +7,7 @@ public interface ITeamCityClient
void Connect(string userName, string password);
void ConnectAsGuest();
bool Authenticate();

IBuilds Builds { get; }
IBuildConfigs BuildConfigs { get; }
IProjects Projects { get; }
Expand All @@ -16,6 +16,8 @@ public interface ITeamCityClient
IAgents Agents { get; }
IVcsRoots VcsRoots { get; }
IChanges Changes { get; }
IBuildArtifacts Artifacts { get; }
IBuildArtifacts Artifacts { get; }
ITestOccurrences TestOccurrences { get; }
IStatistics Statistics { get; }
}
}
Loading