Exemplo n.º 1
0
        public override async Task <HttpStatusCode[]> SendToApi(Message <byte[], MessageData.MessageData>[] messages, CancellationToken cancellationToken)
        {
            for (var i = 0; i < Count; i++)
            {
                Tasks[i] = ApiSender.Send(messages[i].Value, cancellationToken, BrokerStrategy.EventsRetry);
            }

            return(await Task.WhenAll(Tasks.Take(Count)));
        }
Exemplo n.º 2
0
 protected Broker(Consumer <T> consumer, Producer <byte[]> byteProducer,
                  Producer <MessageData.MessageData> messageDataProducer, IOptionsMonitor <CommonConfig> commonConfig, ApiSender apiSender)
 {
     Consumer            = consumer;
     ByteProducer        = byteProducer;
     MessageDataProducer = messageDataProducer;
     CommonConfig        = commonConfig;
     ApiSender           = apiSender;
     Tasks = new Task <HttpStatusCode> [commonConfig.CurrentValue.BatchSize];
 }
        public async void Initialize()
        {
            TaihaToolkit.RegisterComponents(WPFComponent.Instance);

            TelemetryClient.TrackEvent("PluginLoaded");

            // Set a hook to detect app crash
            try {
                var app = LocalizationUtil.GetApplication();
                app.DispatcherUnhandledException += App_DispatcherUnhandledException;
            }
            catch (Exception ex) {
                TelemetryClient.TrackException("Failed to set set a hook to detect app crash.", ex);
            }

            // Obtain default app culture
            try {
                ResourceHolder.Instance.Culture = LocalizationUtil.GetCurrentAppCulture();
                UpdateChineseCulture();
            }
            catch (Exception ex) {
                TelemetryClient.TrackException("Failed to get default app culture.", ex);
            }

            // Initialize KCVDB client
            try {
                var sessionId = Guid.NewGuid().ToString();
                apiSender_ = new ApiSender(sessionId);
                viewModel_ = new ToolViewViewModel(
                    apiSender_.KcvdbClient,
                    sessionId,
                    new WPFDispatcher(Dispatcher.CurrentDispatcher));
            }
            catch (Exception ex) {
                TelemetryClient.TrackException("Failed to initialize KCVDB client.", ex);
            }

            Settings.Default.PropertyChanged += Settings_PropertyChanged;

            TelemetryClient.TrackEvent("PluginInitialized");

            try {
                await CheckForUpdate();
            }
            catch (Exception ex) {
                TelemetryClient.TrackException("Failed to check the latest version.", ex);
                if (ex.IsCritical())
                {
                    throw;
                }
            }
        }
Exemplo n.º 4
0
 public void Handle(ServiceCallMessage message)
 {
     ApiSender.CallApi(message);
 }
Exemplo n.º 5
0
 public RetryBroker(Consumer <MessageData.MessageData> consumer, Producer <byte[]> byteProducer,
                    Producer <MessageData.MessageData> messageDataProducer, IOptionsMonitor <CommonConfig> commonConfig, ApiSender apiSender,
                    ILogger <RetryBroker> logger)
     : base(consumer, byteProducer, messageDataProducer, commonConfig, apiSender)
 {
     Consumer.Subscribe(BrokerStrategy.EventsRetry);
     _logger = logger;
 }
Exemplo n.º 6
0
 public MainBroker(Consumer <byte[]> consumer, Producer <byte[]> byteProducer,
                   Producer <MessageData.MessageData> messageDataProducer, IOptionsMonitor <CommonConfig> commonConfig, ApiSender apiSender)
     : base(consumer, byteProducer, messageDataProducer, commonConfig, apiSender)
 {
     Consumer.Subscribe(BrokerStrategy.EventsDefault);
 }
Exemplo n.º 7
0
 public SomeEventsBroker(Consumer <byte[]> consumer, Producer <byte[]> byteProducer,
                         Producer <MessageData.MessageData> messageDataProducer, IOptionsMonitor <CommonConfig> commonConfig, ApiSender apiSender,
                         IServiceClient serviceClient)
     : base(consumer, byteProducer, messageDataProducer, commonConfig, apiSender)
 {
     _serviceClient = serviceClient;
     Consumer.Subscribe(BrokerStrategy.EventsDefault);
 }