Exemplo n.º 1
0
        protected async Task <TResult> ExecuteCommandAsync <TData, TResult>(string name, TData data = default, TimeSpan?timeout = null)
        {
            var command  = MessageFactory.CreateCommand(name, data);
            var response = await QuikClient.SendAsync <IResult <TResult> >(command, timeout).ConfigureAwait(false);

            return(response.Data);
        }
Exemplo n.º 2
0
        /// <inheritdoc/>
        public IQuik Create(QuikClientOptions options)
        {
            var pendingResultContainer = new PendingResultContainer();
            var eventTypeProvider      = new EventTypeProvider();
            var serializer             = new QuikJsonSerializer(pendingResultContainer, eventTypeProvider);
            var typeConverter          = new CachingQuikTypeConverter();
            var idProvider             = new UniqueIdProvider();
            var dateTimeProvider       = new CurrentDateTimeProvider();
            var messageFactory         = new MessageFactory(idProvider, dateTimeProvider);

            var quikEvents   = new QuikEvents();
            var eventHandler = new EventInvoker(quikEvents);
            var quikClient   = new QuikClient(eventHandler, serializer, pendingResultContainer, options,
                                              _loggerFactory.CreateLogger <QuikClient>());

            var quik = new Quik(
                quikClient,
                new Functions.QuikFunctions(
                    new ServiceFunctions(messageFactory, quikClient, typeConverter),
                    new TableRowFunctions(messageFactory, quikClient, typeConverter),
                    new ClassFunctions(messageFactory, quikClient, typeConverter),
                    new WorkstationFunctions(messageFactory, quikClient, typeConverter),
                    new CandleFunctions(messageFactory, quikClient, typeConverter),
                    new LabelFunctions(messageFactory, quikClient, typeConverter),
                    new OrderBookFunctions(messageFactory, quikClient, typeConverter),
                    new QuotesTableParametersFunctions(messageFactory, quikClient, typeConverter),
                    new DebugFunctions(messageFactory, quikClient, typeConverter),
                    new CustomFunctions(messageFactory, quikClient, typeConverter)),
                quikEvents);

            quikClient.SetEventSender(quik);
            quikEvents.SetEventSender(quik);

            return(quik);
        }
Exemplo n.º 3
0
        /// <inheritdoc/>
        public async Task <string> PingAsync()
        {
            // could have used StringMessage directly. This is an example of how to define DTOs for custom commands
            var command = new PingRequest();
            var result  = await QuikClient.SendAsync <PingResponse>(command).ConfigureAwait(false);

            Trace.Assert(result.Data == "Pong");
            return(result.Data);
        }