Esempio n. 1
0
        public override Ret CreateMultipush(MessageIOS message, int environment)
        {
            if (message == null)
            {
                throw new ArgumentNullException("message");
            }

            if (!ValidateMessageType(message, environment))
            {
                return(new Ret(-1, "message type or environment error!"));
            }

            if (!message.IsValid())
            {
                return(new Ret(-1, "message invalid!"));
            }

            IDictionary <string, object> parameters = new Dictionary <string, object>();

            parameters.Add("expire_time", message.ExpireTime);
            parameters.Add("message_type", 0);
            parameters.Add("message", message.ToJsonString());
            parameters.Add("environment", environment);

            return(CallRestful(XingeConfig.RESTAPI_CREATEMULTIPUSH, parameters));
        }
Esempio n. 2
0
        public override Ret PushAllDevice(int deviceType, MessageIOS message, int environment)
        {
            if (message == null)
            {
                throw new ArgumentNullException("message");
            }

            if (!ValidateMessageType(message, environment))
            {
                return(new Ret(-1, "message type or environment error!"));
            }

            if (!message.IsValid())
            {
                return(new Ret(-1, "message invalid!"));
            }

            IDictionary <string, object> parameters = new Dictionary <string, object>();

            parameters.Add("expire_time", message.ExpireTime);
            parameters.Add("send_time", message.SendTime);
            parameters.Add("device_type", deviceType);
            parameters.Add("message_type", 0);
            parameters.Add("message", message.ToJsonString());
            parameters.Add("environment", environment);

            if (message.LoopInterval > 0 && message.LoopTimes > 0)
            {
                parameters.Add("loop_interval", message.LoopInterval);
                parameters.Add("loop_times", message.LoopTimes);
            }

            return(CallRestful(XingeConfig.RESTAPI_PUSHALLDEVICE, parameters));
        }
