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));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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
                {
                }
            }
        }