Beispiel #1
0
        /// <summary>
        /// 推送多个用户
        /// </summary>
        /// <returns></returns>
        public string PushMultiple(ITemplate template)
        {
            IGtPush     push    = new IGtPush(HOST, APPKEY, MASTERSECRET);
            ListMessage message = new ListMessage();

            message.IsOffline         = true;             // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选
            message.Data = template;
            //message.PushNetWorkType = 0;//判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境

            //设置接收者
            List <Target> targetList = new List <Target>();

            for (var i = 0; i < CLIENTID.Count; i++)
            {
                Target target = new Target();
                target.appId    = APPID;
                target.clientId = CLIENTID[i];
                targetList.Add(target);
            }

            String contentId  = push.getContentId(message, "任务组名");
            String pushResult = push.pushMessageToList(contentId, targetList);

            return(pushResult);
        }
Beispiel #2
0
        /// <summary>
        /// 多消息推送
        /// </summary>
        /// <param name="Title">通知栏标题</param>
        /// <param name="Text">通知栏内容</param>
        /// <param name="Logo">通知栏显示本地图片</param>
        /// <param name="LogoURL">通知栏显示网络图标</param>
        /// <param name="TransmissionType">应用启动类型,1:强制应用启动  2:等待应用启动</param>
        /// <param name="TransmissionContent">透传内容</param>
        /// <param name="IsRing">接收到消息是否响铃,true:响铃 false:不响铃</param>
        /// <param name="IsVibrate">接收到消息是否震动,true:震动 false:不震动</param>
        /// <param name="IsClearable">接收到消息是否可清除,true:可清除 false:不可清除</param>
        /// <param name="beginTime">设置通知定时展示时间,结束时间与开始时间相差需大于6分钟,消息推送后,客户端将在指定时间差内展示消息(误差6分钟)</param>
        /// <param name="endTime">设置通知定时展示时间,结束时间与开始时间相差需大于6分钟,消息推送后,客户端将在指定时间差内展示消息(误差6分钟)</param>
        /// <param name="clientIdList">client列表</param>
        public static void PushMessageToList(string Title, string Text, string Logo, string LogoURL, string TransmissionType, string TransmissionContent, bool IsRing, bool IsVibrate, bool IsClearable, string beginTime, string endTime, List <string> clientIdList)
        {
            // 推送主类(方式1,不可与方式2共存)
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            // 推送主类(方式2,不可与方式1共存)此方式可通过获取服务端地址列表判断最快域名后进行消息推送,每10分钟检查一次最快域名
            //IGtPush push = new IGtPush("",APPKEY,MASTERSECRET);
            ListMessage          message  = new ListMessage();
            NotificationTemplate template = NotificationTemplate(Title, Text, Logo, LogoURL, TransmissionType, TransmissionContent, IsRing, IsVibrate, IsClearable, beginTime, endTime);

            // 用户当前不在线时,是否离线存储,可选
            message.IsOffline = true;
            // 离线有效时间,单位为毫秒,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;
            message.Data = template;
            //message.PushNetWorkType = 0;        //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为不限制网络环境。
            //设置接收者
            List <com.igetui.api.openservice.igetui.Target> targetList = new List <com.igetui.api.openservice.igetui.Target>();

            foreach (string item in clientIdList)
            {
                com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
                target.appId    = APPID;
                target.clientId = item;
                targetList.Add(target);
            }
            String contentId  = push.getContentId(message);
            String pushResult = push.pushMessageToList(contentId, targetList);
        }
Beispiel #3
0
        public string getAPNContentId(string appId, ListMessage message)
        {
            var contentInfo = JsonConvert.DeserializeObject <ContentInfo>(httpPostJSON(new Dictionary <string, object>
            {
                {
                    "action",
                    "apnGetContentIdAction"
                },
                {
                    "appkey",
                    appKey
                },
                {
                    nameof(appId),
                    appId
                },
                {
                    "PI",
                    Convert.ToBase64String(message.Data.getPushInfo().ToByteArray())
                }
            }));
            var result = contentInfo.result;

            if (result.IndexOf("ok") > -1)
            {
                return(contentInfo.contentId);
            }
            throw new Exception("获取 contentId 失败:" + result);
        }
		public void SelectedMessageChanged(ListMessage listMessage)
		{
			if (_messageSelectedEvent != null)
			{
				if (UserCanceledSelectedMessageChange(listMessage))
				{
					if ((listMessage == null ? null : listMessage.ParentAnnotation.Guid) != SelectedMessageGuid)
					{
						// if GUID's are different, reload messages to switch back,
						// but wait _after_ the canceled selection change event completes.
						// The View's Timer will pick this up
						_reloadPending = true;

						// Enhance pH 2013.08: figure out how to keep the list view
						// (or at least the canceled selection) from blinking during this refresh
					}
				}
				else
				{
					_selectedMessage = listMessage;
				}
			}

			GoodTimeToSave();
		}
        private bool UserCanceledSelectedMessageChange(ListMessage listMessage)
        {
            var e = new CancelEventArgs();

            _messageSelectedEvent.Invoke(listMessage, e);
            return(e.Cancel);
        }
        public String getContentId(ListMessage message)
        {
            Dictionary <string, object> param = new Dictionary <string, object>();
            String contentId = String.Empty;

            param.Add("action", "getContentIdAction");
            param.Add("appkey", appKey);
            param.Add("clientData", Convert.ToBase64String(message.Data.getTransparent().ToByteArray()));
            param.Add("transmissionContent", message.Data.getTransmissionContent());
            param.Add("isOffline", message.IsOffline);
            param.Add("offlineExpireTime", message.OfflineExpireTime);
            param.Add("pushType", message.Data.getPushType());

            // post数据
            String Result = httpPostJSON(param);

            System.Console.WriteLine("---------pushMessageToList result-----------" + Result);
            ContentInfo contentInfo = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize <ContentInfo>(Result);
            String      result      = contentInfo.result;

            if (result.IndexOf("ok") > -1)
            {
                contentId = contentInfo.contentId;
            }
            return(contentId);
        }
        protected void btnCalender_Click(object sender, EventArgs e)
        {
            DateTime dateStart = Convert.ToDateTime(txtCalender1.Text);
            DateTime dateEnd   = Convert.ToDateTime(txtCalender2.Text);

            if (lblControl.Text == "Okunmayan")
            {
                ListMessage.DataSource = (from v in db.Visitor
                                          where v.Readed == false &&
                                          v.SendTime >= dateStart &&
                                          v.SendTime <= dateEnd
                                          orderby v.SendTime descending
                                          select new
                {
                    ID = v.ID,
                    FullName = v.FullName,
                    Subject = v.Subject,
                    SendTime = v.SendTime,
                    Readed = v.Readed,
                    Message = (v.Message.Length > 50) ? v.Message.Substring(0, 149) : v.Message
                }).ToList();
                ListMessage.DataBind();
            }
            else if (lblControl.Text == "Okunan")
            {
                ListMessage.DataSource = (from v in db.Visitor
                                          where v.Readed == true &&
                                          v.SendTime >= dateStart &&
                                          v.SendTime <= dateEnd
                                          orderby v.SendTime descending
                                          select new
                {
                    ID = v.ID,
                    FullName = v.FullName,
                    Subject = v.Subject,
                    SendTime = v.SendTime,
                    Readed = v.Readed,
                    Message = (v.Message.Length > 50) ? v.Message.Substring(0, 149) : v.Message
                }).ToList();
                ListMessage.DataBind();
            }
            else
            {
                ListMessage.DataSource = (from v in db.Visitor
                                          where v.SendTime >= dateStart &&
                                          v.SendTime <= dateEnd
                                          orderby v.SendTime descending
                                          select new
                {
                    ID = v.ID,
                    FullName = v.FullName,
                    Subject = v.Subject,
                    SendTime = v.SendTime,
                    Readed = v.Readed,
                    Message = (v.Message.Length > 50) ? v.Message.Substring(0, 149) : v.Message
                }).ToList();
                ListMessage.DataBind();
            }
        }
