/// <summary> /// Set Up the subscription to the Message Hub /// </summary> private async Task <bool> SetUpSubscription() { try { if (PushManager.IsSupported) { var subscription = await PushManager.SubscribeAsync(dhp.PublicKey, "myChannel1"); _subscriptionJson = subscription.ToJson(); var applicationData = Windows.Storage.ApplicationData.Current; var localSettings = applicationData.LocalSettings; //localSettings.Values["WNSChannelURI"] = _subscriptionJson.ToString(); localSettings.Values["WNSChannelRegistrationId"] = _subscriptionJson.ToString(); return(true); } else { return(false); } } catch (Exception ex) { App.LogException(ex); return(false); } }
/// <summary> /// Resubscribes to the service whenever the registration is invalid ( Expiration date is due) /// </summary> private async Task <bool> ReSubscription() { try { var applicationData = Windows.Storage.ApplicationData.Current; var localSettings = applicationData.LocalSettings; var registrationId = localSettings.Values["WNSChannelRegistrationId"]; DateTime regDateObject = new DateTime(1, 1, 1); if (registrationId == null || registrationId == "") { localSettings.Values["UWPUninstallCheck"] = true; } else { if (PushManager.IsSupported) { var regJson = registrationId.ToString(); var regObject = JsonObject.Parse(regJson); string dateReg = regObject["expirationTime"].ToString().Replace("{", "").Replace("}", "").Replace("\"", ""); regDateObject = Convert.ToDateTime(dateReg); if (regDateObject < DateTime.Now) { var subscription = await PushManager.SubscribeAsync(dhp.PublicKey, "myChannel1"); _subscriptionJson = subscription.ToJson(); var _subscriptionJsonCheck = _subscriptionJson.ToString(); if (registrationId != _subscriptionJsonCheck) { localSettings.Values["WNSChannelRegistrationId"] = _subscriptionJson; localSettings.Values["WNSChannelRegistrationIdCheck"] = true; } else { localSettings.Values["WNSChannelRegistrationIdCheck"] = !true; } } else { localSettings.Values["WNSChannelRegistrationIdCheck"] = !true; } } } return(true); } catch (Exception ex) { App.LogException(ex); return(true); } }
/// <summary> /// Validates the current expiration date when the background task requests it /// </summary> /// <returns></returns> private async Task <int> validateExpirationDate() { int result = 0; try { if (LastExpirationDateVerification < DateTime.Now.AddDays(-1)) { var applicationData = Windows.Storage.ApplicationData.Current; var localSettings = applicationData.LocalSettings; ExpirationDate = GetExpirationdate(ExpirationDate); if (ExpirationDate < DateTime.Now.AddDays(-1)) { //resubscribe var subscription = await PushManager.SubscribeAsync(dhp.PublicKey, "myChannel1"); string _subscriptionJson = subscription.ToJson(); var regObject = JsonObject.Parse(_subscriptionJson); string dateReg = regObject["expirationTime"].ToString().Replace("{", "").Replace("}", "").Replace("\"", ""); //Update expiration date to localstorage ExpirationDate = Convert.ToDateTime(dateReg); string stringDate = $"{ExpirationDate.Year},{ExpirationDate.Month},{ExpirationDate.Day},{ExpirationDate.Hour},{ExpirationDate.Minute},{ExpirationDate.Second}"; localSettings.Values["ExpirationTime"] = stringDate; renewSubscription(); result = 2; } LastExpirationDateVerification = DateTime.Now; } } catch (Exception ex) { result = -1; LogException(ex); } return(result); }
private async void SetUpSubscription() { try { // If your app's min version is lower than 15063, you have to check whether PushManager is supported if (PushManager.IsSupported) { var subscription = await PushManager.SubscribeAsync(WebPush.PublicKey, "myChannel1"); _subscriptionJson = subscription.ToJson(); ButtonPushToSelf.IsEnabled = true; TextBoxSubscriptionJson.Text = _subscriptionJson; } else { TextBoxSubscriptionJson.Text = "PushManager is not supported on this version of Windows."; } } catch (Exception ex) { await new MessageDialog(ex.ToString()).ShowAsync(); } }