/// <inheritdoc /> public PushService(IPushDbContext context, string vapidSubject, string vapidPublicKey, string vapidPrivateKey, TelemetryClient telemetryClient) { _context = context; _client = new WebPushClient(); _telemetryClient = telemetryClient; CheckOrGenerateVapidDetails(vapidSubject, vapidPublicKey, vapidPrivateKey); _vapidDetails = new VapidDetails(vapidSubject, vapidPublicKey, vapidPrivateKey); }
/// <inheritdoc /> public PushService(ApplicationDbContext context, CarWashConfiguration configuration, TelemetryClient telemetryClient) { _context = context; _client = new WebPushClient(); _telemetryClient = telemetryClient; var vapid = configuration.Vapid; CheckOrGenerateVapidDetails(vapid.Subject, vapid.PublicKey, vapid.PrivateKey); _vapidDetails = new VapidDetails(vapid.Subject, vapid.PublicKey, vapid.PrivateKey); }
public static async Task SendPushReminder(Reservation reservation, IPushDbContext context, Notification notification) { var vapidSubject = Environment.GetEnvironmentVariable("VapidSubject", EnvironmentVariableTarget.Process); var vapidPublicKey = Environment.GetEnvironmentVariable("VapidPublicKey", EnvironmentVariableTarget.Process); var vapidPrivateKey = Environment.GetEnvironmentVariable("VapidPrivateKey", EnvironmentVariableTarget.Process); var pushService = new PushService(context, vapidSubject, vapidPublicKey, vapidPrivateKey, new Microsoft.ApplicationInsights.TelemetryClient()); try { await pushService.Send(reservation.UserId, notification); } catch (Exception e) { throw new Exception($"Failed to send push to user with id: {reservation.UserId}. See inner exception.", e); } }