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) { } } }
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) { } }
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); }
// 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")); }
/// <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); } }
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}")); } }
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); } }