internal static MessageResponse SendMessage(ViewMessage msg)
        {
            string apiToken = ConfigurationManager.AppSettings["ApiToken"];
             string applicationCode = ConfigurationManager.AppSettings["ApplicationCode"];
             List<string> deviceTokens = new List<string>();
             List<string> phoneList = new List<string>();

             Message newMessage = new Message();

             newMessage.MessageText = msg.MessageText;

             if (msg.ToAll)
             {
                 var devices = repo.Select<Device>().ToList();
                 foreach (Device dv in devices)
                 {

                     string token = dv.DeviceToken;
                     deviceTokens.Add(token);
                     phoneList.Add(dv.DevicePhoneNumber);
                 }

             }
             else
             {
                 string[] phoneNo = msg.PhoneNumbers.Split(',');
                 foreach (string item in phoneNo)
                 {
                     string item1 = Md5.GetMd5Hash(item);
                     var firstOrDefault = repo.Select<Device>().FirstOrDefault(q => q.DevicePhoneNumber == item1);
                     if (firstOrDefault != null)
                     {

                         string token = firstOrDefault.DeviceToken;
                         deviceTokens.Add(token);
                         phoneList.Add(item);
                     }
                 }
             }
            // req.request.notifications.devices = new List<string>(deviceTokens.ToArray());

             //MessageResponse resp = PushService.DoSendMessage(req);

             JObject json = new JObject(
                 new JProperty("application", applicationCode),
                 new JProperty("auth", apiToken),
                 new JProperty("notifications",
                     new JArray(
                         new JObject(
                             new JProperty("send_date", "now"),
                             new JProperty("content", msg.MessageText),
                             new JProperty("wp_type", "Toast"),
                             new JProperty("wp_count", 3),
                             new JProperty("data",
                                 new JObject(
                                     new JProperty("custom", "json data"))),
                                     new JProperty("platforms", new JArray(new List<int> { 1, 2, 3, 4, 5 })),
                            // new JProperty("link", "http://Vanso.com/"),
                            // new JProperty("conditions",
                              //   new JArray(
                                //     (object)new JArray("Color", "EQ", "black")))
                                new JProperty("devices",new JArray(new List<string>(deviceTokens.ToArray())))
                                     ))));

            var resp= PushService.SendPush("createMessage", json);

                 newMessage.DateSent = DateTime.Now;
                 newMessage.MessageStatus = resp.status_message;
                 newMessage.StatusCode = int.Parse(resp.status_code);
                 if (resp.status_code != "200")
                 {
                     newMessage.MessageId = "0";
                 }
                 else
                 {
                     newMessage.MessageId = resp.response.messages[0];
                 }
             newMessage.PhoneNumber = JsonConvert.SerializeObject(phoneList);
                repo.Insert(newMessage);

             return resp;
        }
        // PUT api/Messages/5
        public HttpResponseMessage PutMessage(long id, Message message)
        {
            if (ModelState.IsValid && id == message.Id)
            {
                db.Entry(message).State = EntityState.Modified;

                try
                {
                    db.SaveChanges();
                }
                catch (DbUpdateConcurrencyException)
                {
                    return Request.CreateResponse(HttpStatusCode.NotFound);
                }

                return Request.CreateResponse(HttpStatusCode.OK);
            }
            else
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }
        }
 public ActionResult Edit(Message message)
 {
     if (ModelState.IsValid)
     {
         db.Entry(message).State = EntityState.Modified;
         db.SaveChanges();
         return RedirectToAction("Index");
     }
     return View(message);
 }