/// <summary>
        /// 阿里云推送
        /// </summary>
        /// <param name="request"></param>
        /// <param name="message"></param>
        /// <param name="receivers"></param>
        private void Push(NotifyMessageRequest request, Tgnet.FootChat.Push.MessageModel message, long[] receivers, bool remind, NotifyTypes notifyType)
        {
            ExceptionHelper.ThrowIfNull(message, "message");
            receivers = (receivers ?? Enumerable.Empty <long>()).Where(id => id > 0).Distinct().ToArray();
            PushService.PushSetting setting = null;
            if (request.MessageType != MessageType.Online)
            {
                setting = new PushService.PushSetting
                {
                    ExpireTime   = TimeSpan.FromDays(1),
                    StoreOffline = true,
                    NotifyType   = (PushService.PushSettingNotifyTypes)notifyType.To <byte>(),
                };
            }
            List <PushService.TargetsAppKinds> apps = new List <PushService.TargetsAppKinds>()
            {
                PushService.TargetsAppKinds.FootChatAndroid, PushService.TargetsAppKinds.FootChatiOS
            };

            _PushManager.PushJsonMessage(new PushService.PushJsonMessageRequest
            {
                Content     = message.Content,
                ContentType = message.ContentType,
                Extensions  = message.Extensions,
                MessageId   = message.MessageId,
                Sender      = message.Sender,
                SenderName  = message.SenderName,
                SessionId   = message.SessionId,
                SessionType = message.SessionType,
                Timestamp   = message.Timestamp,
                Remind      = WrapperRemind(message, remind)
            }, new PushService.Targets
            {
                Uids    = receivers,
                Apps    = apps.ToArray(),
                Testing = false,
            }, setting);
        }
        public void PushRemind(PushRemindRequest remind, long[] receivers, NotifyTypes?notifyType = null)
        {
            ExceptionHelper.ThrowIfNull(remind, "remind");
            receivers = (receivers ?? Enumerable.Empty <long>()).Where(id => id > 0).Distinct().ToArray();
            PushService.PushSetting setting = new PushService.PushSetting
            {
                NotifyType = notifyType == null ? PushService.PushSettingNotifyTypes.SoundAndVibration : (PushService.PushSettingNotifyTypes)notifyType.To <byte>()
            };
            if (remind.MessageType != MessageType.Online)
            {
                setting.ExpireTime   = TimeSpan.FromDays(1);
                setting.StoreOffline = true;
            }
            var extensions = remind.Extensions ?? new Dictionary <string, string>();

            if (!String.IsNullOrWhiteSpace(remind.URL))
            {
                extensions["url"] = remind.URL.Trim();
            }
            List <PushService.TargetsAppKinds> apps = new List <PushService.TargetsAppKinds>()
            {
                PushService.TargetsAppKinds.FootChatAndroid, PushService.TargetsAppKinds.FootChatiOS
            };

            _PushManager.PushRemind(new PushService.PushRemindRequest
            {
                Accumulate           = remind.Accumulate,
                Body                 = remind.Body,
                Extensions           = extensions,
                Title                = remind.Title,
                AndroidPopupActivity = ANDROIDPOPUPACTIVITY,
            }, new PushService.Targets
            {
                Uids = receivers,
                Apps = apps.ToArray(),
            }, setting);
        }
Beispiel #3
0
 public void PushRemind(PushService.PushRemindRequest request, PushService.Targets targets, PushService.PushSetting setting)
 {
     ExceptionHelper.ThrowIfNull(request, "request");
     using (var provider = _PushServiceChannelProvider.NewChannelProvider())
     {
         provider.Channel.PushRemind(new OAuth2ClientIdentity(), request, targets, setting);
     }
 }