Beispiel #8
0
        public static void apnPush(string title, string text, string iconUrl, List <string> pushChannels)
        {
            //APN简单推送
            //IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            //APNTemplate template = new APNTemplate();
            //APNPayload apnpayload = new APNPayload();
            //SimpleAlertMsg alertMsg = new SimpleAlertMsg("");
            //apnpayload.AlertMsg = alertMsg;
            //apnpayload.Badge = 11;
            //apnpayload.ContentAvailable = 1;
            //apnpayload.Category = "";
            //apnpayload.Sound = "com.gexin.ios.silence";
            //apnpayload.addCustomMsg("", "");
            //template.setAPNInfo(apnpayload);

            //APN高级推送
            IGtPush            push       = new IGtPush(HOST, APPKEY, MASTERSECRET);
            APNTemplate        template   = new APNTemplate();
            APNPayload         apnpayload = new APNPayload();
            DictionaryAlertMsg alertMsg   = new DictionaryAlertMsg();

            alertMsg.Body         = text;
            alertMsg.ActionLocKey = title;
            alertMsg.LocKey       = title;
            alertMsg.addLocArg("");
            alertMsg.LaunchImage = iconUrl;
            //IOS8.2支持字段
            alertMsg.Title       = "";
            alertMsg.TitleLocKey = "";
            alertMsg.addTitleLocArg("");

            apnpayload.AlertMsg         = alertMsg;
            apnpayload.Badge            = 10;
            apnpayload.ContentAvailable = 1;
            apnpayload.Category         = "";
            apnpayload.Sound            = "";
            apnpayload.addCustomMsg("", "");
            template.setAPNInfo(apnpayload);



            /*单个用户推送接口*/
            //SingleMessage Singlemessage = new SingleMessage();
            //Singlemessage.Data = template;
            //String pushResult = push.pushAPNMessageToSingle(APPID, DeviceToken, Singlemessage);
            //Console.Out.WriteLine(pushResult);

            /*多个用户推送接口*/
            ListMessage listmessage = new ListMessage();

            listmessage.Data = template;
            String contentId = push.getAPNContentId(APPID, listmessage);
            //Console.Out.WriteLine(contentId);
            //List<String> devicetokenlist = new List<string>();
            //devicetokenlist.Add(DeviceToken);
            //String ret = push.pushAPNMessageToList(APPID, contentId, devicetokenlist);
            //Console.Out.WriteLine(ret);
            String ret = push.pushAPNMessageToList(APPID, contentId, pushChannels);
        }
Beispiel #9
0
        /// <summary>
        /// Adds the message into tempdata list
        /// </summary>
        /// <param name="Message">The message.</param>
        private void AddMessage(Message message)
        {
            ListMessage = (List <Message>)TempData["Message"] ?? new List <Message>();
            ListMessage.Add(message);
            TempData["Message"] = ListMessage;

            Logger.Debug(" : " + message.MessageType.ToString() + ": " + message.MessageText);
        }
 private void ajouterSeparateurJour(DateTime date)
 {
     if (ListMessage.Count == 0 || date.DayOfYear > ListMessage.ElementAt(ListMessage.Count - 1).Date.DayOfYear)
     {
         ListMessage.Add(new Message(-1, null,
                                     date.DayOfWeek + " " + date.Day + " " + month(date.Month) + " " + date.Year,
                                     new DateTime(date.Year, date.Month, date.Day), RessourcesSimon.TAG_JOUR_SEPARATEUR));
     }
 }
