public override FindMetadataResultList GetMetadataSearchResults(string SearchToken, int MinResults, [System.Xml.Serialization.XmlIgnoreAttribute()] bool MinResultsSpecified, int MaxResults, [System.Xml.Serialization.XmlIgnoreAttribute()] bool MaxResultsSpecified, string WaitTime) { ParametersValidation validation = new ParametersValidation(); validation.Add(ParameterType.String, "SearchToken", SearchToken); int?minResults = null; if (MinResultsSpecified) { minResults = MinResults; } validation.Add(ParameterType.OptionalInt, "MinResults", minResults); int?maxResults = null; if (MaxResultsSpecified) { maxResults = MaxResults; } validation.Add(ParameterType.OptionalInt, "MaxResults", maxResults); validation.Add(ParameterType.String, "WaitTime", WaitTime); FindMetadataResultList result = (FindMetadataResultList)ExecuteGetCommand(validation, SearchServiceTest.GetMetadataSearchResultsTest); return(result); }
protected List <FindMetadataResult> GetAllMetadataSearchResults( string searchToken, int?minResults, int?maxResults, string waitTime, out SearchState state) { List <FindMetadataResult> metadataList = new List <FindMetadataResult>(); FindMetadataResultList response = null; DateTime started = DateTime.Now; DateTime dueTo = started.AddSeconds(_searchTimeout); bool completed = true; DateTime lastResponse = DateTime.Now; LogTestEvent(string.Format("All results should be received by {0}{1}", dueTo.StdTimeToString(), Environment.NewLine)); do { RunStep(() => { response = Client.GetMetadataSearchResults(new GetMetadataSearchResults() { SearchToken = searchToken, WaitTime = waitTime, MinResults = minResults ?? 0, MaxResults = maxResults ?? 0, MinResultsSpecified = minResults == null ? false : true, MaxResultsSpecified = maxResults == null ? false : true }).ResultList; }, "Get Metadata Search results"); lastResponse = DateTime.Now; if (response.Result != null) { metadataList.AddRange(response.Result); } if (lastResponse > dueTo) { completed = false; break; } } while (response.SearchState != SearchState.Completed); state = response.SearchState; Assert(completed, string.Format("Completed state has not been achieved (last response received at {0}, State: {1})", lastResponse.StdTimeToString(), response.SearchState), "Check that search has been completed in due time"); return(metadataList); }
public override FindMetadataResultList GetMetadataSearchResults(string SearchToken, int MinResults, [System.Xml.Serialization.XmlIgnoreAttribute()] bool MinResultsSpecified, int MaxResults, [System.Xml.Serialization.XmlIgnoreAttribute()] bool MaxResultsSpecified, [System.Xml.Serialization.XmlElementAttribute(DataType = "duration")] string WaitTime) { RecordingEntitiesSearchSession session = SearchSessionManager.Instance.GetSession(SearchToken) as RecordingEntitiesSearchSession; if (session != null) { List <FindMetadataResult> data = (List <FindMetadataResult>)session.Data; FindMetadataResultList list = new FindMetadataResultList(); Random rnd = new Random(); int cnt = Math.Min(rnd.Next(1, 4), data.Count); rnd = new Random(); int sleep = rnd.Next(1, 3); System.Threading.Thread.Sleep(400 * sleep + 450); list.Result = new FindMetadataResult[cnt]; for (int i = 0; i < cnt; i++) { list.Result[i] = data[0]; data.RemoveAt(0); } session.ResultsSent = session.ResultsSent + cnt; list.SearchState = data.Count > 0 ? SearchState.Searching : SearchState.Completed; if (data.Count == 0) { SearchSessionManager.Instance.Sessions.Remove(session); } return(list); } else { CommonUtils.ReturnFault(new string[] { "Sender", "InvalidArgVal", "InvalidToken" }); return(null); } }