Esempio n. 3
0
        private bool ValidateMessageType(MessageIOS message, int environment)
        {
            long theAccessId = long.MaxValue;

            if (long.TryParse(this.accessId_IOS, out theAccessId))
            {
                if (theAccessId >= XingeConfig.IOS_MIN_ID && (environment == XingeConfig.IOSENV_PROD || environment == XingeConfig.IOSENV_DEV))
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            return(false);
        }
Esempio n. 4
0
        public override Ret PushSingleAccount(int deviceType, string account, MessageIOS message, int environment)
        {
            //ErrorLog.Write(string.Format("deviceType: {0}\taccount: {1}\tmessage: {2}\tenvironment: {3}", deviceType, account, message.ToJsonString(), environment));

            if (message == null)
            {
                throw new ArgumentNullException("message");
            }
            if (string.IsNullOrEmpty(account))
            {
                throw new ArgumentNullException("account");
            }

            if (!ValidateMessageType(message, environment))
            {
                return(new Ret(-1, "message type or environment error!"));
            }

            if (!message.IsValid())
            {
                return(new Ret(-1, "message invalid!"));
            }

            IDictionary <string, object> parameters = new Dictionary <string, object>();

            parameters.Add("expire_time", message.ExpireTime);
            parameters.Add("send_time", message.SendTime);
            parameters.Add("device_type", deviceType);
            parameters.Add("account", account);
            parameters.Add("message_type", 0);
            parameters.Add("message", message.ToJsonString());
            parameters.Add("environment", environment);

            //ErrorLog.Write("C");
            return(CallRestful(XingeConfig.RESTAPI_PUSHSINGLEACCOUNT, parameters));
        }
Esempio n. 5
0
        private void btnTestSend_Click(object sender, System.EventArgs e)
        {
            string     text;
            ConfigData configData = this.LoadConfig(out text);

            if (string.IsNullOrEmpty(text) || configData == null)
            {
                this.ShowMsg("请先选择发送方式并填写配置信息", false);
                return;
            }
            if (!configData.IsValid)
            {
                string text2 = "";
                foreach (string current in configData.ErrorMsgs)
                {
                    text2 += Formatter.FormatErrorMessage(current);
                }
                this.ShowMsg(text2, false);
                return;
            }
            if (string.IsNullOrEmpty(this.txtTestAccoun.Text) || string.IsNullOrEmpty(this.txtTestSubject.Text) || this.txtTestAccoun.Text.Trim().Length == 0 || this.txtTestSubject.Text.Trim().Length == 0)
            {
                this.ShowMsg("接收Account和发送内容不能为空", false);
                return;
            }

            XingePush xingePush = XingePush.CreateInstance(text, configData.SettingsXml);

            bool bol = false;
            Ret  ret = null;

            //发送测试
            IDictionary <string, object> customContent = new Dictionary <string, object>();

            customContent.Add("t", 0);
            customContent.Add("a", 0);
            customContent.Add("id", "0");
            customContent.Add("cid", 0);

            if (android.Checked)
            {
                Message mandroid = new Message()
                {
                    Title         = "海美生活网",
                    Content       = this.txtTestSubject.Text,
                    MessageType   = Ecdev.Plugins.Integration.Xinge.MessageType.TYPE_NOTIFICATION,
                    CustomContent = customContent
                };

                ret = xingePush.PushSingleAccount(0, this.txtTestAccoun.Text.Trim(), mandroid);//按账号推送
                //ret = xinGeSend.PushToSingleDevice(this.txtTestAccoun.Text.Trim(), mandroid);//按token推送
                bol = ret.ret_code == 0;
            }
            else
            {
                MessageIOS mios = new MessageIOS()
                {
                    ExpireTime    = 86400,
                    AlertStr      = txtTestSubject.Text,
                    Badge         = 1,
                    Sound         = "beep.wav",
                    CustomContent = customContent
                };

                mios.AcceptTimes.Add(new AcceptTime(0, 0, 23, 59));

                if (!string.IsNullOrWhiteSpace(this.txtTestAccoun.Text.Trim()))
                {
                    if (cbxEnv.Checked)
                    {
                        ret = xingePush.PushSingleAccount(0, this.txtTestAccoun.Text.Trim(), mios, XingeConfig.IOSENV_PROD);
                    }
                    else
                    {
                        ret = xingePush.PushSingleAccount(0, this.txtTestAccoun.Text.Trim(), mios, XingeConfig.IOSENV_DEV);
                    }
                }
                else
                {
                    if (cbxEnv.Checked)
                    {
                        ret = xingePush.PushAllDevice(0, mios, XingeConfig.IOSENV_PROD);
                    }
                    else
                    {
                        ret = xingePush.PushAllDevice(0, mios, XingeConfig.IOSENV_DEV);
                    }
                }

                bol = ret.ret_code == 0;
            }

            string msg = "发送成功!";

            if (!bol)
            {
                msg = ret.ret_code + ":";
                if (ret.err_msg.LastIndexOf(';') == -1)
                {
                    msg += ret.err_msg;
                }
                else
                {
                    msg += ret.err_msg.Remove(ret.err_msg.LastIndexOf(';'));
                }
            }
            this.ShowMsg(msg, bol);
        }
Esempio n. 6
0
 public abstract Ret CreateMultipush(MessageIOS message, int environment);
Esempio n. 7
0
 public abstract Ret PushTags(int deviceType, List <string> tagList, string tagOp, MessageIOS message, int environment);
Esempio n. 8
0
 public abstract Ret PushAllDevice(int deviceType, MessageIOS message, int environment);
Esempio n. 9
0
 public abstract Ret PushAccountList(int deviceType, List <string> accountList, MessageIOS message, int environment);
Esempio n. 10
0
 public abstract Ret PushSingleAccount(int deviceType, string account, MessageIOS message, int environment);
Esempio n. 11
0
 public abstract Ret PushSingleDevice(string deviceToken, MessageIOS message, int environment);
Esempio n. 12
0
        public override Ret PushTags(int deviceType, List <string> tagList, string tagOp, MessageIOS message, int environment)
        {
            if (message == null)
            {
                throw new ArgumentNullException("message");
            }

            if (!ValidateMessageType(message, environment))
            {
                return(new Ret(-1, "message type or environment error!"));
            }

            if (!message.IsValid() || tagList.Count == 0 || (!tagOp.Equals("AND") && !tagOp.Equals("OR")))
            {
                return(new Ret(-1, "param invalid!"));
            }

            IDictionary <string, object> parameters = new Dictionary <string, object>();

            parameters.Add("expire_time", message.ExpireTime);
            parameters.Add("send_time", message.SendTime);
            parameters.Add("device_type", deviceType);
            parameters.Add("message_type", 0);
            parameters.Add("tags_list", new JArray(tagList).ToString());
            parameters.Add("tags_op", tagOp);
            parameters.Add("message", message.ToJsonString());
            parameters.Add("environment", environment);

            if (message.LoopInterval > 0 && message.LoopTimes > 0)
            {
                parameters.Add("loop_interval", message.LoopInterval);
                parameters.Add("loop_times", message.LoopTimes);
            }

            return(CallRestful(XingeConfig.RESTAPI_PUSHTAGS, parameters));
        }
Esempio n. 13
0
        public override Ret PushAccountList(int deviceType, List <string> accountList, MessageIOS message, int environment)
        {
            if (message == null)
            {
                throw new ArgumentNullException("message");
            }

            if (accountList.Count <= 0)
            {
                throw new ArgumentNullException("accountList");
            }

            if (!ValidateMessageType(message, environment))
            {
                return(new Ret(-1, "message type or environment error!"));
            }

            if (!message.IsValid())
            {
                return(new Ret(-1, "message invalid!"));
            }

            IDictionary <string, object> parameters = new Dictionary <string, object>();

            parameters.Add("expire_time", message.ExpireTime);
            parameters.Add("device_type", deviceType);
            parameters.Add("account_list", new JArray(accountList).ToString());
            parameters.Add("message_type", 0);
            parameters.Add("message", message.ToJsonString());
            parameters.Add("environment", environment);

            return(CallRestful(XingeConfig.RESTAPI_PUSHACCOUNTLIST, parameters));
        }