Beispiel #11
0
        public static Message Unserialize(BinaryReader reader)
        {
            var opcode  = (Opcode)reader.ReadByte();
            var address = reader.ReadAddress();

            Message msg;

            switch (opcode)
            {
            case Opcode.REQUEST:
            {
                msg = RequestMessage.FromReader(address, reader);
                break;
            }

            case Opcode.LIST:
            {
                msg = ListMessage.FromReader(address, reader);
                break;
            }

            case Opcode.MEMPOOL_Add:
            {
                msg = MempoolAddMessage.FromReader(address, reader);
                break;
            }

            /*                case Opcode.MEMPOOL_List:
             *                  {
             *                      msg = MempoolGetMessage.FromReader(address, reader);
             *                      break;
             *                  }
             *
             *              case Opcode.CHAIN_List:
             *                  {
             *                      msg = ChainListMessage.FromReader(address, reader);
             *                      break;
             *                  }
             */

            case Opcode.ERROR:
            {
                msg = ErrorMessage.FromReader(address, reader);
                break;
            }

            default: return(null);
            }

            if (address != null)
            {
                msg.Signature = reader.ReadSignature();
            }

            return(msg);
        }
        private void ListMessage_TargetUpdated(object sender, DataTransferEventArgs e)
        {
            var Items = this.ListMessage.Items;

            if (Items.Count <= 0)
            {
                return;
            }

            ListMessage.ScrollIntoView(Items[Items.Count - 1]);
        }
Beispiel #13
0
    //PushMessageToList接口测试代码
    public static void PushMessageToList(string[] arr, string[] arr2)
    {
        // 推送主类(方式1,不可与方式2共存)
        IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
        // 推送主类(方式2,不可与方式1共存)此方式可通过获取服务端地址列表判断最快域名后进行消息推送,每10分钟检查一次最快域名
        //IGtPush push = new IGtPush("",APPKEY,MASTERSECRET);
        ListMessage message = new ListMessage();

        NotificationTemplate template = NotificationTemplateDemo(arr);

        // 用户当前不在线时,是否离线存储,可选
        message.IsOffline = false;
        // 离线有效时间,单位为毫秒,可选
        message.OfflineExpireTime = 1000 * 3600 * 12;
        message.Data            = template;
        message.PushNetWorkType = 0;        //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为不限制网络环境。
        //设置接收者
        List <com.igetui.api.openservice.igetui.Target> targetList = new List <com.igetui.api.openservice.igetui.Target>();

        com.igetui.api.openservice.igetui.Target target = null;

        for (int i = 0; i < arr2.Length; i++)
        {
            target          = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = arr2[0];
            targetList.Add(target);
        }



        // List<com.igetui.api.openservice.igetui.Target> targetList = new List<com.igetui.api.openservice.igetui.Target>();
        //com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target();
        //target1.appId = APPID;
        //target1.clientId = CLIENTID;

        // 如需要,可以设置多个接收者
        //com.igetui.api.openservice.igetui.Target target2 = new com.igetui.api.openservice.igetui.Target();
        //target2.AppId = APPID;
        //target2.ClientId = "ddf730f6cabfa02ebabf06e0c7fc8da0";

        //targetList.Add(target1);
        //targetList.Add(target2);

        String contentId  = push.getContentId(message);
        String pushResult = push.pushMessageToList(contentId, targetList);

        System.Console.WriteLine("-----------------------------------------------");
        System.Console.WriteLine("服务端返回结果:" + pushResult);
    }
Beispiel #14
0
        internal void AddBlock(Chain chain, Block block)
        {
            if (!Capabilities.HasFlag(PeerCaps.Sync))
            {
                return;
            }

            foreach (var peer in _peers.Values)
            {
                var msg = new ListMessage(this.Keys.Address, this.PublicEndpoint, RequestKind.Blocks);
                msg.AddBlockRange(chain, block.Height, 1);

                SendMessage(peer, msg);
            }
        }
Beispiel #15
0
    public void commandMessageListWithTwoMessage()
    {
        string      otherMessageName = "OTHERMESSAGE";
        ListMessage listMessage      = new ListMessage();

        CommandCreateMessage();
        createMessage.setCommand(START_OF_COMMAND_CREATE + CommandRSATest.KEY_NAME +
                                 COMMAND_NAME + otherMessageName + COMMAND_TEXT +
                                 MESSAGE_TEXT + DOUBLE_QUOTES);
        Assert.AreEqual(true, createMessage.verifyCommand());
        Assert.AreEqual((MESSAGE_CREATE_MESSAGE + otherMessageName), createMessage.action());
        listMessage.setCommand("MESSAGE LIST");
        Assert.AreEqual(true, listMessage.verifyCommand());
        Assert.AreEqual(("\nMessages:" + "\n" + MESSAGE_NAME + "\n" + otherMessageName), listMessage.action());
    }
Beispiel #16
0
        /// <summary>
        /// 给多个用户发送推送(DEMO)
        /// </summary>
        private static void PushMessageToList()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            ListMessage message = new ListMessage();

            /*消息模版:
             *   1.TransmissionTemplate:透传功能模板
             *   2.LinkTemplate:通知打开链接功能模板
             *   3.NotificationTemplate:通知透传功能模板
             *   4.NotyPopLoadTemplate:通知弹框下载功能模板
             */

            TransmissionTemplate template = TransmissionTemplateDemo();

            //NotificationTemplate template =  NotificationTemplateDemo();
            //LinkTemplate template = LinkTemplateDemo();
            //NotyPopLoadTemplate template = NotyPopLoadTemplateDemo();
            template.TransmissionContent = "测试";

            message.IsOffline         = true;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;     // 离线有效时间,单位为毫秒,可选
            message.Data = template;
            //message.PushNetWorkType = 0;             //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境

            //设置接收者
            List <com.igetui.api.openservice.igetui.Target> targetList = new List <com.igetui.api.openservice.igetui.Target>();

            com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target();
            target1.appId = APPID;
            //target1.clientId = CLIENTID;
            target1.clientId = CLIENTID;

            // 如需要,可以设置多个接收者
            com.igetui.api.openservice.igetui.Target target2 = new com.igetui.api.openservice.igetui.Target();
            target2.appId = APPID;
            //target2.clientId = "f563cffaba68587e7ff2f23110f6defd";
            target2.clientId = CLIENTID;

            targetList.Add(target1);
            targetList.Add(target2);

            String contentId  = push.getContentId(message, "ToList_任务组名");
            String pushResult = push.pushMessageToList(contentId, targetList);

            System.Console.WriteLine("-----------------------------------------------");
            System.Console.WriteLine("服务端返回结果:" + pushResult);
        }
