public async Task <IActionResult> ReminderCallback([FromBody] ReminderDelivery reminderDelivery)
        {
            var userId = reminderDelivery.ClientState;
            await focusService.ReminderDeliveryAsync(userId, reminderDelivery);

            return(Ok());
        }
Example #2
0
        public async Task PostReminder(StoredReminder reminder, ReminderDelivery delivery)
        {
            var client = new HttpClient();
            var res    = await client.PostAsync(reminder.NotificationUri,
                                                new StringContent(JsonConvert.SerializeObject(delivery), Encoding.UTF8, "application/json"));

            if (!res.IsSuccessStatusCode)
            {
                throw new ReminderDeliveryException();
            }
        }
Example #3
0
        public async Task ReminderDeliveryAsync(string userId, ReminderDelivery reminderDelivery)
        {
            if (!reminderDelivery.Removed)
            {
                await logger.LogForUser(userId, $"Received reminder for {reminderDelivery.Event.Subject}");
            }
            else
            {
                await logger.LogForUser(userId, $"Received reminder removed");
            }
            var syncResult = await focusCalendarSyncService.SyncAsync(userId, DateTimeOffset.Now,
                                                                      DateTimeOffset.Now + FocusConstants.FocusScanTime + FocusConstants.CalendarServiceInacurracy);

            var lastLocation = await locationService.GetLastLocationAsync(userId);

            var res = await focusUpdateService.Update(userId, new FocusUpdateRequest()
            {
                ItemSyncResult = syncResult,
                Location       = lastLocation
            });

            // for now request anyway, there item might be unchanged due to planner
            await locationService.RequestLocationAsync(userId, DateTimeOffset.Now, res);
        }