public async Task <IActionResult> ReminderCallback([FromBody] ReminderDelivery reminderDelivery) { var userId = reminderDelivery.ClientState; await focusService.ReminderDeliveryAsync(userId, reminderDelivery); return(Ok()); }
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(); } }
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); }