Beispiel #17
0
        //PushMessageToList接口测试代码
        public static string PushMessageToList(List <string> cidList, string title, string messageText)
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            ListMessage message = new ListMessage();

            /*消息模版:
             *   1.TransmissionTemplate:透传功能模板
             *   2.LinkTemplate:通知打开链接功能模板
             *   3.NotificationTemplate:通知透传功能模板
             *   4.NotyPopLoadTemplate:通知弹框下载功能模板
             */

            //TransmissionTemplate template =  TransmissionTemplateDemo();
            NotificationTemplate template = NotificationTemplateDemo(title, messageText);;

            //LinkTemplate template = LinkTemplateDemo();
            //NotyPopLoadTemplate template = NotyPopLoadTemplateDemo();

            message.IsOffline         = false;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;      // 离线有效时间,单位为毫秒,可选
            message.Data = template;

            //设置接收者
            List <com.igetui.api.openservice.igetui.Target> targetList = new List <com.igetui.api.openservice.igetui.Target>();

            for (int i = 0; i < cidList.Count; i++)
            {
                com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target();
                target1.appId    = APPID;
                target1.clientId = cidList[i];

                // 如需要,可以设置多个接收者
                //com.igetui.api.openservice.igetui.Target target2 = new com.igetui.api.openservice.igetui.Target();
                //target2.AppId = APPID;
                //target2.ClientId = "ddf730f6cabfa02ebabf06e0c7fc8da0";

                targetList.Add(target1);
                //targetList.Add(target2);
            }

            string contentId  = push.getContentId(message);
            string pushResult = push.pushMessageToList(contentId, targetList);

            //System.Console.WriteLine("-----------------------------------------------");
            //System.Console.WriteLine("服务端返回结果:" + pushResult);
            return(pushResult);
        }
 protected void Page_Load(object sender, EventArgs e)
 {
     ListMessage.DataSource = (from v in db.Visitor
                               orderby v.SendTime descending
                               select new {
         ID = v.ID,
         FullName = v.FullName,
         Subject = v.Subject,
         SendTime = v.SendTime,
         Readed = v.Readed,
         Message = (v.Message.Length > 50) ?  v.Message.Substring(0, 49) + "..." : v.Message
     }).ToList();
     ListMessage.DataBind();
     ((Master)this.Master).Path     = "Ziyaretçi";
     ((Master)this.Master).PathLink = "VisitorPage.aspx";
 }
        protected void btnOkunan_Click(object sender, EventArgs e)
        {
            ListMessage.DataSource = (from v in db.Visitor
                                      where v.Readed == true orderby v.SendTime descending
                                      select new
            {
                ID = v.ID,
                FullName = v.FullName,
                Subject = v.Subject,
                SendTime = v.SendTime,
                Readed = v.Readed,
                Message = (v.Message.Length > 50) ? v.Message.Substring(0, 149) : v.Message
            }).ToList();
            ListMessage.DataBind();

            lblControl.Text = "Okunan";
        }
Beispiel #20
0
        //PushMessageToList接口测试代码推送

        //安卓推送
        public static void PushMessageToList(string title, string text, string transmissioncontent, string iconUrl, List <string> pushChannels)
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            ListMessage message = new ListMessage();

            /*消息模版:
             *   1.TransmissionTemplate:透传功能模板
             *   2.LinkTemplate:通知打开链接功能模板
             *   3.NotificationTemplate:通知透传功能模板
             *   4.NotyPopLoadTemplate:通知弹框下载功能模板
             */
            NotificationTemplate template = NotificationTemplateDemo();

            template.Title               = title;
            template.Text                = text;
            template.Logo                = "icon.png";
            template.LogoURL             = iconUrl;
            template.TransmissionContent = transmissioncontent;

            message.IsOffline         = true;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;     // 离线有效时间,单位为毫秒,可选
            message.Data = template;
            //message.PushNetWorkType = 0;             //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境

            //设置接收者
            List <com.igetui.api.openservice.igetui.Target> targetList = new List <com.igetui.api.openservice.igetui.Target>();

            for (int i = 0; i < pushChannels.Count; i++)
            {
                string clientId = pushChannels[i];
                if (!string.IsNullOrEmpty(clientId))
                {
                    // 如需要,可以设置多个接收者
                    com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
                    target.appId    = APPID;
                    target.clientId = clientId;
                    //target1.alias = ALIAS;
                    targetList.Add(target);
                }
            }

            String contentId  = push.getContentId(message, "msgpush");
            String pushResult = push.pushMessageToList(contentId, targetList);
        }
Beispiel #21
0
        /// <summary>发送通知</summary>
        /// <param name="task">任务信息</param>
        /// <param name="receiverIds">接收者</param>
        /// <param name="options">选项</param>
        public int Send(TaskWorkInfo task, string receiverIds, string options)
        {
            JsonData data = JsonMapper.ToObject(options);

            string payload = data.GetValue("payload", "{}");
            string title   = data.GetValue("title", task.Tags);
            string content = data.GetValue("content", task.Title);

            // 推送消息
            IGtPush push = new IGtPush(this.Host, this.AppKey, this.MasterSecret);

            ListMessage message = new ListMessage();

            // 用户当前不在线时,是否离线存储 (可选)
            message.IsOffline = true;
            // 离线有效时间,单位为毫秒,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;
            // 判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为不限制网络环境。
            message.PushNetWorkType = 0;

            // 拼装透传内容
            string transmissionContent = "{\"title\":\"" + title + "\",\"content\":\"" + content + "\",\"payload\":" + payload + "}";

            message.Data = GetTransmissionTemplate(transmissionContent, this.AppId, this.AppKey);

            IList <string> clientList = MembershipManagement.Instance.AccountBindingService.FindAllBindingObjectIds(receiverIds, "Getui");

            // 设置接收者
            List <Target> targetList = new List <Target>();

            foreach (var item in clientList)
            {
                Target target1 = new Target();

                target1.appId    = this.AppId;
                target1.clientId = item;
                targetList.Add(target1);
            }

            string contentId = push.getContentId(message);

            string result = push.pushMessageToList(contentId, targetList);

            return(0);
        }
        public static void Push(List <string> clientIds, NotificationTemplate template)
        {
            IGtPush     push    = new IGtPush(host, appKey, masterSecret);
            ListMessage message = new ListMessage()
            {
                Data = template
            };

            List <Target> targetList = new List <Target>();

            clientIds.ForEach(clientId => targetList.Add(new Target()
            {
                appId = appId, clientId = clientId
            }));

            string contentId  = push.getContentId(message);
            string pushResult = push.pushMessageToList(contentId, targetList);
        }
