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", })); } }
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); } } }