/// <inheritdoc />
        public async void ProcessTask()
        {
            var shouldSyncGlucose = false;

            var syncGlucose = await SecureStorage.GetAsync("SyncGlucose");

            if (!string.IsNullOrEmpty(syncGlucose))
            {
                shouldSyncGlucose = bool.Parse(syncGlucose);
            }

            if (await AuthenticationStorage.GetTokenPayloadAsync() == null || !shouldSyncGlucose)
            {
                return;
            }

            var lastPocRun = await SecureStorage.GetAsync("LastGlucoseSyncPoCRun");

            if (string.IsNullOrEmpty(lastPocRun))
            {
                lastPocRun = DateTime.Now.AddMinutes(-6).ToString("s");
            }

            if (DateTime.Parse(lastPocRun) < DateTime.Now.AddMinutes(-5))
            {
                var lastSync = await SecureStorage.GetAsync("LastGlucoseSync");

                if (string.IsNullOrEmpty(lastSync))
                {
                    lastSync = new DateTime(2015, 12, 12, 8, 0, 0).ToString("s");
                }

                var lastRun      = DateTime.Parse(lastSync);
                var measurements = await this.GlucoseRepository.LoadGlucoseDataAsync(lastRun.AddMinutes(-5), lastRun.AddMinutes(10));

                await this.GlucoseService.UploadGlucoseDataAsync(measurements);

                await SecureStorage.SetAsync("LastGlucoseSync", lastRun.AddMinutes(10).ToString("s"));

                await SecureStorage.SetAsync("LastGlucoseSyncPoCRun", DateTime.Now.ToString("s"));
            }
        }
        private static async Task SetAuthorization(RestRequest request)
        {
            var accessTokenPayload = await AuthenticationStorage.GetTokenPayloadAsync();

            request.AddHeader("authorization", $"Bearer {accessTokenPayload.AccessToken}");
        }