Beispiel #23
0
        //PushMessageToList接口测试代码
        private static void PushMessageToList()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            ListMessage message = new ListMessage();

            NotificationTemplate template = new NotificationTemplate();

            template.AppId               = APPID;                                                 // 应用APPID
            template.AppKey              = APPKEY;                                                // 应用APPKEY
            template.Title               = "此处填写通知标题";                                            // 通知标题
            template.Text                = "此处填写通知内容";                                            // 通知内容
            template.Logo                = "icon.png";                                            // 应用Logo
            template.LogoURL             = "http://www.photophoto.cn/m23/086/010/0860100017.jpg"; //通知栏网络图片展示
            template.TransmissionType    = "2";                                                   // 收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动
            template.TransmissionContent = "你需要透传的内容";                                            // 需要透传的内容
            //template.IsRing = true;					// 收到通知是否响铃,可选,默认响铃
            //template.IsVibrate = true;					// 收到通知是否震动,可选,默认振动
            //template.IsClearable = true;				// 通知是否可清除,可选,默认可清除

            message.IsOffline         = true;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;     // 离线有效时间,单位为毫秒,可选
            message.Data = template;

            //设置接收者
            List <com.igetui.api.openservice.igetui.Target> targetList = new List <com.igetui.api.openservice.igetui.Target>();

            com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target();
            target1.appId    = APPID;
            target1.clientId = CLIENTID;

            // 如需要,可以设置多个接收者
            //com.igetui.api.openservice.igetui.Target target2 = new com.igetui.api.openservice.igetui.Target();
            //target2.AppId = APPID;
            //target2.ClientId = "ddf730f6cabfa02ebabf06e0c7fc8da0";

            targetList.Add(target1);
            //targetList.Add(target2);

            String contentId  = push.getContentId(message);
            String pushResult = push.pushMessageToList(contentId, targetList);

            System.Console.WriteLine("-----------PushMessageToList--------------" + pushResult);
        }
Beispiel #24
0
        //static void Main()
        //{
        //    //toList接口每个用户状态返回是否开启,可选
        //    Console.OutputEncoding = Encoding.GetEncoding(936);
        //    Environment.SetEnvironmentVariable("needDetails", "true");

        //    //2.PushMessageToList接口
        //    PushToList();
        //}


        //PushMessageToList接口测试代码
        public static void PushToList(string title, string content, List <string> clientList, bool istz)
        {
            // 推送主类(方式1,不可与方式2共存)
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            // 推送主类(方式2,不可与方式1共存)此方式可通过获取服务端地址列表判断最快域名后进行消息推送,每10分钟检查一次最快域名
            //IGtPush push = new IGtPush("",APPKEY,MASTERSECRET);
            ListMessage message = new ListMessage();

            //NotificationTemplate template = NotificationTemplateDemo(title, content);
            if (istz)
            {
                NotificationTemplate template = NotificationTemplateDemo(title, content);
                message.Data = template;
            }
            else
            {
                TransmissionTemplate template = TransmissionTemplateDemo(title, content);
                message.Data = template;
            }

            // 用户当前不在线时,是否离线存储,可选
            message.IsOffline = false;
            // 离线有效时间,单位为毫秒,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;

            message.PushNetWorkType = 0;        //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为不限制网络环境。
            //设置接收者
            List <com.igetui.api.openservice.igetui.Target> targetList = new List <com.igetui.api.openservice.igetui.Target>();

            foreach (var cid in clientList)
            {
                com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target();
                target1.appId    = APPID;
                target1.clientId = cid;
                //target1.alias = ALIAS1;
                targetList.Add(target1);
            }

            String contentId  = push.getContentId(message);
            String pushResult = push.pushMessageToList(contentId, targetList);

            System.Console.WriteLine("-----------------------------------------------");
            System.Console.WriteLine("服务端返回结果:" + pushResult);
        }
Beispiel #25
0
        private static bool PushMsgToList(List <string> clientidlist, ITemplate msgTemplate)
        {
            bool result = false;

            try
            {
                IGtPush     gtPush      = new IGtPush(Push.HOST, Push.APPKEY, Push.MASTERSECRET);
                ListMessage listMessage = new ListMessage();
                listMessage.IsOffline         = true;
                listMessage.OfflineExpireTime = 2073600000L;
                listMessage.Data = msgTemplate;
                List <Target> list = new List <Target>();
                for (int i = 0; i < clientidlist.Count; i++)
                {
                    string text = clientidlist[i];
                    if (!string.IsNullOrEmpty(text))
                    {
                        Target target = new Target();
                        target.appId    = Push.APPID;
                        target.clientId = text;
                        list.Add(target);
                    }
                }
                string contentId = gtPush.getContentId(listMessage, "msgpush");
                Push.errorMsg = gtPush.pushMessageToList(contentId, list);
                JsonData jsonData     = MyCommon.JsonStrToObj(Push.errorMsg);
                string   jsonObjValue = MyCommon.getJsonObjValue(jsonData, "result");
                if (jsonObjValue.ToLower() == "ok")
                {
                    result = true;
                }
            }
            catch (Exception ex)
            {
                Push.errorMsg += ex.Message;
            }
            return(result);
        }
 public void pushMessageToList(ListMessage message, IListProvider listProvider, IPushEventListener listener)
 {
 }
 public void pushMessageToList(ListMessage message, IListProvider listProvider, IPushEventListener listener)
 {
 }
