コード例 #1
0
ファイル: PushService.cs プロジェクト: ngockhiem27/eshop
        public async Task <HttpStatusCode> UnSubscribe(PushSubscriptionModel subscription)
        {
            var           uri      = API.PushNotification.UnSubscribe();
            StringContent data     = new StringContent(JsonSerializer.Serialize(subscription), Encoding.UTF8, "application/json");
            var           response = await _httpClient.PostAsync(uri, data);

            return(response.StatusCode);
        }
コード例 #2
0
ファイル: PushController.cs プロジェクト: ngockhiem27/eshop
        public async Task <IActionResult> UnSubscribe([FromBody] PushSubscription subscription)
        {
            PushSubscriptionModel subscriptionModel = new PushSubscriptionModel {
                Subscription = subscription
            };
            var code = await _pushService.UnSubscribe(subscriptionModel);

            return(StatusCode((int)code));
        }
コード例 #3
0
        public async Task <IActionResult> UnsubscribeFromPushNotification(Guid userId,
                                                                          [FromBody] PushSubscriptionModel pushSubscriptionModel)
        {
            UserServiceModel user = await _userService.GetByPrincipalAsync(User);

            if (user == null || user.Id != userId)
            {
                return(Unauthorized());
            }

            await _userService.UnsubscribeFromPushNotificationAsync(user.Id, pushSubscriptionModel.DeviceToken);

            return(Ok());
        }
コード例 #4
0
        public async Task <IActionResult> PostAsync([FromBody] PushSubscriptionModel pushSubscription, CancellationToken cancellationToken)
        {
            var device = new Device {
                Name         = Request.Headers["User-Agent"],
                PushEndpoint = pushSubscription.EndPoint,
                PushAuth     = pushSubscription.Keys.Auth,
                PushP256DH   = pushSubscription.Keys.P256dh
            };

            var result = await _dbContext.Devices.AddAsync(device, cancellationToken);

            var response = await _dbContext.SaveChangesAsync(HttpContext.RequestAborted);

            return(Ok(response));
        }
コード例 #5
0
ファイル: PushController.cs プロジェクト: ngockhiem27/eshop
        public async Task <IActionResult> Subscribe([FromBody] PushSubscription subscription)
        {
            CustomerViewModel customer = null;

            if (User.Identity.IsAuthenticated)
            {
                var c = User.Claims.ToList();
                customer = new CustomerViewModel
                {
                    Id    = Int32.Parse(User.Claims.Where(c => c.Type == "UserId").First().Value),
                    Email = User.Claims.Where(c => c.Type == ClaimTypes.Email).First().Value
                };
            }
            PushSubscriptionModel subscriptionModel = new PushSubscriptionModel {
                Customer = customer, Subscription = subscription
            };
            var code = await _pushService.Subscribe(subscriptionModel);

            return(StatusCode((int)code));
        }
コード例 #6
0
 public ActionResult Unsubscribe([FromBody] PushSubscriptionModel model)
 {
     PushHub.Unsubscribe(model.Subscription);
     return(Ok());
 }
コード例 #7
0
ファイル: PushService.cs プロジェクト: ngockhiem27/eshop
 public void UnSubscribe(PushSubscriptionModel subscription)
 {
     _subscriptions.Remove(subscription.Subscription.Endpoint);
 }
コード例 #8
0
ファイル: PushService.cs プロジェクト: ngockhiem27/eshop
 public void Subscribe(PushSubscriptionModel subscription)
 {
     _subscriptions.TryAdd(subscription.Subscription.Endpoint, subscription);
 }
コード例 #9
0
 public IActionResult UnSubscribe([FromBody] PushSubscriptionModel subscription)
 {
     _pushService.UnSubscribe(subscription);
     return(Ok());
 }