public IActionResult Get() { var vapidService = VapidProvider.GetInstance(); var viewModel = new VapidViewModel(); viewModel.PublicKey = vapidService.PublicKey; return(Ok(viewModel)); }
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()); }