public RabbitServer(ISdkConfigurationInternal config) { Guard.Argument(config, nameof(config)).NotNull(); Username = config.Username; Password = config.Password; UseSsl = config.UseSsl; VirtualHost = config.VirtualHost; Port = config.Port; HostAddress = config.Host; SslServerName = config.SslServerName ?? HostAddress; ClientProperties = new Dictionary <string, object> { { "SrMtsSdkType", ".net" }, { "SrMtsSdkVersion", SdkInfo.GetVersion() }, { "SrMtsSdkInit", $"{DateTime.Now:yyyyMMddHHmm}" }, { "SrMtsSdkConnName", "RabbitMQ / Net" }, { "SrMtsSdkBId", config.BookmakerId } }; AutomaticRecovery = false; HeartBeat = 20; }
/// <summary> /// Initializes a new instance of the <see cref="BuilderFactory"/> class /// </summary> /// <param name="config">The <see cref="ISdkConfigurationInternal"/> used to set default values of created builders</param> /// <param name="marketDescriptionProvider">The <see cref="IMarketDescriptionProvider"/> used for UoF selections</param> public BuilderFactory(ISdkConfigurationInternal config, IMarketDescriptionProvider marketDescriptionProvider) { Guard.Argument(config, nameof(config)).NotNull(); Guard.Argument(marketDescriptionProvider, nameof(marketDescriptionProvider)).NotNull(); _config = config; _marketDescriptionProvider = marketDescriptionProvider; }
/// <summary> /// Constructs a new instance of the <see cref="MtsSdk"/> class /// </summary> /// <param name="config">A <see cref="ISdkConfiguration"/> instance representing feed configuration</param> /// <param name="loggerFactory">A <see cref="ILoggerFactory"/> used to create <see cref="ILogger"/> used within sdk</param> /// <param name="metricsRoot">A <see cref="IMetricsRoot"/> used to provide metrics within sdk</param> public MtsSdk(ISdkConfiguration config, ILoggerFactory loggerFactory = null, IMetricsRoot metricsRoot = null) { Guard.Argument(config, nameof(config)).NotNull(); LogInit(); _isDisposed = false; _isOpened = 0; _unityContainer = new UnityContainer(); _unityContainer.RegisterTypes(config, loggerFactory, metricsRoot); _config = _unityContainer.Resolve <ISdkConfigurationInternal>(); _executionLog = SdkLoggerFactory.GetLoggerForExecution(typeof(MtsSdk)); _interactionLog = SdkLoggerFactory.GetLoggerForExecution(typeof(MtsSdk)); LogInit(); _metricsRoot = _unityContainer.Resolve <IMetricsRoot>(); _metricsLogger = SdkLoggerFactory.GetLoggerForStats(typeof(MtsSdk)); _metricsTaskScheduler = new AppMetricsTaskScheduler( TimeSpan.FromSeconds(_config.StatisticsTimeout), async() => { await LogMetricsAsync(); }); _connectionValidator = _unityContainer.Resolve <ConnectionValidator>(); BuilderFactory = _unityContainer.Resolve <IBuilderFactory>(); _ticketPublisherFactory = _unityContainer.Resolve <ITicketSenderFactory>(); _entitiesMapper = _unityContainer.Resolve <EntitiesMapper>(); _rabbitMqMessageReceiverForTickets = _unityContainer.Resolve <IRabbitMqMessageReceiver>("TicketResponseMessageReceiver"); _rabbitMqMessageReceiverForTicketCancels = _unityContainer.Resolve <IRabbitMqMessageReceiver>("TicketCancelResponseMessageReceiver"); _rabbitMqMessageReceiverForTicketCashouts = _unityContainer.Resolve <IRabbitMqMessageReceiver>("TicketCashoutResponseMessageReceiver"); _rabbitMqMessageReceiverForTicketNonSrSettle = _unityContainer.Resolve <IRabbitMqMessageReceiver>("TicketNonSrSettleResponseMessageReceiver"); ClientApi = _unityContainer.Resolve <IMtsClientApi>(); CustomBetManager = _unityContainer.Resolve <ICustomBetManager>(); ConnectionStatus = _unityContainer.Resolve <IConnectionStatus>(); ReportManager = _unityContainer.Resolve <IReportManager>(); _autoResetEventsForBlockingRequests = new ConcurrentDictionary <string, AutoResetEvent>(); _responsesFromBlockingRequests = new ConcurrentDictionary <string, ISdkTicket>(); _ticketsForNonBlockingRequests = new MemoryCache("TicketsForNonBlockingRequests"); _lockForTicketsForNonBlockingRequestsCache = new object(); foreach (var t in Enum.GetValues(typeof(SdkTicketType))) { var publisher = _ticketPublisherFactory.GetTicketSender((SdkTicketType)t); if (publisher != null) { publisher.TicketSendFailed += PublisherOnTicketSendFailed; } } }
/// <summary> /// Constructs a new instance of the <see cref="MtsSdk"/> class /// </summary> /// <param name="config">A <see cref="ISdkConfiguration"/> instance representing feed configuration</param> public MtsSdk(ISdkConfiguration config) { Guard.Argument(config, nameof(config)).NotNull(); LogInit(); _isDisposed = false; _isOpened = 0; _unityContainer = new UnityContainer(); SdkUnityBootstrapper.RegisterTypes(_unityContainer, config); _config = _unityContainer.Resolve <ISdkConfigurationInternal>(); _connectionValidator = _unityContainer.Resolve <ConnectionValidator>(); BuilderFactory = _unityContainer.Resolve <IBuilderFactory>(); _ticketPublisherFactory = _unityContainer.Resolve <ITicketSenderFactory>(); _entitiesMapper = _unityContainer.Resolve <EntitiesMapper>(); _rabbitMqMessageReceiverForTickets = _unityContainer.Resolve <IRabbitMqMessageReceiver>("TicketResponseMessageReceiver"); _rabbitMqMessageReceiverForTicketCancels = _unityContainer.Resolve <IRabbitMqMessageReceiver>("TicketCancelResponseMessageReceiver"); _rabbitMqMessageReceiverForTicketCashouts = _unityContainer.Resolve <IRabbitMqMessageReceiver>("TicketCashoutResponseMessageReceiver"); _rabbitMqMessageReceiverForTicketNonSrSettle = _unityContainer.Resolve <IRabbitMqMessageReceiver>("TicketNonSrSettleResponseMessageReceiver"); ClientApi = _unityContainer.Resolve <IMtsClientApi>(); CustomBetManager = _unityContainer.Resolve <ICustomBetManager>(); ConnectionStatus = _unityContainer.Resolve <IConnectionStatus>(); ReportManager = _unityContainer.Resolve <IReportManager>(); _autoResetEventsForBlockingRequests = new ConcurrentDictionary <string, AutoResetEvent>(); _responsesFromBlockingRequests = new ConcurrentDictionary <string, ISdkTicket>(); _ticketsForNonBlockingRequests = new MemoryCache("TicketsForNonBlockingRequests"); _lockForTicketsForNonBlockingRequestsCache = new object(); foreach (var t in Enum.GetValues(typeof(SdkTicketType))) { var publisher = _ticketPublisherFactory.GetTicketSender((SdkTicketType)t); if (publisher != null) { publisher.TicketSendFailed += PublisherOnTicketSendFailed; } } }
public BuilderFactoryHelper(ISdkConfigurationInternal configInternal = null) { if (configInternal == null) { configInternal = new SdkConfigurationInternal(new SdkConfiguration(SdkConfigurationSectionTest.Create()), null); } var container = new UnityContainer(); var config = (ISdkConfiguration)configInternal; container.RegisterTypes(config, null, null); container.RegisterInstance <IDataFetcher>("Base", new DataFetcherHelper(UriReplacements), new ContainerControlledLifetimeManager()); MarketDescriptionCache = container.Resolve <IMarketDescriptionCache>(); MarketDescriptionProvider = container.Resolve <IMarketDescriptionProvider>(); BuilderFactory = container.Resolve <IBuilderFactory>(); }
/// <summary> /// Initializes a new instance of the <see cref="ConnectionValidator"/> class /// </summary> /// <param name="config">A <see cref="ISdkConfiguration"/> instance representing odds configuration</param> public ConnectionValidator(ISdkConfigurationInternal config) { Guard.Argument(config, nameof(config)).NotNull(); _config = config; }