コード例 #1
0
        public void Execute(IJobExecutionContext context)
        {
            var dataMap  = context.JobDetail.JobDataMap;
            var category = dataMap.GetString("category");
            var skills   = dataMap.GetString("skills");

            var pnm = new PushNewsModel()
            {
                id             = dataMap.GetString("idd"),
                lat            = dataMap.GetString("lat"),
                lng            = dataMap.GetString("lng"),
                title          = dataMap.GetString("title"),
                description    = dataMap.GetString("description"),
                expirationdate = dataMap.GetString("expirationdate"),
                radius         = dataMap.GetString("radius"),
                millisecond    = dataMap.GetString("millisecond")
            };

            var regcountlist = GetTableRows(GetRegIdbyCategoryCount(category));

            if (regcountlist == null || regcountlist.Count <= 0)
            {
                return;
            }
            var i         = int.Parse(regcountlist[0]["rgcount"].ToString());
            var totalPage = (int)Math.Ceiling((double)i / 1000);

            for (var j = 1; j <= totalPage; j++)
            {
                var treglist = GetTableRowsList(GetRegIdbyCategory(category, j));
                SendNotification(treglist, pnm);
            }
        }
コード例 #2
0
        private static void SendNotification(ArrayList deviceId, PushNewsModel message)
        {
            try
            {
                //var theString = string.Join("\",\"", deviceId.ToArray());
                //var theString = "[" + "'" + theString1.Replace(",", "','") + "'" + "]";
                const string googleAppId = "AIzaSyArRNIoFN07_MSfPD4nAFZKqD-F4wKttbc";
                const string senderId    = "916801941777";
                //PushNewsModel value = message;
                HttpWebRequest tRequest = (HttpWebRequest)WebRequest.Create("https://android.googleapis.com/gcm/send");
                //tRequest.ProtocolVersion = HttpVersion.Version11;
                tRequest.Method      = "POST";
                tRequest.KeepAlive   = false;
                tRequest.ContentType = " application/json";
                //tRequest.Headers.Add(string.Format("Authorization: key={0}", googleAppId));
                tRequest.Headers.Add(HttpRequestHeader.Authorization, string.Format("Key={0}", googleAppId));

                tRequest.Headers.Add(string.Format("Sender: id={0}", senderId));

                var messages = new Dictionary <string, object>();
                var data     = new Dictionary <string, object>
                {
                    { "id", message.id },
                    { "lat", message.lat },
                    { "lng", message.lng },
                    { "millisecond", message.millisecond },
                    { "radius", message.radius },
                    { "title", message.title },
                    { "description", message.description },
                    { "expirationdate", message.expirationdate }
                };

                messages.Add("data", data);

                messages.Add("registration_ids", deviceId.ToArray().ToList());
                messages.Add("collapse_key", message.id);
                messages.Add("time_to_live", 108);
                //messages.Add("collapse_key", message.id);

                var postData = JsonConvert.SerializeObject(messages);

                //var postData = "{ \"collapse_key\": \"" + message.id + "\", \"time_to_live\": 108, \"data\": { \"id\": \"" + message.id + "\", \"lat\": \"" + message.lat + "\", \"lng\": \"" + message.lng + "\", \"radius\": \"" + message.radius + "\", \"millisecond\": \"" + message.millisecond + "\", \"time\": \"" +
                //DateTime.Now.ToString(CultureInfo.InvariantCulture) + "\", \"title\": \"" + message.title + "\", \"description\": \"" + message.description + "\", \"expirationdate\": \"" + message.expirationdate + "\" }, \"registration_id\": [ \"" + theString + "\" ] }";
                //Console.WriteLine(postData);
                var byteArray = Encoding.UTF8.GetBytes(postData);
                tRequest.ContentLength = byteArray.Length;

                var dataStream = tRequest.GetRequestStream();
                dataStream.Write(byteArray, 0, byteArray.Length);
                dataStream.Close();

                var tResponse = (HttpWebResponse)tRequest.GetResponse();

                dataStream = tResponse.GetResponseStream();

                if (dataStream == null)
                {
                    return;
                }
                var tReader = new StreamReader(dataStream);

                string res = tReader.ReadToEnd();

                tReader.Close();
                dataStream.Close();
                tResponse.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }