private static void SaveSubscription(SubscribeModel subscription) { if (Tracker.Current == null) { Tracker.StartTracking(); } var facetSubscription = new SF.Foundation.PushNotifications.Facets.PushSubscription() { Endpoint = subscription.Subscription.Endpoint, Keys = new Dictionary <string, string>() }; foreach (var key in subscription.Subscription.Keys.Keys) { facetSubscription.Keys.Add(key, subscription.Subscription.Keys[key]); } var result = Guid.Empty; if (Guid.TryParse(subscription.ConfigurationId, out result)) { var configItem = Sitecore.Context.Database.GetItem(new Sitecore.Data.ID(result)); var config = PushNotificationConfigurationService.GetConfiguration(configItem); facetSubscription.VapidPrivateKey = config.PrivateKey; facetSubscription.VapidPublicKey = config.PublicKey; } PushSubscriptionManager.Current[Tracker.Current.Interaction.DeviceId] = facetSubscription; }
public override IRenderingModelBase GetModel() { var model = new SubscribeButtonModel(); FillBaseProperties(model); var result = Guid.Empty; Guid.TryParse(model.Item.Fields[new Sitecore.Data.ID(Fields.Goal)].Value, out result); model.GoalId = result; //Need Public Key to subscribe. model.PublicKey = PushNotificationConfigurationService.GetConfiguration().PublicKey; model.ConfigId = PushNotificationConfigurationService.GetConfigurationId(); return(model); }