コード例 #1
0
        public async Task SendNotificationsAsync(Notification notificationObject)
        {
            var allSupscriptions = await _subscriptionsService.getAllSubscriptions();

            foreach (MBSubscription subscription in allSupscriptions)
            {
                try
                {
                    AngularPushNotification _notification = new AngularPushNotification
                    {
                        Title = notificationObject.Title,
                        Body  = $"{notificationObject.Body}",
                        Icon  = (notificationObject.Image != null) ? notificationObject.Image : ""
                    };

                    string             topic      = null;
                    int?               timeToLive = null;
                    PushMessageUrgency urgency    = PushMessageUrgency.Normal;

                    PushMessage notification = new PushMessage(WRAPPER_START + JsonConvert.SerializeObject(_notification, _jsonSerializerSettings) + WRAPPER_END)
                    {
                        Topic      = topic,
                        TimeToLive = timeToLive,
                        Urgency    = urgency
                    };

                    // fire-and-forget
                    var result = _pushClient.RequestPushMessageDeliveryAsync(subscription.PushSubscription, notification, CancellationToken.None);
                }
                catch (Exception e)
                {
                }
            }
        }
コード例 #2
0
        public async Task SendNotificationsAsync()
        {
            SetNotificationProperties(new SubscriptionService(DataUnitOfWork, ObjectLocator), new PushServiceClient());
            AngularPushNotification _notification = new AngularPushNotification
            {
                Title = "Test Notification",
                Body  = $"This is test notification",
                Icon  = ""
            };

            string             topic      = null;
            int?               timeToLive = null;
            PushMessageUrgency urgency    = PushMessageUrgency.Normal;

            PushMessage notification = new PushMessage(WRAPPER_START + JsonConvert.SerializeObject(_notification, _jsonSerializerSettings) + WRAPPER_END)
            {
                Topic      = topic,
                TimeToLive = timeToLive,
                Urgency    = urgency
            };

            try {
                var allSupscriptions = await _subscriptionsService.getAllSubscriptions();

                foreach (MBPushSubscription subscription in allSupscriptions)
                {
                    // fire-and-forget
                    await _pushClient.RequestPushMessageDeliveryAsync(subscription.PushSubscription, notification);
                }
            }
            catch (Exception e)
            {
            }
        }
コード例 #3
0
        private void SendNotification(PushSubscription subscription)
        {
            PushMessage notification = new AngularPushNotification
            {
                Title = "You are registered",
                Body  = $"You're subscription has been registered and you will be notified in case of strong wind forecast",
                Icon  = "assets/icons/icon-96x96.png"
            }.ToPushMessage();

            _pushClient.RequestPushMessageDeliveryAsync(subscription, notification, CancellationToken.None);
        }
コード例 #4
0
        // GET: Notification
        public ActionResult SendMeANotofication()
        {
            var user = GetCurrentUser();

            var device = user.Devices.FirstOrDefault(x => x.Platform == DevicePlatform.PWA);

            if (device != null)
            {
                var subscription = JsonConvert.DeserializeObject <PushSubscription>(device.DeviceName);

                /*
                 *  https://tools.reactpwa.com/vapid
                 *  {
                 *    "subject": "mailto:[email protected]",
                 *    "publicKey": "BPI8YpVBlwF62LYEapQb6zEj8i75ZYPHp3ugnYn0Sc8GBBX0s-pZEL-POjEAbzeIBzMQHx1bcq1yhY982hMm7oA",
                 *    "privateKey": "yMXePWjZMvx_xwZczffh6nG1j-E6oW0fcUVHOYeXR0c"
                 *  }
                 */


                var publicKey  = "BPI8YpVBlwF62LYEapQb6zEj8i75ZYPHp3ugnYn0Sc8GBBX0s-pZEL-POjEAbzeIBzMQHx1bcq1yhY982hMm7oA";
                var privateKey = "yMXePWjZMvx_xwZczffh6nG1j-E6oW0fcUVHOYeXR0c";


                PushServiceClient pushClient = new PushServiceClient();
                pushClient.DefaultAuthentication = new VapidAuthentication(publicKey, privateKey)
                {
                    Subject = "mailto:[email protected]"
                };


                var notification = new AngularPushNotification
                {
                    Title = "news from NINE",
                    Body  = $"from nine to fillter",
                    // Icon = "Assets/icon-96x96.png" - so geht es nicht, andere Art des Pfads
                    Data = new Dictionary <string, object>(),
                    Icon = "img.png"
                };

                notification.Data["url"]      = "https://nine.hm.edu";
                notification.Data["room"]     = "R 2.089";
                notification.Data["lecturer"] = "Hinz";

                var pushNMessage = notification.ToPushMessage();


                pushClient.RequestPushMessageDeliveryAsync(subscription, pushNMessage);
            }


            return(RedirectToAction("Index", "Home"));
        }
コード例 #5
0
        /// <summary>
        /// Send Notification
        /// </summary>
        /// <param name="message">string message</param>
        public void SendNotifications(string message, IEnumerable <PushSubscription> targets)
        {
            // Notification Push Message
            PushMessage notification = new AngularPushNotification
            {
                Title = "Aggiornamento nella reservation",             //Title
                Body  = message,                                       //Body
                Icon  = "../ClientApp/src/assets/icons/icon-96x96.png" //Icon
            }.ToPushMessage();


            foreach (PushSubscription subscription in targets)
            {
                _pushClient.RequestPushMessageDeliveryAsync(subscription, notification);
            }
        }
コード例 #6
0
 public ActionResult <AngularPushNotification> SendNotification([FromBody] AngularPushNotification notification)
 {
     try
     {
         string message = notification.ToJson();
         foreach (SubscriptionDTO subscription in subscriptionsService.GetAll())
         {
             notificationsManager.SendNotification(subscription, message);
         }
         return(Ok(notification));
     }
     catch (Exception exc)
     {
         return(StatusCode(StatusCodes.Status500InternalServerError,
                           $"Something went wrong: {exc.Message}"));
     }
 }
コード例 #7
0
        public void SendNotifications(string title, string body, CancellationToken stoppingToken)
        {
            PushMessage notification = new AngularPushNotification
            {
                Title   = title,
                Body    = body,
                Icon    = "assets/icons/icon-96x96.png",
                Actions = new List <NotificationAction> {
                    new NotificationAction("openwebsite", "Open webapp")
                },
                Data = new Dictionary <string, object> {
                    { "url", _configuration["FrontUrl"] }
                },
            }.ToPushMessage();

            foreach (PushSubscription subscription in _pushSubscriptionsService.GetAll())
            {
                // fire-and-forget
                _pushClient.RequestPushMessageDeliveryAsync(subscription, notification, stoppingToken);
            }
        }