Пример #1
0
        private GroupedResult CalculateGroupedResultsForTestcase(int intTestcaseID, List <Result> results, DateTime?resultsSince)
        {
            //Don't show not supported state...
            results = results.Where(t => t.ResultCode != TestState.NotSupported).ToList();

            if (!results.Any())
            {
                return(null);
            }

            //If we have a date since filter, only use results if there are new ones...
            if (resultsSince.HasValue && results.Max(t => t.Testtime) + new TimeSpan(0, 0, 10) < resultsSince.Value)
            {
                return(null);
            }

            GroupedResult groupedResult = new GroupedResult {
                Testcase = intTestcaseID
            };

            var groupedResultsByResultCode = results.GroupBy(result => result.ResultCode, result => result,
                                                             (key, elements) => new { ResultCode = key, Results = elements.ToList() });

            bool allResultsAreEqual = groupedResultsByResultCode.Count() == 1;

            foreach (var result in groupedResultsByResultCode)
            {
                GroupedResultPart groupedResultPart = new GroupedResultPart {
                    ResultCode = result.ResultCode
                };
                if (allResultsAreEqual)
                {
                    groupedResultPart.ResultLabel = (result.ResultCode).ToString();
                }
                else if (result.Results.Count == 1)
                {
                    Result singleResult = result.Results[0];
                    groupedResultPart.ResultLabel = singleResult.Browser.Name + " " + singleResult.Language.Languagecode + " " + ((TestState)result.ResultCode);
                }
                else
                {
                    groupedResultPart.ResultLabel = result.Results.Count + "x " + (result.ResultCode);
                }
                groupedResult.GroupedResultParts.Add(groupedResultPart);
            }

            return(groupedResult);
        }
		private GroupedResult CalculateGroupedResultsForTestcase(int intTestcaseID, List<Result> results, DateTime? resultsSince)
		{

			//Don't show not supported state...
			results = results.Where(t => t.ResultCode !=TestState.NotSupported).ToList();

			if (!results.Any())
				return null;

			//If we have a date since filter, only use results if there are new ones...
			if (resultsSince.HasValue && results.Max(t => t.Testtime) + new TimeSpan(0, 0, 10) < resultsSince.Value)
				return null;

			GroupedResult groupedResult = new GroupedResult { Testcase = intTestcaseID };

			var groupedResultsByResultCode = results.GroupBy(result => result.ResultCode, result => result,
									 (key, elements) => new { ResultCode = key, Results = elements.ToList() });

			bool allResultsAreEqual = groupedResultsByResultCode.Count() == 1;

			foreach (var result in groupedResultsByResultCode)
			{

				GroupedResultPart groupedResultPart = new GroupedResultPart { ResultCode = result.ResultCode };
				if (allResultsAreEqual)
				{
					groupedResultPart.ResultLabel = (result.ResultCode).ToString();
				}
				else if (result.Results.Count == 1)
				{
					Result singleResult = result.Results[0];
					groupedResultPart.ResultLabel = singleResult.Browser.Name + " " + singleResult.Language.Languagecode + " " + ((TestState)result.ResultCode);
				}
				else
				{
					groupedResultPart.ResultLabel = result.Results.Count + "x " + (result.ResultCode);
				}
				groupedResult.GroupedResultParts.Add(groupedResultPart);
			}

			return groupedResult;
		}