コード例 #1
0
ファイル: SnsService.cs プロジェクト: junlistar/JpushApi
        /// <summary>
        /// 推送消息给所有APP端
        /// </summary>
        /// <param name="request">request.PushMsg</param>
        /// <returns></returns>
        public SnsResponse JpushSendToAll(SnsRequest request)
        {
            PushPayload pushPayload = GetPushPayload(request);

            //写记录
            System.Threading.Tasks.Task.Run(() =>
            {
                Sns _model            = new Sns();
                _model.CreateTime     = DateTime.Now;
                _model.CreatePersonId = request.UserId;
                _model.PushMsg        = request.PushMsg;
                _model.IsToAll        = 1;
                if (request.PushExtras != null)
                {
                    _model.ParamString = request.PushExtras.ToString();
                }
                _core.Insert(_model);
            });

            var         result   = JPushClient.SendPush(pushPayload);
            SnsResponse response = new SnsResponse();

            response.JpushMsgId = result.msg_id;
            return(response);
        }
 protected override void Given()
 {
     Sns.FindTopicAsync("TopicName")
     .Returns(new Topic {
         TopicArn = TopicArn
     });
 }
コード例 #3
0
ファイル: SnsService.cs プロジェクト: junlistar/JpushApi
        /// <summary>
        /// 推送消息给别名用户
        /// </summary>
        /// <param name="request">request.PushUsers 以,分隔的多个别名</param>
        /// <returns></returns>
        public SnsResponse JpushSendToAlias(SnsRequest request)
        {
            PushPayload pushPayload = GetPushPayload(request);
            var         userlist    = request.PushUsers.Split(',');

            //写记录
            System.Threading.Tasks.Task.Run(() =>
            {
                Sns _model            = new Sns();
                _model.CreateTime     = DateTime.Now;
                _model.CreatePersonId = request.UserId;
                _model.IsToAll        = 0;
                _model.PushUserId     = request.PushUsers;
                _model.PushMsg        = request.PushMsg;
                if (request.PushExtras != null)
                {
                    _model.ParamString = request.PushExtras.ToString();
                }
                _core.Insert(_model);
            });

            SnsResponse response = new SnsResponse();


            int splitSize = _defaultPushGroupSize;                                        //分割的块大小

            Object[] subAry = LOT.Common.StringToolsHelper.splitAry(userlist, splitSize); //分割后的子块数组

            //分批次推送操作
            for (int i = 0; i < subAry.Length; i++)
            {
                string[] aryItem = (string[])subAry[i];
                var      itemStr = string.Join(",", aryItem);
                try
                {
                    pushPayload.audience = Audience.s_alias(aryItem);

                    var result = JPushClient.SendPush(pushPayload);
                    response.JpushMsgId = result.msg_id;

                    #region 推送日志

                    System.Threading.Tasks.Task.Run(() =>
                    {
                        //写日志
                        Logger.Error("SnsService———>JpushSendToAlias:" + string.Format("认证用户发送jpush用户ID列表:{0}", itemStr));
                    });

                    #endregion
                }
                catch (Exception e)
                {
                    Logger.Error("SnsService———>JpushSendToAlias:" + string.Format("认证用户发送jpush:{0},提供的错误信息:{1},id列表:{2}", e.Message, ((cn.jpush.api.common.APIRequestException)e).ErrorMessage, itemStr));
                }
                //休息一秒 避免:Request times of the app_key exceed the limit of current time window
                System.Threading.Thread.Sleep(100);
            }

            return(response);
        }
コード例 #4
0
ファイル: WhenPublishing.cs プロジェクト: slang25/JustSaying
 protected override void Given()
 {
     _serializationRegister.Serialize(Arg.Any <Message>(), Arg.Is(true)).Returns(Message);
     Sns.FindTopicAsync("TopicName")
     .Returns(new Topic {
         TopicArn = TopicArn
     });
 }
コード例 #5
0
 protected override void Given()
 {
     Sns.FindTopicAsync("TopicName")
     .Returns(new Topic {
         TopicArn = TopicArn
     });
     Sns.PublishAsync(Arg.Any <PublishRequest>())
     .Returns(PublishResult);
 }
コード例 #6
0
        protected override void Given()
        {
            _tags = new Dictionary <string, string>
            {
                ["TagOne"] = "Tag-One",
                ["TagTwo"] = "Tag-Two"
            };

            Sns.FindTopicAsync(Arg.Any <string>())
            .Returns(new Topic {
                TopicArn = TopicArn
            });

            Sns.When(x => x.TagResourceAsync(Arg.Any <TagResourceRequest>()))
            .Do(x => _actualCreateRequest = x.Arg <TagResourceRequest>());
        }
 protected override Task WhenAsync()
 {
     Sns.PublishAsync(Arg.Any <PublishRequest>()).Returns(ThrowsException);
     return(Task.CompletedTask);
 }
コード例 #8
0
 public void MessageAttributeDataTypeIsPublished()
 {
     Sns.Received().PublishAsync(Arg.Is <PublishRequest>(x => x.MessageAttributes.Single().Value.DataType == MessageAttributeDataType));
 }
コード例 #9
0
 public void MessageAttributeKeyIsPublished()
 {
     Sns.Received().PublishAsync(Arg.Is <PublishRequest>(x => x.MessageAttributes.Single().Key == MessageAttributeKey));
 }
コード例 #10
0
 public void MessageIsPublishedToCorrectLocation()
 {
     Sns.Received().PublishAsync(Arg.Is <PublishRequest>(x => x.TopicArn == TopicArn));
 }
コード例 #11
0
 public void MessageSubjectIsObjectType()
 {
     Sns.Received().PublishAsync(Arg.Is <PublishRequest>(x => x.Subject == typeof(SimpleMessage).Name));
 }
コード例 #12
0
 public void MessageIsPublishedToSnsTopic()
 {
     Sns.Received().PublishAsync(Arg.Is <PublishRequest>(x => B(x)));
 }
コード例 #13
0
 public void TagResourceRequestIsIssued()
 {
     Sns.Received(1).TagResourceAsync(Arg.Any <TagResourceRequest>());
 }
 public void MessageSubjectIsObjectType()
 {
     Sns.Received().PublishAsync(Arg.Is <PublishRequest>(x => x.Subject == new GenericMessageSubjectProvider().GetSubjectForType(typeof(MessageWithTypeParameters <int, string>))));
 }