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)); }
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)); }
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); }
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)); }
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); }
public abstract Ret CreateMultipush(MessageIOS message, int environment);
public abstract Ret PushTags(int deviceType, List <string> tagList, string tagOp, MessageIOS message, int environment);
public abstract Ret PushAllDevice(int deviceType, MessageIOS message, int environment);
public abstract Ret PushAccountList(int deviceType, List <string> accountList, MessageIOS message, int environment);
public abstract Ret PushSingleAccount(int deviceType, string account, MessageIOS message, int environment);
public abstract Ret PushSingleDevice(string deviceToken, MessageIOS message, int environment);
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)); }
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)); }