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); } }
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); } }