protected virtual RequestSymbolsResponceMessage Receive(RequestSymbolsMessage message)
        {
            RequestSymbolsResponceMessage responce = new RequestSymbolsResponceMessage(true);

            DataSourceStub.IImplementation implementation = Implementation;
            if (implementation != null && OperationalState == OperationalStateEnum.Operational)
            {// Synchronous.
                responce.SymbolsPeriods = implementation.SearchSymbols(message.SymbolMatch, message.ResultLimit);
            }
            else
            {
                responce.OperationResult = false;
            }

            return(responce);
        }
        protected RequestSymbolsResponceMessage Receive(RequestSymbolsMessage message)
        {
            RequestSymbolsResponceMessage responce = new RequestSymbolsResponceMessage(true);
            foreach(Symbol symbol in _dataSessions.Keys)
            {
                if (_dataSessions[symbol].SessionInformation.Info.Symbol.MatchesSearchCriteria(message.SymbolMatch))
                {
                    responce.SymbolsPeriods.Add(_dataSessions[symbol].SessionInformation.Info.Symbol, _dataSessions[symbol].SessionInformation.AvailableDataBarPeriods.ToArray());
                }
            }

            return responce;
        }
        protected virtual RequestSymbolsResponceMessage Receive(RequestSymbolsMessage message)
        {
            RequestSymbolsResponceMessage responce = new RequestSymbolsResponceMessage(true);

            DataSourceStub.IImplementation implementation = Implementation;
            if (implementation != null && OperationalState == OperationalStateEnum.Operational)
            {// Synchronous.
                responce.SymbolsPeriods = implementation.SearchSymbols(message.SymbolMatch, message.ResultLimit);
            }
            else
            {
                responce.OperationResult = false;
            }

            return responce;
        }