public static IServiceCollection AddXenaMarketDataWebsocketClient(this IServiceCollection serviceCollection, string uri)
        {
            // TODO: use Microsoft.Extensions.Options.
            var mdWsOptions = new MarketDataWsClientOptions {
                Uri = uri
            };

            return(serviceCollection
                   .AddSingleton(mdWsOptions)
                   .AddSingleton <IFixSerializer, FixSerializer>()
                   .AddTransient <IMarketDataWsClient, MarketDataWsClient>());
        }
Exemplo n.º 2
0
        private static async Task NoDiExampleAsync()
        {
            var logLevel = LogLevel.Debug;

            var fixSerializer  = new FixSerializer();
            var restSerializer = new RestSerializer();

            // Market data websocket example
            var mdWsOptions = new MarketDataWsClientOptions {
                Uri = MdWsUri
            };
            var mdLogger   = Dependencies.ConsoleLogger <MarketDataWsClient>(logLevel);
            var mdWsClient = new MarketDataWsClient(mdWsOptions, fixSerializer, mdLogger);
            var mdExample  = new MarketDataWsExample(mdWsClient, Dependencies.ConsoleLogger <MarketDataWsExample>(logLevel));
            await mdExample.StartAsync(Token).ConfigureAwait(false);

            // Trading websocket example
            var tradingLogger   = Dependencies.ConsoleLogger <TradingWsClient>(logLevel);
            var tradingWsClient = new TradingWsClient(TradingWsOptions, fixSerializer, tradingLogger);
            var tradingExample  = new TradingWsExample(tradingWsClient, TradingWsOptions, Dependencies.ConsoleLogger <TradingWsExample>(logLevel));

            var httpClient = new HttpClient {
                BaseAddress = new Uri("https://api.xena.exchange")
            };

            var tradingRestClient  = new TradingRestClient(TradingRestOptions, restSerializer, httpClient: httpClient);
            var tradingRestExample = new TradingRestExample(
                tradingRestClient,
                Dependencies.ConsoleLogger <TradingRestExample>(logLevel));

            await tradingRestExample.StartAsync(Token).ConfigureAwait(false);

            // Market data rest example
            var marketDataRestClient  = new MarketDataRestClient(restSerializer, httpClient: httpClient);
            var marketDataRestExample = new MarketDataRestExample(
                marketDataRestClient,
                Dependencies.ConsoleLogger <MarketDataRestExample>(logLevel));

            await marketDataRestExample.StartAsync(Token).ConfigureAwait(false);
        }
Exemplo n.º 3
0
 public MarketDataWsClient(MarketDataWsClientOptions options, IFixSerializer serializer, ILogger <MarketDataWsClient> logger)
     : base(options, serializer, logger)
 {
     _mdOptions     = options ?? throw new ArgumentNullException(nameof(options));
     _subscriptions = new ConcurrentDictionary <string, Subscription>();
 }