Beispiel #28
0
        /// <summary>
        /// Finds a message type to handle the message.
        /// </summary>
        public ReceivableMessage Process()
        {
            // Named messages.
            if (NickMessage.CanProcess(this))
            {
                return(new NickMessage(this));
            }
            if (QuitMessage.CanProcess(this))
            {
                return(new QuitMessage(this));
            }
            if (JoinMessage.CanProcess(this))
            {
                return(new JoinMessage(this));
            }
            if (PartMessage.CanProcess(this))
            {
                return(new PartMessage(this));
            }
            if (PrivateMessage.CanProcess(this))
            {
                return(new PrivateMessage(this));
            }
            if (PingMessage.CanProcess(this))
            {
                return(new PingMessage(this));
            }
            if (NoticeMessage.CanProcess(this))
            {
                return(new NoticeMessage(this));
            }
            if (UserModeMessage.CanProcess(this))
            {
                return(new UserModeMessage(this));
            }
            if (ChannelModeMessage.CanProcess(this))
            {
                return(new ChannelModeMessage(this));
            }
            if (KickMessage.CanProcess(this))
            {
                return(new KickMessage(this));
            }
            if (InviteMessage.CanProcess(this))
            {
                return(new InviteMessage(this));
            }
            if (OperwallMessage.CanProcess(this))
            {
                return(new OperwallMessage(this));
            }
            if (Receive.TopicMessage.CanProcess(this))
            {
                return(new Receive.TopicMessage(this));
            }

            // IRCv3 messages.
            if (Receive.v3.CapabilityMessage.CanProcess(this))
            {
                return(new Receive.v3.CapabilityMessage(this));
            }
            if (Receive.v3.AwayMessage.CanProcess(this))
            {
                return(new Receive.v3.AwayMessage(this));
            }

            // Numerics.
            if (NumericMessage.CanProcess(this))
            {
                // Pass all numeric messages to NumericMessage so an event can be fired, then pass it to more specific instances.
                // ReSharper disable once ObjectCreationAsStatement
                new NumericMessage(this);

                if (WelcomeMessage.CanProcess(this))
                {
                    return(new WelcomeMessage(this));
                }
                if (YourHostMessage.CanProcess(this))
                {
                    return(new YourHostMessage(this));
                }
                if (CreatedMessage.CanProcess(this))
                {
                    return(new CreatedMessage(this));
                }
                if (MyInfoMessage.CanProcess(this))
                {
                    return(new MyInfoMessage(this));
                }
                if (SupportMessage.CanProcess(this))
                {
                    return(new SupportMessage(this));
                }
                if (BounceMessage.CanProcess(this))
                {
                    return(new BounceMessage(this));
                }
                if (MOTDEndMessage.CanProcess(this))
                {
                    return(new MOTDEndMessage(this));
                }
                if (MOTDStartMessage.CanProcess(this))
                {
                    return(new MOTDStartMessage(this));
                }
                if (MOTDMessage.CanProcess(this))
                {
                    return(new MOTDMessage(this));
                }
                if (LUserMessage.CanProcess(this))
                {
                    return(new LUserMessage(this));
                }
                if (NamesMessage.CanProcess(this))
                {
                    return(new NamesMessage(this));
                }
                if (EndOfNamesMessage.CanProcess(this))
                {
                    return(new EndOfNamesMessage(this));
                }
                if (TopicMessage.CanProcess(this))
                {
                    return(new TopicMessage(this));
                }
                if (TopicWhoTimeMessage.CanProcess(this))
                {
                    return(new TopicWhoTimeMessage(this));
                }
                if (ListMessage.CanProcess(this))
                {
                    return(new ListMessage(this));
                }
                if (ListEndMessage.CanProcess(this))
                {
                    return(new ListEndMessage(this));
                }
                if (YoureOperMessage.CanProcess(this))
                {
                    return(new YoureOperMessage(this));
                }
                if (AwayMessage.CanProcess(this))
                {
                    return(new AwayMessage(this));
                }
                if (UnAwayMessage.CanProcess(this))
                {
                    return(new UnAwayMessage(this));
                }
                if (NowAwayMessage.CanProcess(this))
                {
                    return(new NowAwayMessage(this));
                }
                if (ChannelModeIsMessage.CanProcess(this))
                {
                    return(new ChannelModeIsMessage(this));
                }
                if (UModeIsMessage.CanProcess(this))
                {
                    return(new UModeIsMessage(this));
                }
                if (VersionMessage.CanProcess(this))
                {
                    return(new VersionMessage(this));
                }
                if (TimeMessage.CanProcess(this))
                {
                    return(new TimeMessage(this));
                }
                if (WhoMessage.CanProcess(this))
                {
                    return(new WhoMessage(this));
                }
                if (WhoisMessage.CanProcess(this))
                {
                    return(new WhoisMessage(this));
                }
                if (EndOfWhoMessage.CanProcess(this))
                {
                    return(new EndOfWhoMessage(this));
                }
                if (EndOfWhoisMessage.CanProcess(this))
                {
                    return(new EndOfWhoisMessage(this));
                }
                if (BanListMessage.CanProcess(this))
                {
                    return(new BanListMessage(this));
                }
                if (EndOfBanListMessage.CanProcess(this))
                {
                    return(new EndOfBanListMessage(this));
                }
                if (InviteListMessage.CanProcess(this))
                {
                    return(new InviteListMessage(this));
                }
                if (EndOfInviteListMessage.CanProcess(this))
                {
                    return(new EndOfInviteListMessage(this));
                }
                if (ExceptListMessage.CanProcess(this))
                {
                    return(new ExceptListMessage(this));
                }
                if (EndOfExceptListMessage.CanProcess(this))
                {
                    return(new EndOfExceptListMessage(this));
                }
                if (IsOnMessage.CanProcess(this))
                {
                    return(new IsOnMessage(this));
                }

                // Catch all for unhandled error messages.
                if (ErrorMessage.CanProcess(this))
                {
                    return(new ErrorMessage(this));
                }
            }

            Console.WriteLine("Message handler for \"" + Text + "\" not found.");
            return(null);
        }
