public HttpResponseMessage GetDescendants(TId id, long pageIndex = 0, int pageSize = 100)
        {
            var result = GetDescendantContent(id, pageIndex, pageSize);

            return(result == null
                ? Request.CreateResponse(HttpStatusCode.NotImplemented)
                : Request.CreateResponse(HttpStatusCode.OK, CreatePagedContentRepresentation(
                                             result,
                                             LinkTemplate.PagedDescendants(id),
                                             new { id = id })));
        }
        //pushMessageToApp接口测试代码
        /// <summary>
        /// 对指定应用群推送
        /// </summary>
        private static void pushMessageToApp()
        {
            // 推送主类(方式1,不可与方式2共存)
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            // 推送主类(方式2,不可与方式1共存)此方式可通过获取服务端地址列表判断最快域名后进行消息推送,每10分钟检查一次最快域名
            //IGtPush push = new IGtPush("",APPKEY,MASTERSECRET);

            AppMessage message = new AppMessage();

            // 设置群推接口的推送速度,单位为条/秒,仅对pushMessageToApp(对指定应用群推接口)有效
            message.Speed = 100;

            LinkTemplate template = LinkTemplateDemo();

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

            appIdList.Add(APPID);

            //通知接收者的手机操作系统类型
            List <String> phoneTypeList = new List <string>();
            //phoneTypeList.Add("ANDROID");
            //phoneTypeList.Add("IOS");
            //通知接收者所在省份
            List <String> provinceList = new List <string>();
            //provinceList.Add("浙江");
            //provinceList.Add("上海");
            //provinceList.Add("北京");

            List <String> tagList = new List <string>();

            //tagList.Add("开心");

            message.AppIdList     = appIdList;
            message.PhoneTypeList = phoneTypeList;
            message.ProvinceList  = provinceList;
            message.TagList       = tagList;


            String pushResult = push.pushMessageToApp(message);

            System.Console.WriteLine("-----------------------------------------------");
            System.Console.WriteLine("服务端返回结果:" + pushResult);
        }
示例#3
0
        private static LinkTemplate GetLinkTemplate(string title, string content, string linkurl)
        {
            LinkTemplate linkTemplate = new LinkTemplate();

            linkTemplate.AppId       = Push.APPID;
            linkTemplate.AppKey      = Push.APPKEY;
            linkTemplate.Title       = title;
            linkTemplate.Text        = content;
            linkTemplate.Logo        = "";
            linkTemplate.LogoURL     = Push.LOGOURL;
            linkTemplate.Url         = linkurl;
            linkTemplate.IsRing      = true;
            linkTemplate.IsVibrate   = true;
            linkTemplate.IsClearable = true;
            return(linkTemplate);
        }
示例#4
0
        //pushMessageToApp接口测试代码
        private static void pushMessageToApp()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            AppMessage message = new AppMessage();

            //通知模版:支持TransmissionTemplate、LinkTemplate、NotificationTemplate,此处以LinkTemplate为例
            LinkTemplate template = new LinkTemplate();

            template.AppId   = APPID;                                                 //应用APPID
            template.AppKey  = APPKEY;                                                // 应用APPKEY
            template.Title   = "toAPP消息";                                             // 通知标题
            template.Text    = "toAPP消息";                                             // 通知内容
            template.Logo    = "icon.png";                                            // 通知Logo
            template.LogoURL = "http://www.photophoto.cn/m23/086/010/0860100017.jpg"; //通知栏网络图片展示
            template.Url     = "http://www.baidu.com";                                // 跳转地址
            //template.IsRing = true;					// 收到通知是否响铃,可选,默认响铃
            //template.IsVibrate = true;					// 收到通知是否震动,可选,默认振动
            //template.IsClearable = true;				// 通知是否可清除,可选,默认可清除

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

            List <String> appIdList = new List <string>();

            appIdList.Add(APPID);

            List <String> phoneTypeList = new List <string>();    //通知接收者的手机操作系统类型

            phoneTypeList.Add("ANDROID");
            //phoneTypeList.Add("IOS");

            List <String> provinceList = new List <string>();     //通知接收者所在省份

            //provinceList.Add("浙江");
            //provinceList.Add("上海");
            //provinceList.Add("北京");

            message.AppIdList     = appIdList;
            message.PhoneTypeList = phoneTypeList;
            message.ProvinceList  = provinceList;

            String pushResult = push.pushMessageToApp(message);

            System.Console.WriteLine("-----------pushMessageToApp--------------" + pushResult);
        }
