Esempio n. 1
0
        public IActionResult Get()
        {
            var vapidService = VapidProvider.GetInstance();

            var viewModel = new VapidViewModel();

            viewModel.PublicKey = vapidService.PublicKey;

            return(Ok(viewModel));
        }
Esempio n. 2
0
        public async Task <IActionResult> Get()
        {
            var vapidProvider = VapidProvider.GetInstance();

            var vapidDetails = new VapidDetails(
                "http://localhost:5000",
                vapidProvider.PublicKey,
                vapidProvider.PrivateKey);

            var webPushClient = new WebPushClient();

            webPushClient.SetVapidDetails(vapidDetails);

            // send notification
            var payload = new PushNotificationPayload
            {
                Msg  = "Test Message to everyone",
                Icon = "/assets/message.jpg"
            };

            foreach (var sub in _subscriptions)
            {
                try
                {
                    await webPushClient
                    .SendNotificationAsync(
                        sub,
                        JsonConvert.SerializeObject(payload),
                        vapidDetails);
                }
                catch (WebPushException exception)
                {
                    var statusCode = exception.StatusCode;
                    return(new StatusCodeResult((int)statusCode));
                }
                catch (Exception ex)
                {
                    return(new StatusCodeResult(500));
                }
            }

            return(new OkResult());
        }