Ejemplo n.º 1
0
        public async Task <JsonResult> Unsubscribe(int categoryID)
        {
            try
            {
                var _userName = User.Identity.Name;

                _subscriptionsRepository.RemoveSubscription(categoryID, _userName);

                Response.StatusCode = (int)HttpStatusCode.OK;

                return(Json(new
                {
                    success = true,
                    statusCode = Response.StatusCode,
                    responseText = "Unsubscription completed",
                }));
            }
            catch (Exception)
            {
                Response.StatusCode = (int)HttpStatusCode.InternalServerError;

                return(Json(new
                {
                    success = true,
                    statusCode = Response.StatusCode,
                    responseText = "Unsubscription not completed",
                }));
            }
        }
Ejemplo n.º 2
0
        public async Task TriggerPush(PushMessage pushMessage)
        {
            pushMessage.Message += $"-{DateTime.Now:dddd HH:mm:ss}";
            var subscriptions = await _subscriptionsRepository.GetSubscriptionsAsync();

            foreach (var sub in subscriptions)
            {
                var subscription = new PushSubscription(sub.Endpoint, sub.Key, sub.AuthSecret);

                var webPushClient = new WebPushClient();
                try
                {
                    webPushClient.SendNotification(subscription, JsonConvert.SerializeObject(pushMessage, new JsonSerializerSettings
                    {
                        ContractResolver = new CamelCasePropertyNamesContractResolver()
                    }), _vapidDetails);
                }
                catch (WebPushException exception)
                {
                    Console.WriteLine("Http STATUS code" + exception.StatusCode);
                }
                catch (Exception exception)
                {
                    await _subscriptionsRepository.RemoveSubscription(sub);

                    Console.WriteLine(exception);
                }
            }
        }