示例#5
0
        //通知链接动作内容
        public static LinkTemplate LinkTemplateDemo()
        {
            LinkTemplate template = new LinkTemplate();

            template.AppId       = APPID;
            template.AppKey      = APPKEY;
            template.Title       = "请填写通知标题";              //通知栏标题
            template.Text        = "请填写通知内容";              //通知栏内容
            template.Logo        = "";                     //通知栏显示本地图片
            template.LogoURL     = "";                     //通知栏显示网络图标,如无法读取,则显示本地默认图标,可为空
            template.Url         = "http://www.baidu.com"; //打开的链接地址
            template.IsRing      = true;                   //接收到消息是否响铃,true:响铃 false:不响铃
            template.IsVibrate   = true;                   //接收到消息是否震动,true:震动 false:不震动
            template.IsClearable = true;                   //接收到消息是否可清除,true:可清除 false:不可清除

            return(template);
        }
示例#6
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (Range.Length != 0)
            {
                hash ^= Range.GetHashCode();
            }
            hash ^= unitKey_.GetHashCode();
            if (Height != 0D)
            {
                hash ^= Height.GetHashCode();
            }
            if (Label.Length != 0)
            {
                hash ^= Label.GetHashCode();
            }
            if (CustomLabel.Length != 0)
            {
                hash ^= CustomLabel.GetHashCode();
            }
            if (LinkTemplate.Length != 0)
            {
                hash ^= LinkTemplate.GetHashCode();
            }
            if (LabelTemplate.Length != 0)
            {
                hash ^= LabelTemplate.GetHashCode();
            }
            if (Rangemax != 0D)
            {
                hash ^= Rangemax.GetHashCode();
            }
            if (Rangemin != 0D)
            {
                hash ^= Rangemin.GetHashCode();
            }
            hash ^= Metadata.GetHashCode();
            if (ShowKey != false)
            {
                hash ^= ShowKey.GetHashCode();
            }
            return(hash);
        }
示例#7
0
        /// <summary>
        /// 通知链接模板
        /// </summary>
        /// <param name="title">通知栏标题</param>
        /// <param name="text">通知栏内容</param>
        /// <param name="logo">通知栏显示本地图片</param>
        /// <param name="logoUrl">通知栏显示网络图标,如无法读取,则显示本地默认图标,可为空</param>
        /// <param name="url">打开的链接地址</param>
        public string PushTemplate(int pushType, string title, string text, string logo, string logoUrl, string url)
        {
            LinkTemplate template = LinkTemplate(title, text, logo, logoUrl, url);

            switch (pushType)
            {
            case Enum_Push.Single:
                return(PushSingle(template));

            case Enum_Push.Multiple:
                return(PushMultiple(template));

            case Enum_Push.All:
                return(PushAll(template));

            default:
                return("false");
            }
        }
示例#8
0
        /// <summary>
        /// 通知链接动作内容
        /// </summary>
        /// <param name="title">通知栏标题</param>
        /// <param name="text">通知栏内容</param>
        /// <param name="logo">通知栏显示本地图片</param>
        /// <param name="logoUrl">通知栏显示网络图标,如无法读取,则显示本地默认图标,可为空</param>
        /// <param name="url">打开的链接地址</param>
        public LinkTemplate LinkTemplate(string title, string text, string logo, string logoUrl, string url)
        {
            LinkTemplate template = new LinkTemplate();

            template.AppId   = APPID;
            template.AppKey  = APPKEY;
            template.Title   = title;   //通知栏标题
            template.Text    = text;    //通知栏内容
            template.Logo    = logo;    //通知栏显示本地图片
            template.LogoURL = logoUrl; //通知栏显示网络图标,如无法读取,则显示本地默认图标,可为空
            template.Url     = url;     //打开的链接地址,如http://www.baidu.com

            //iOS推送需要的pushInfo字段
            //template.setPushInfo(actionLocKey, badge, message, sound, payload, locKey, locArgs, launchImage);

            template.IsRing      = true; //接收到消息是否响铃,true:响铃 false:不响铃
            template.IsVibrate   = true; //接收到消息是否震动,true:震动 false:不震动
            template.IsClearable = true; //接收到消息是否可清除,true:可清除 false:不可清除
            return(template);
        }
