public static IOrderedEnumerable<ITestResult> SearchForTestResults(ISearchCmdletBaseDataObject dataObject)
{
IOrderedEnumerable<ITestResult> testResults = null;
// Filtering results
// default result
Func<ITestResult, bool> query = testResult => true;
dataObject.FilterAll = false;
if (!string.IsNullOrEmpty(dataObject.FilterNameContains))
// if (cmdlet.FilterNameContains != null && cmdlet.FilterNameContains.Length > 0) {
query = testResult => testResult.Name != null && testResult.Name.Contains(dataObject.FilterNameContains);
//query = testResult =>
//{
// return testResult.Name != null && testResult.Name.Contains(cmdlet.FilterNameContains);
// /*
// if (testResult.Name != null) {
// return testResult.Name.Contains(cmdlet.FilterNameContains);
// }
// return false;
// */
//};
// dataObject.FilterAll = false;
else if (!string.IsNullOrEmpty(dataObject.FilterIdContains))
// } else if (cmdlet.FilterIdContains != null && cmdlet.FilterIdContains.Length > 0) {
query = testResult => testResult.Id != null && testResult.Id.Contains(dataObject.FilterIdContains);
//query = testResult =>
//{
// return testResult.Id != null && testResult.Id.Contains(cmdlet.FilterIdContains);
// /*
// if (testResult.Id != null) {
// return testResult.Id.Contains(cmdlet.FilterIdContains);
// }
// return false;
// */
//};
// dataObject.FilterAll = false;
else if (!string.IsNullOrEmpty(dataObject.FilterDescriptionContains))
// } else if (cmdlet.FilterDescriptionContains != null && cmdlet.FilterDescriptionContains.Length > 0) {
query = testResult => testResult.Description != null && testResult.Description.Contains(dataObject.FilterDescriptionContains);
//query = testResult =>
//{
// return testResult.Description != null && testResult.Description.Contains(cmdlet.FilterDescriptionContains);
// /*
// if (testResult.Description != null) {
// return testResult.Description.Contains(cmdlet.FilterDescriptionContains);
// }
// return false;
// */
//};
// dataObject.FilterAll = false;
else if (dataObject.FilterPassed)
// 20150805
// query = testResult => testResult.enStatus == TestResultStatuses.Passed;
query = testResult => testResult.enStatus == TestStatuses.Passed;
// dataObject.FilterAll = false;
else if (dataObject.FilterFailed)
// 20150805
// query = testResult => testResult.enStatus == TestResultStatuses.Failed;
query = testResult => testResult.enStatus == TestStatuses.Failed;
// dataObject.FilterAll = false;
else if (dataObject.FilterNotTested)
// 20150805
// query = testResult => testResult.enStatus == TestResultStatuses.NotTested;
query = testResult => testResult.enStatus == TestStatuses.NotRun;
// dataObject.FilterAll = false;
else if (dataObject.FilterPassedWithBadSmell)
// 20150805
// query = testResult => testResult.enStatus == TestResultStatuses.KnownIssue;
query = testResult => testResult.enStatus == TestStatuses.KnownIssue;
// dataObject.FilterAll = false;
else if (dataObject.FilterOutAutomaticResults)
query = testResult => testResult.Origin != TestResultOrigins.Automatic;
// dataObject.FilterAll = false;
else if (dataObject.FilterOutAutomaticAndTechnicalResults)
query = testResult => testResult.Origin != TestResultOrigins.Automatic && testResult.Origin != TestResultOrigins.Technical;
// dataObject.FilterAll = false;
if (dataObject.FilterAll) {
query = testResult => true;
// 20140722
dataObject.FilterAll = true;
}
if (dataObject.FilterNone) {
query = testResult => false;
}
// Ordering results
// default result
// 20140720
// Func<TestResult, object> ordering = testResult => testResult.Id;
Func<ITestResult, object> ordering = testResult => testResult.Id;
if (dataObject.OrderByTimeSpent)
ordering = testResult => testResult.TimeSpent;
else if (dataObject.OrderByDateTime)
ordering = testResult => testResult.Timestamp;
else if (dataObject.OrderByName)
ordering = testResult => testResult.Name;
else if (dataObject.OrderById)
ordering = testResult => testResult.Id;
testResults =
TestData.SearchTestResult(
query,
ordering,
dataObject.Descending);
return testResults;
}