Beispiel #29
0
        //PushMessageToList接口测试代码
        private static void PushMessageToList()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            ListMessage message = new ListMessage();

            NotificationTemplate template = new NotificationTemplate();
            template.AppId = APPID;                             // 应用APPID
            template.AppKey = APPKEY;                           // 应用APPKEY
            template.Title = "此处填写通知标题";                // 通知标题
            template.Text = "此处填写通知内容";                 // 通知内容
            template.Logo = "icon.png";                         // 应用Logo
            template.LogoURL = "http://www.photophoto.cn/m23/086/010/0860100017.jpg"; //通知栏网络图片展示
            template.TransmissionType = "2";                    // 收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动
            template.TransmissionContent = "你需要透传的内容";  // 需要透传的内容
            //template.IsRing = true;					// 收到通知是否响铃,可选,默认响铃
            //template.IsVibrate = true;					// 收到通知是否震动,可选,默认振动
            //template.IsClearable = true;				// 通知是否可清除,可选,默认可清除

            message.IsOffline = true;                         // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;            // 离线有效时间,单位为毫秒,可选
            message.Data = template;

            //设置接收者
            List<com.igetui.api.openservice.igetui.Target> targetList = new List<com.igetui.api.openservice.igetui.Target>();
            com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target();
            target1.appId = APPID;
            target1.clientId = CLIENTID;

            // 如需要,可以设置多个接收者
            //com.igetui.api.openservice.igetui.Target target2 = new com.igetui.api.openservice.igetui.Target();
            //target2.AppId = APPID;
            //target2.ClientId = "ddf730f6cabfa02ebabf06e0c7fc8da0";

            targetList.Add(target1);
            //targetList.Add(target2);

            String contentId = push.getContentId(message);
            String pushResult = push.pushMessageToList(contentId, targetList);
            System.Console.WriteLine("-----------PushMessageToList--------------" + pushResult);
        }
        public String getContentId(ListMessage message)
        {
            Dictionary<string, object> param = new Dictionary<string, object>();
            String contentId = String.Empty;

            param.Add("action", "getContentIdAction");
            param.Add("appkey", appKey);
            param.Add("clientData", Convert.ToBase64String(message.Data.getTransparent().ToByteArray()));
            param.Add("transmissionContent", message.Data.getTransmissionContent());
            param.Add("isOffline", message.IsOffline);
            param.Add("offlineExpireTime", message.OfflineExpireTime);
            param.Add("pushType", message.Data.getPushType());

            // post数据
            String Result = httpPostJSON(param);
            System.Console.WriteLine("---------pushMessageToList result-----------" + Result);
            ContentInfo contentInfo = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<ContentInfo>(Result);
            String result = contentInfo.result;
            if (result.IndexOf("ok") > -1)
            {
                contentId = contentInfo.contentId;
            }
            return contentId;
        }