示例#9
0
        //通知链接动作内容
        /// <summary>
        /// 通知链接动作内容-IOS不推荐使用该模板
        /// </summary>
        /// <param name="title"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        public static LinkTemplate LinkTemplateDemo(string title, string content)
        {
            LinkTemplate template = new LinkTemplate();

            template.AppId   = APPID;
            template.AppKey  = APPKEY;
            template.Title   = title;   //通知栏标题
            template.Text    = content; //通知栏内容
            template.Logo    = "";      //通知栏显示本地图片
            template.LogoURL = "";      //通知栏显示网络图标,如无法读取,则显示本地默认图标,可为空
            template.Url     = "";      //打开的链接地址

            //iOS推送需要的pushInfo字段
            //template.setPushInfo(actionLocKey, badge, message, sound, payload, locKey, locArgs, launchImage);

            template.IsRing      = true;            //接收到消息是否响铃,true:响铃 false:不响铃
            template.IsVibrate   = true;            //接收到消息是否震动,true:震动 false:不震动
            template.IsClearable = true;            //接收到消息是否可清除,true:可清除 false:不可清除

            return(template);
        }
        //PushMessageToList接口测试代码
        /// <summary>
        /// 对指定列表用户推送
        /// </summary>
        private static void PushMessageToList()
        {
            // 推送主类(方式1,不可与方式2共存)
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            // 推送主类(方式2,不可与方式1共存)此方式可通过获取服务端地址列表判断最快域名后进行消息推送,每10分钟检查一次最快域名
            //IGtPush push = new IGtPush("",APPKEY,MASTERSECRET);
            ListMessage message = new ListMessage();

            LinkTemplate template = LinkTemplateDemo();

            // 用户当前不在线时,是否离线存储,可选
            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>();

            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);
        }
        private static String DeviceToken = "";  //填写IOS系统的DeviceToken
        /// <summary>
        /// 对单个用户的推送
        /// </summary>
        /// <returns></returns>
        public static string PushMessageToSingle()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            //消息模版:网页模板
            LinkTemplate template = LinkTemplateDemo();
            // 单推消息模型
            SingleMessage message = new SingleMessage();

            // 用户当前不在线时,是否离线存储,可选
            message.IsOffline = true;
            // 离线有效时间,单位为毫秒,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;
            message.Data = template;
            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = CLIENTID;
            //target.alias = ALIAS;
            try
            {
                string pushResult = push.pushMessageToSingle(message, target);
                return("发送成功" + pushResult);
                //System.Console.WriteLine("-----------------------------------------------");
                //System.Console.WriteLine("-----------------------------------------------");
                //System.Console.WriteLine("----------------服务端返回结果:" + pushResult);
            }
            catch (RequestException e)
            {
                string requestId = e.RequestId;

                //发送失败后的重发
                string pushResult = push.pushMessageToSingle(message, target, requestId);
                return("失败重发" + pushResult);
                //System.Console.WriteLine("-----------------------------------------------");
                //System.Console.WriteLine("-----------------------------------------------");
                //System.Console.WriteLine("----------------服务端返回结果:" + pushResult);
            }
        }
示例#12
0
        /// <summary>
        /// 网页模板内容
        /// </summary>
        /// <param name="Title">通知栏标题</param>
        /// <param name="Text">通知栏内容</param>
        /// <param name="Logo">通知栏显示本地图片</param>
        /// <param name="LogoURL">通知栏显示网络图标,如无法读取,则显示本地默认图标,可为空</param>
        /// <param name="Url">打开的链接地址</param>
        /// <param name="IsRing">接收到消息是否响铃,true:响铃 false:不响铃 </param>
        /// <param name="IsVibrate">接收到消息是否震动,true:震动 false:不震动</param>
        /// <param name="IsClearable">接收到消息是否可清除,true:可清除 false:不可清除</param>
        /// <returns></returns>
        public static LinkTemplate LinkTemplate(string Title, string Text, string Logo, string LogoURL, string Url, bool IsRing, bool IsVibrate, bool IsClearable)
        {
            LinkTemplate template = new LinkTemplate();

            template.AppId  = APPID;
            template.AppKey = APPKEY;
            //通知栏标题
            template.Title = Title;
            //通知栏内容
            template.Text = Text;
            //通知栏显示本地图片
            template.Logo = Logo;
            //通知栏显示网络图标,如无法读取,则显示本地默认图标,可为空
            template.LogoURL = LogoURL;
            //打开的链接地址
            template.Url = Url;
            //接收到消息是否响铃,true:响铃 false:不响铃
            template.IsRing = IsRing;
            //接收到消息是否震动,true:震动 false:不震动
            template.IsVibrate = IsVibrate;
            //接收到消息是否可清除,true:可清除 false:不可清除
            template.IsClearable = IsClearable;
            return(template);
        }
示例#13
0
        public static bool SendLinkMsgToList(List <string> clientidlist, string title, string content, string linkurl)
        {
            LinkTemplate linkTemplate = Push.GetLinkTemplate(title, content, linkurl);

            return(Push.PushMsgToList(clientidlist, linkTemplate));
        }
示例#14
0
        public static bool SendLinkMsgToSingle(string clientid, string title, string content, string linkurl)
        {
            LinkTemplate linkTemplate = Push.GetLinkTemplate(title, content, linkurl);

            return(Push.PushMsgToSingleDevice(clientid, linkTemplate));
        }
示例#15
0
 public override bool Initialize(bool sortingEnabled, Control control)
 {
     ItemTemplate   = new LinkTemplate(ID);
     SortExpression = ID;
     return(base.Initialize(sortingEnabled, control));
 }