コード例 #1
0
        /// <summary>
        ///     Sends a <see cref="ScheduledNotification"/> to a specified user.
        /// </summary>
        /// <param name="pushDetails">Details on how to reach the user.</param>
        /// <param name="notification">The notification object.</param>
        public async Task SendNotificationAsync(UserPushNotificationDetails pushDetails, SwabbrNotification notification)
        {
            if (pushDetails is null)
            {
                throw new ArgumentNullException(nameof(pushDetails));
            }

            switch (pushDetails.PushNotificationPlatform)
            {
            case PushNotificationPlatform.APNS:
                var objApns  = NotificationJsonExtractor.Extract(PushNotificationPlatform.APNS, notification);
                var jsonApns = JsonConvert.SerializeObject(objApns, jsonSettings);
                await _hubClient.SendAppleNativeNotificationAsync(jsonApns, pushDetails.UserId.ToString());

                return;

            case PushNotificationPlatform.FCM:
                var objFcm  = NotificationJsonExtractor.Extract(PushNotificationPlatform.FCM, notification);
                var jsonFcm = JsonConvert.SerializeObject(objFcm, jsonSettings);
                await _hubClient.SendFcmNativeNotificationAsync(jsonFcm, pushDetails.UserId.ToString());

                return;

            default:
                throw new InvalidOperationException(nameof(pushDetails.PushNotificationPlatform));
            }
        }
コード例 #2
0
 /// <summary>
 ///     Does nothing and returns <see cref="Task.CompletedTask"/>;
 /// </summary>
 public Task SendNotificationAsync(UserPushNotificationDetails pushDetails, SwabbrNotification notification) => Task.CompletedTask;