Example #1
0
        public override FindPTZPositionResultList GetPTZPositionSearchResults(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);

            FindPTZPositionResultList result = (FindPTZPositionResultList)ExecuteGetCommand(validation, SearchServiceTest.GetPTZPositionSearchResultsTest);

            return(result);
        }
Example #2
0
        protected FindPTZPositionResultList GetPTZPositionSearchResults(string searchToken, int?minResults, int?maxResults, string waitTime, string stepName)
        {
            FindPTZPositionResultList response = null;

            RunStep(() => { response = Client.GetPTZPositionSearchResults(searchToken, minResults, maxResults, waitTime).ResultList; }, stepName);

            return(response);
        }
Example #3
0
        protected List <FindPTZPositionResult> GetAllPtzSearchResults(string searchToken,
                                                                      PTZPositionFilter filter,
                                                                      int?minResults,
                                                                      int?maxResults,
                                                                      string waitTime,
                                                                      out SearchState state)
        {
            List <FindPTZPositionResult> ptsPositionsList = new List <FindPTZPositionResult>();

            FindPTZPositionResultList 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
            {
                response     = GetPTZPositionSearchResults(searchToken, minResults, maxResults, waitTime, "Get PTZ Search results");
                lastResponse = DateTime.Now;

                // no request delay here!
                if (response.Result != null)
                {
                    ptsPositionsList.AddRange(response.Result);
                }
                if (lastResponse > dueTo)
                {
                    completed = false;
                    break;
                }
            } while (response.SearchState != SearchState.Completed);

            ValidatePTZPositionSearchResults(filter, ptsPositionsList);

            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(ptsPositionsList);
        }
        public override FindPTZPositionResultList GetPTZPositionSearchResults(string SearchToken, int MinResults, bool MinResultsSpecified, int MaxResults, bool MaxResultsSpecified, string WaitTime)
        {
            SearchSession session = SearchSessionManager.Instance.GetSession(SearchToken);

            if (session != null)
            {
                List <FindPTZPositionResult> data = (List <FindPTZPositionResult>)session.Data;

                FindPTZPositionResultList list = new FindPTZPositionResultList();

                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 FindPTZPositionResult[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);
            }
        }