moutonc
moutonc

Reputation: 239

What is the best way to pull apart a list to find a single item

var failed = Client.FailedBuildsByBuildConfigId(buildConfig.Id).ToString();

This is how the list is created. I am using TeamCity Sharp, and I'm a newbie. What gets returned is:

System.Collections.Generic.List`1[TeamCitySharp.DomainEntities.Build]

I want to find the string 'FAILURE' in the list. How do I go about doing so?

Upvotes: 1

Views: 90

Answers (2)

D'Arcy Rittich
D'Arcy Rittich

Reputation: 171559

Try:

bool failed = Client.FailedBuildsByBuildConfigId(buildConfig.Id).Any(b => b.ToString().Contains("FAILURE"))

I don't know the output of that class, but if ToString() does not, in fact, return the Status (or StatusText), do one of these instead:

//examine Status field
bool failed = Client.FailedBuildsByBuildConfigId(buildConfig.Id).Any(b => b.Status.Contains("FAILURE"))

or

//examine StatusText field
bool failed = Client.FailedBuildsByBuildConfigId(buildConfig.Id).Any(b => b.StatusText.Contains("FAILURE"))

Upvotes: 3

Paul Ramsperger
Paul Ramsperger

Reputation: 138

When you are using Client.FailedBuildsByBuildConfigId(buildConfig.Id).ToString() it is returning the name of the type of object returned from FailedBuildsByBuildConfigId.

Try

var failed = Client.FailedBuildsByBuildConfigId(buildConfig.Id).Where(b => b.Status == "FAILED");

Upvotes: 1

Related Questions