Beispiel #31
0
        private Message HandleMessage(Peer peer, Message msg)
        {
            if (msg.IsSigned && msg.Address != Address.Null)
            {
                peer.SetAddress(msg.Address);
            }
            else
            {
                return(new ErrorMessage(Address, P2PError.MessageShouldBeSigned));
            }

            switch (msg.Opcode)
            {
            case Opcode.EVENT:
            {
                var evtMessage = (EventMessage)msg;
                var evt        = evtMessage.Event;
                Logger.Message("New event: " + evt.ToString());
                return(null);
            }

            case Opcode.REQUEST:
            {
                var request = (RequestMessage)msg;

                if (request.NexusName != Nexus.Name)
                {
                    return(new ErrorMessage(Address, P2PError.InvalidNexus));
                }

                if (request.Kind == RequestKind.None)
                {
                    return(null);
                }

                var answer = new ListMessage(this.Address, request.Kind);

                if (request.Kind.HasFlag(RequestKind.Peers))
                {
                    answer.SetPeers(this.Peers.Where(x => x != peer).Select(x => x.Endpoint));
                }

                if (request.Kind.HasFlag(RequestKind.Chains))
                {
                    var chains = Nexus.Chains.Select(x => Nexus.FindChainByName(x)).Select(x => new ChainInfo(x.Name, Nexus.GetParentChainByName(x.Name), x.LastBlock != null ? x.LastBlock.Height : 0));
                    answer.SetChains(chains);
                }

                if (request.Kind.HasFlag(RequestKind.Mempool))
                {
                    var txs = _mempool.GetTransactions().Select(x => Base16.Encode(x.ToByteArray(true)));
                    answer.SetMempool(txs);
                }

                if (request.Kind.HasFlag(RequestKind.Blocks))
                {
                    foreach (var entry in request.Blocks)
                    {
                        var chain = this.Nexus.FindChainByName(entry.Key);
                        if (chain == null)
                        {
                            continue;
                        }

                        var startBlock = entry.Value;
                        if (startBlock > chain.BlockHeight)
                        {
                            continue;
                        }

                        var blockList    = new List <string>();
                        var currentBlock = startBlock;
                        while (blockList.Count < 50 && currentBlock <= chain.BlockHeight)
                        {
                            var block = chain.FindBlockByHeight(currentBlock);
                            var bytes = block.ToByteArray();
                            var str   = Base16.Encode(bytes);

                            foreach (var tx in chain.GetBlockTransactions(block))
                            {
                                var txBytes = tx.ToByteArray(true);
                                str += "/" + Base16.Encode(txBytes);
                            }

                            blockList.Add(str);
                            currentBlock++;
                        }

                        answer.AddBlockRange(chain.Name, startBlock, blockList);
                    }
                }

                return(answer);
            }

            case Opcode.LIST:
            {
                var listMsg = (ListMessage)msg;

                var outKind = RequestKind.None;

                if (listMsg.Kind.HasFlag(RequestKind.Peers))
                {
                    var newPeers = listMsg.Peers.Where(x => !IsKnown(x));
                    foreach (var entry in listMsg.Peers)
                    {
                        Logger.Message("New peer: " + entry.ToString());
                    }
                    QueueEndpoints(newPeers);
                }

                var blockFetches = new Dictionary <string, uint>();
                if (listMsg.Kind.HasFlag(RequestKind.Chains))
                {
                    foreach (var entry in listMsg.Chains)
                    {
                        var chain = Nexus.FindChainByName(entry.name);
                        // NOTE if we dont find this chain then it is too soon for ask for blocks from that chain
                        if (chain != null && chain.BlockHeight < entry.height)
                        {
                            blockFetches[entry.name] = chain.BlockHeight + 1;
                        }
                    }
                }

                if (listMsg.Kind.HasFlag(RequestKind.Mempool))
                {
                    int submittedCount = 0;
                    foreach (var txStr in listMsg.Mempool)
                    {
                        var bytes = Base16.Decode(txStr);
                        var tx    = Transaction.Unserialize(bytes);
                        try
                        {
                            _mempool.Submit(tx);
                            submittedCount++;
                        }
                        catch
                        {
                        }

                        Logger.Message(submittedCount + " new transactions");
                    }
                }

                if (listMsg.Kind.HasFlag(RequestKind.Blocks))
                {
                    bool addedBlocks = false;

                    foreach (var entry in listMsg.Blocks)
                    {
                        var chain = Nexus.FindChainByName(entry.Key);
                        if (chain == null)
                        {
                            continue;
                        }

                        var blockRange   = entry.Value;
                        var currentBlock = blockRange.startHeight;
                        foreach (var rawBlock in blockRange.rawBlocks)
                        {
                            var temp = rawBlock.Split('/');

                            var block = Block.Unserialize(Base16.Decode(temp[0]));

                            var transactions = new List <Transaction>();
                            for (int i = 1; i < temp.Length; i++)
                            {
                                var tx = Transaction.Unserialize(Base16.Decode(temp[i]));
                                transactions.Add(tx);
                            }

                            // TODO this wont work in the future...
                            try
                            {
                                chain.AddBlock(block, transactions, null);

                                foreach (var hash in block.TransactionHashes)
                                {
                                    var events = block.GetEventsForTransaction(hash);
                                    foreach (var evt in events)
                                    {
                                        AddEvent(evt);
                                    }
                                }
                            }
                            catch (Exception e)
                            {
                                throw new Exception("block add failed");
                            }

                            Logger.Message($"Added block #{currentBlock} to {chain.Name}");
                            addedBlocks = true;
                            currentBlock++;
                        }
                    }

                    if (addedBlocks)
                    {
                        outKind |= RequestKind.Chains;
                    }
                }

                if (blockFetches.Count > 0)
                {
                    outKind |= RequestKind.Blocks;
                }

                if (outKind != RequestKind.None)
                {
                    var answer = new RequestMessage(outKind, Nexus.Name, this.Address);

                    if (blockFetches.Count > 0)
                    {
                        answer.SetBlocks(blockFetches);
                    }

                    return(answer);
                }

                break;
            }

            case Opcode.MEMPOOL_Add:
            {
                var memtx    = (MempoolAddMessage)msg;
                var prevSize = _mempool.Size;
                foreach (var tx in memtx.Transactions)
                {
                    _mempool.Submit(tx);
                }
                var count = _mempool.Size - prevSize;
                Logger.Message($"Added {count} txs to the mempool");
                break;
            }

            case Opcode.BLOCKS_List:
            {
                break;
            }

            case Opcode.ERROR:
            {
                var errorMsg = (ErrorMessage)msg;
                if (string.IsNullOrEmpty(errorMsg.Text))
                {
                    Logger.Error($"ERROR: {errorMsg.Code}");
                }
                else
                {
                    Logger.Error($"ERROR: {errorMsg.Code} ({errorMsg.Text})");
                }
                break;
            }
            }

            Logger.Message("No answer sent.");
            return(null);
        }
        public void SelectedMessageChanged(ListMessage listMessage)
        {
            if (_messageSelectedEvent != null)
            {
                if (UserCanceledSelectedMessageChange(listMessage))
                {
                    if ((listMessage == null ? null : listMessage.ParentAnnotation.Guid) != SelectedMessageGuid)
                    {
                        // if GUID's are different, reload messages to switch back,
                        // but wait _after_ the canceled selection change event completes.
                        // The View's Timer will pick this up
                        _reloadPending = true;

                        // Enhance pH 2013.08: figure out how to keep the list view
                        // (or at least the canceled selection) from blinking during this refresh
                    }
                }
                else
                {
                    _selectedMessage = listMessage;
                }
            }

            GoodTimeToSave();
        }
Beispiel #33
0
 public void Clear()
 {
     ListMessage.Clear();
     MessageType = MessageTypeEnum.Message;
 }
Beispiel #34
0
        private string PushMessageToListIOS(RequestPushMessageToList req)
        {
            try
            {
                IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

                ListMessage message = new ListMessage();

                TransmissionTemplate template = TransmissionTemplateIOS(req.Title);

                message.IsOffline = true;                         // 用户当前不在线时,是否离线存储,可选
                message.OfflineExpireTime = 1000 * 3600 * 12;            // 离线有效时间,单位为毫秒,可选
                message.Data = template;

                //设置接收者
                var targetList = new List<com.igetui.api.openservice.igetui.Target>();
                string[] cds = req.Clientids.Split(",".ToCharArray());

                foreach (string s in cds)
                {
                    var target1 = new com.igetui.api.openservice.igetui.Target();
                    target1.appId = APPID;
                    target1.clientId = s;
                    targetList.Add(target1);
                }

                String contentId = push.getContentId(message);
                String pushResult = push.pushMessageToList(contentId, targetList);

                return pushResult;
            }
            catch (Exception ex)
            {
                return ex.ToString();
            }
        }
 public void SelectedMessageChanged(ListMessage listMessage)
 {
     if (_messageSelectedEvent != null)
     {
         if (listMessage == null) //nothing is selected now
         {
             _messageSelectedEvent.Raise(null, null);
         }
         else
         {
             _messageSelectedEvent.Raise(listMessage.ParentAnnotation, listMessage.Message);
         }
     }
     GoodTimeToSave();
 }
 private bool UserCanceledSelectedMessageChange(ListMessage listMessage)
 {
     var e = new CancelEventArgs();
     _messageSelectedEvent.Invoke(listMessage, e);
     return e.Cancel;
 }
 public void ajouterMessage(Utilisateur auteur, string chaine, DateTime date, Boolean important)
 {
     ajouterSeparateurJour(date);
     ListMessage.Add(new Message(idMessage++, auteur, chaine, date, important));
 }