public static void SendNotification(List <BellumGensPushSubscription> subs, StrategyComment comment) { var subject = @"https://bellumgens.com"; foreach (BellumGensPushSubscription sub in subs) { var subscription = new PushSubscription(sub.endpoint, sub.p256dh, sub.auth); var vapidDetails = new VapidDetails(subject, NotificationsService._publicVapidKey, NotificationsService._privateVapidKey); var webPushClient = new WebPushClient(); var payload = new BellumGensNotificationWrapper(comment); try { webPushClient.SendNotification(subscription, payload.ToString(), vapidDetails); } catch (WebPushException exception) { Console.WriteLine(exception); } } }
public async Task <IActionResult> SubmitStrategyComment(StrategyComment comment) { ApplicationUser user = await GetAuthUser(); CSGOStrategy strat = null; comment.User = user; var entity = await _dbContext.StrategyComments.FindAsync(comment.Id); if (entity != null) { _dbContext.Entry(entity).CurrentValues.SetValues(comment); } else { _dbContext.StrategyComments.Add(comment); strat = await _dbContext.CSGOStrategies.FindAsync(comment.StratId); } try { await _dbContext.SaveChangesAsync(); } catch (DbUpdateException e) { System.Diagnostics.Trace.TraceError("Comment user strategy error: " + e.Message); return(BadRequest("Something went wrong...")); } if (strat != null && strat.UserId != user.Id) { List <BellumGensPushSubscription> subs = await _dbContext.BellumGensPushSubscriptions.Where(s => s.UserId == comment.Strategy.UserId).ToListAsync(); await _notificationService.SendNotificationAsync(subs, comment); } return(Ok(comment)); }
public IHttpActionResult SubmitStrategyComment(StrategyComment comment) { string userId = GetAuthUser().Id; CSGOStrategy strat = null; comment.User = _dbContext.Users.Find(userId); var entity = _dbContext.StrategyComments.Find(comment.Id); if (entity != null) { _dbContext.Entry(entity).CurrentValues.SetValues(comment); } else { comment = _dbContext.StrategyComments.Add(comment); strat = _dbContext.Strategies.Find(comment.StratId); } try { _dbContext.SaveChanges(); } catch (DbUpdateException e) { System.Diagnostics.Trace.TraceError("Comment user strategy error: " + e.Message); return(BadRequest("Something went wrong...")); } if (strat != null && strat.UserId != userId) { List <BellumGensPushSubscription> subs = _dbContext.PushSubscriptions.Where(s => s.userId == comment.Strategy.UserId).ToList(); NotificationsService.SendNotification(subs, comment); } return(Ok(comment)); }
public async Task SendNotificationAsync(List <BellumGensPushSubscription> subs, StrategyComment comment) { var subject = @"https://bellumgens.com"; foreach (BellumGensPushSubscription sub in subs) { var subscription = new PushSubscription(sub.Endpoint, sub.P256dh, sub.Auth); var vapidDetails = new VapidDetails(subject, _publicVapidKey, _privateVapidKey); var webPushClient = new WebPushClient(); var payload = new BellumGensNotificationWrapper(comment); try { await webPushClient.SendNotificationAsync(subscription, payload.ToString(), vapidDetails); } catch { } } }