public override IEnumerable <TestUnitResult> RunTestUnits(TaskFactory taskFactory, Task prepTask) { if (StartTime.Ticks == 0) { StartTime = DateTimeOffset.UtcNow; } if (prepTask.IsFaulted) { throw prepTask.Exception; } List <Task <TestUnitResult> > _testUnits = new List <Task <TestUnitResult> >(); Task[] previousTask = Array.ConvertAll(new int[target.TargetSiteConfig.MaxCatalogueThread], mp => prepTask); int i = queryFilters.Count(); while (i > 0) { for (int j = 0; j < target.TargetSiteConfig.MaxCatalogueThread; j++) { var _testUnit = previousTask[j].ContinueWith <KeyValuePair <IOpenSearchable, FiltersDefinition> >((task) => { prepTask.Wait(); FiltersDefinition randomFilter; queryFilters.TryDequeue(out randomFilter); return(new KeyValuePair <IOpenSearchable, FiltersDefinition>(target.CreateOpenSearchableEntity(randomFilter, Configuration.Current.Global.QueryTryNumber), randomFilter)); }). ContinueWith((request) => { if (request.Result.Value == null) { return(null); } return(MakeQuery(request.Result.Key, request.Result.Value)); }); _testUnits.Add(_testUnit); previousTask[j] = _testUnit; i--; } } try { Task.WaitAll(_testUnits.ToArray()); } catch (AggregateException ae) { Exception ex = ae; while (ex is AggregateException) { ex = ex.InnerException; } log.Debug(ex.Message); log.Debug(ex.StackTrace); } EndTime = DateTimeOffset.UtcNow; return(_testUnits.Select(t => t.Result).Where(r => r != null)); }
private static bool CheckTimelinessParameter(TargetSiteWrapper target) { var os = target.CreateOpenSearchableEntity(); var parameters = os.GetOpenSearchParameters(os.DefaultMimeType); return(parameters.AllKeys.Any(key => { return key == "timeliness" || parameters[key].Contains("timeliness"); })); }
protected virtual List <IOpenSearchResultItem> FindItemsToDownload(int count = 20) { List <IOpenSearchResultItem> forcedFoundItems = new List <IOpenSearchResultItem>(); TestCase201 tc = new TestCase201(log, target, 1, Mission.GenerateExistingDataDictionary(target), out forcedFoundItems); var filters = new FiltersDefinition("all"); filters.AddFilter("missionName", "{http://a9.com/-/opensearch/extensions/eo/1.0/}platform", "Sentinel-1", "Sentinel-1", null, null); filters.AddFilter("productType", "{http://a9.com/-/opensearch/extensions/eo/1.0/}productType", "GRD", "GRD", null, null); filters.AddFilter("archiveStatus", "{http://a9.com/-/opensearch/extensions/eo/1.0/}statusSubType", "online", "Online", null, null); filters.AddFilter("productFormat", "{http://a9.com/-/opensearch/extensions/eo/1.0/}productFormat", "zip", "ZIP", null, null); filters.AddFilter("count", "{http://a9.com/-/spec/opensearch/1.1/}count", count > 50 ? count.ToString() : "50", "", null, null); tc.MakeQuery(target.CreateOpenSearchableEntity(), filters); return(forcedFoundItems); }