Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        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);
            }
        }