Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
        /// <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);
            }
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        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();
            }
        }