private async System.Threading.Tasks.Task <Object> sendCloudMessageAsync(String storeId, TransactionDto dto, String header, String content)
        {
            List <Staff> stafts = db.Staff.Where(s => s.StoreId == storeId && s.DeviceToken != null).ToList();

            if (stafts.Count == 0)
            {
                return(false);
            }
            List <string> deviceTokens = new List <string>();

            foreach (Staff a in stafts)
            {
                deviceTokens.Add(a.DeviceToken);
            }

            DataMessage notif = new DataMessage()
            {
                registration_ids = deviceTokens,
                data             = dto,
                notification     = new Notification(header, content)
            };
            var request = new HttpRequestMessage(HttpMethod.Post, url);

            request.Headers.TryAddWithoutValidation("Authorization", "key =" + serverKey);
            String jsonMessage = Newtonsoft.Json.JsonConvert.SerializeObject(notif);

            request.Content = new StringContent(jsonMessage, Encoding.UTF8, "application/json");
            HttpResponseMessage result;

            using (var client = new HttpClient())
            {
                result = await client.SendAsync(request);

                if (result.IsSuccessStatusCode)
                {
                    try
                    {
                        string data = await result.Content.ReadAsStringAsync();

                        SendNotificationResponseDto routes_list = JsonConvert.DeserializeObject <SendNotificationResponseDto>(data);
                        if (routes_list.success == 0)
                        {
                            return(false);
                        }
                        return(true);
                    }
                    catch (Exception e)
                    {
                        return(e.Message);
                    }
                }
            }
            return(false);
        }
        public async Task <Object> testNotification()
        {
            DetailDto dto = new DetailDto("123", "huy");

            DataMessage notif = new DataMessage()
            {
                registration_ids = new List <string>()
                {
                    token
                },
                data         = dto,
                notification = new Notification("title", "text")
            };

            /*HttpClient httpClient = new HttpClient();
             * httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "key=" + serverKey);
             * httpClient.DefaultRequestHeaders.TryAddWithoutValidation("sender", "id=869021479080");
             * string data = JsonConvert.SerializeObject(notif);
             * HttpContent content = new StringContent(data, Encoding.UTF8, "application/json");
             *
             * HttpResponseMessage respone = await httpClient.PostAsync(url, content);
             *
             * if (respone.IsSuccessStatusCode)
             * {
             *  String result = await respone.Content.ReadAsStringAsync();
             *  return result;
             * }
             *
             * return respone.ToString();*/

            var request = new HttpRequestMessage(HttpMethod.Post, url);

            request.Headers.TryAddWithoutValidation("Authorization", "key =" + serverKey);
            String jsonMessage = JsonConvert.SerializeObject(notif);

            request.Content = new StringContent(jsonMessage, Encoding.UTF8, "application/json");
            HttpResponseMessage result;

            using (var client = new HttpClient())
            {
                result = await client.SendAsync(request);

                if (result.IsSuccessStatusCode)
                {
                    try
                    {
                        string data = await result.Content.ReadAsStringAsync();

                        SendNotificationResponseDto routes_list = JsonConvert.DeserializeObject <SendNotificationResponseDto>(data);
                        return(routes_list);
                    }catch (Exception e)
                    {
                        return(e.Message);
                    }
                }

                string results = await result.Content.ReadAsStringAsync();

                return(results.ToString());
            }
        }