private async Task HandleAppCloseAsync(AppCloseEvent closeEvent) { if (false == await _registrationController.GetIsRegisteredAsync()) { return; } var rawStartTime = _persistentStorage.Get(START_TIME_KEY); DateTime? startTime = null; var trigger = LaunchReason.NotDefined; if (!String.IsNullOrEmpty(rawStartTime)) { startTime = DateTime.Parse(rawStartTime); trigger = (LaunchReason) Enum.Parse(typeof (LaunchReason), _persistentStorage.Get(SESSION_TRIGGER)); } if (startTime.HasValue) { var notification = new AppSessionClientNotification { StartTimeUtc = startTime.Value, EndTimeUtc = closeEvent.Timestamp, OperatingSystem = _environmentInformation.OperatingSystem, SessionTrigger = trigger }; _persistentStorage.Set(START_TIME_KEY, String.Empty); _persistentStorage.Set(SESSION_TRIGGER, String.Empty); await _notificationManager.QueueClientNotificationAsync(notification); } }
public void HandleAppClose(AppCloseEvent closeEvent) { HandleAppCloseAsync(closeEvent).ExecuteInBackground(); }