示例#1
0
        public ForwardService(IRepository sourceStore, IHttpClient httpClient, INetworkStateService networkStateService, IWaitHandle waitHandle, int temporaryErrorMilliseconds, int sleepMilliseconds, bool batchUpload, IReynaLogger logger)
            : base(sourceStore, waitHandle, true, logger)
        {
            if (httpClient == null)
            {
                throw new ArgumentNullException("httpClient");
            }

            if (networkStateService != null)
            {
                this.NetworkStateService = networkStateService;
                this.NetworkStateService.NetworkConnected += this.OnNetworkConnected;
            }

            this.HttpClient = httpClient;
            this.TemporaryErrorMilliseconds = temporaryErrorMilliseconds;
            this.SleepMilliseconds          = sleepMilliseconds;
            this.ContactInformation         = new RegistryContactInformation(new Registry(), @"Software\Reyna");
            this.PeriodicBackoutCheck       = new RegistryPeriodicBackoutCheck(new Registry(), @"Software\Reyna\PeriodicBackoutCheck");

            if (batchUpload)
            {
                this.MessageProvider = new BatchProvider(sourceStore, this.PeriodicBackoutCheck);
            }
            else
            {
                this.MessageProvider = new MessageProvider(sourceStore);
            }
        }
示例#2
0
        public ForwardService(IRepository sourceStore, IHttpClient httpClient, INetworkStateService networkStateService, IWaitHandle waitHandle, int temporaryErrorMilliseconds, int sleepMilliseconds, bool batchUpload, IReynaLogger logger)
            : base(sourceStore, waitHandle, true, logger)
        {
            if (httpClient == null)
            {
                throw new ArgumentNullException("httpClient");
            }

            if (networkStateService != null)
            {
                this.NetworkStateService = networkStateService;
                this.NetworkStateService.NetworkConnected += this.OnNetworkConnected;
            }

            this.HttpClient = httpClient;            
            this.TemporaryErrorMilliseconds = temporaryErrorMilliseconds;
            this.SleepMilliseconds = sleepMilliseconds;
            this.PeriodicBackoutCheck = new RegistryPeriodicBackoutCheck(new Registry(), @"Software\Reyna\PeriodicBackoutCheck");

            if (batchUpload)
            {
                this.MessageProvider = new BatchProvider(sourceStore, this.PeriodicBackoutCheck);
            }
            else
            {
                this.MessageProvider = new MessageProvider(sourceStore);
            }
        }
示例#3
0
        public ForwardService(IRepository sourceStore, IHttpClient httpClient, INetworkStateService networkState, IWaitHandle waitHandle, int temporaryErrorMilliseconds, int sleepMilliseconds)
            : base(sourceStore, waitHandle, true)
        {
            if (httpClient == null)
            {
                throw new ArgumentNullException("httpClient");
            }

            if (networkState == null)
            {
                throw new ArgumentNullException("networkState");
            }

            this.HttpClient = httpClient;
            this.NetworkState = networkState;

            this.TemporaryErrorMilliseconds = temporaryErrorMilliseconds;
            this.SleepMilliseconds = sleepMilliseconds;

            this.NetworkState.NetworkConnected += this.OnNetworkConnected;
        }
        public void Initialize(IRepository sourceStore, IHttpClient httpClient, INetworkStateService networkState, 
            int temporaryErrorMilliseconds, int sleepMilliseconds, bool batchUpload)
        {
            Logger.Info("Reyna.ForwardService Initialize enter");

            if (httpClient == null)
            {
                throw new ArgumentNullException("httpClient");
            }

            if (networkState == null)
            {
                throw new ArgumentNullException("networkState");
            }

            HttpClient = httpClient;
            NetworkState = networkState;

            TemporaryErrorMilliseconds = temporaryErrorMilliseconds;
            SleepMilliseconds = sleepMilliseconds;

            NetworkState.NetworkConnected += OnNetworkConnected;
            PeriodicBackoutCheck.SetPeriodicalTasksKeyName(@"Software\Reyna\PeriodicBackoutCheck");

            if (batchUpload)
            {
                MessageProvider = new BatchProvider(sourceStore, PeriodicBackoutCheck, _batchConfiguration);
            }
            else
            {
                MessageProvider = new MessageProvider(sourceStore);
            }

            Initialize(sourceStore);

            Logger.Info("Reyna.ForwardService Initialize exit");
        }