public async static void Push(NotiNumber notiNumber, string datas, bool isSilent)
        {
            var request = WebRequest.Create("https://onesignal.com/api/v1/notifications") as HttpWebRequest;

            request.KeepAlive   = true;
            request.Method      = "POST";
            request.ContentType = "application/json; charset=utf-8";
            request.Headers.Add("authorization", "Basic MzUyOWU3MDItMmJlMS00ZWRkLTlkYzEtMDhlZGMyZmEzYjQx");

            Dictionary <string, object> dictionary = new Dictionary <string, object>();

            dictionary.Add("content", datas);

            //GET EXTERNALIDS DỰA VÀO NOTINUMBER Ở ĐÂY
            DataProvider dataProvider = DataProvider.GetInstance();

            string[] externalIDs = dataProvider.GetUserIdsByPushnotiType(notiNumber, datas).ToArray();

            object obj = null;

            if (isSilent)
            {
                obj = SilentNoti(externalIDs, dictionary);
            }
            else
            {
                obj = ShownNoti(externalIDs, dictionary, notiNumber);
            }

            var serializer = new JavaScriptSerializer();
            var param      = serializer.Serialize(obj);

            byte[] byteArray = Encoding.UTF8.GetBytes(param);

            string responseContent = null;

            try
            {
                using (var writer = request.GetRequestStream())
                {
                    writer.Write(byteArray, 0, byteArray.Length);
                }

                using (var response = request.GetResponse() as HttpWebResponse)
                {
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        responseContent = reader.ReadToEnd();
                    }
                }
            }
            catch (WebException ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
                System.Diagnostics.Debug.WriteLine(new StreamReader(ex.Response.GetResponseStream()).ReadToEnd());
            }
        }
Exemplo n.º 2
0
    public static string Get(NotiNumber notiNumber)
    {
        switch (notiNumber)
        {
        case NotiNumber.MakeBillForStore:
            //return "Cửa hàng của bạn vừa nhận một order mới!";
            return("Your store has just received a new order!");

            break;

        case NotiNumber.CancelOrderForStore:
            //return "Cửa hàng của bạn có một order đã bị hủy";
            return("An order has just been canceled by customer");

            break;

        case NotiNumber.CancelOrderForCustomer:
            //return "Bạn có một order đã bị hủy";
            return("An order has just been canceled by store");

            break;

        case NotiNumber.ReceiveOrderForStore:
            //return "Cửa hàng của bạn có một order đã được nhận!";
            return("An order has just been received by customer!");

            break;

        case NotiNumber.DeliverOrderForCustomer:
            return("Your order has just started delivering!");

            break;

        case NotiNumber.Login:
            return("Your account has just been signed up in another device!");

            break;

        case NotiNumber.SendReview:
            //return "Order của cửa hàng vừa nhận được một feedback từ khách hàng!";
            return("Your store's order has just received a feedback from customer!");
        }
        return("");
    }
        public static object ShownNoti(string[] externalIDs, Dictionary <string, object> datas, NotiNumber notiNumber)
        {
            var shownObj = new
            {
                headings                  = new { en = "Grocery App" },
                app_id                    = "b5f59a9f-3873-47a9-80e5-ca37fb75610a",
                contents                  = new { en = NotiContent.Get(notiNumber) },
                content_available         = true,
                include_external_user_ids = externalIDs,
                small_icon                = "pushnotiicon",
                data = datas
            };

            return(shownObj);
        }
Exemplo n.º 4
0
        public List <string> GetUserIdsByPushnotiType(NotiNumber notiNumber, string datas)
        {
            List <string> result = new List <string>();

            if (notiNumber == NotiNumber.SendReview)
            {
                string[]  parts  = datas.Split('~');
                OrderBill Order  = JsonConvert.DeserializeObject <OrderBill>(parts[0]);
                string    idUser = this.GetIDUserByIDStore(Order.IDStore);//user có idstore là store của order
                result.Add(idUser);
                return(result);
            }
            if (notiNumber == NotiNumber.Login)
            {
                result.Add(Infor.IDUser);
                return(result);
            }
            if (notiNumber == NotiNumber.MakeBillForStore)
            {
                string[]  parts    = datas.Split('~');
                OrderBill newOrder = JsonConvert.DeserializeObject <OrderBill>(parts[0]);
                string    idUser   = this.GetIDUserByIDStore(newOrder.IDStore);//user có idstore là store của order
                result.Add(idUser);
                return(result);
            }
            if (notiNumber == NotiNumber.MakeBillForOther)
            {
                string[]  parts    = datas.Split('~');
                OrderBill newOrder = JsonConvert.DeserializeObject <OrderBill>(parts[0]);
                string    idUser   = this.GetIDUserByIDStore(newOrder.IDStore);//user có idstore là store của order
                foreach (User user in Database.Users)
                {
                    if (user.IDUser != Infor.IDUser && user.IDUser != idUser)
                    {
                        result.Add(user.IDUser);
                    }
                }
                return(result);
            }
            if (notiNumber == NotiNumber.CancelOrderForStore)
            {
                string[]  parts         = datas.Split('~');
                OrderBill canceledOrder = JsonConvert.DeserializeObject <OrderBill>(parts[0]);
                string    idUser        = this.GetIDUserByIDStore(canceledOrder.IDStore);//user có idstore là store của order
                result.Add(idUser);
                return(result);
            }
            if (notiNumber == NotiNumber.CancelOrderForOther)
            {
                string[]  parts         = datas.Split('~');
                OrderBill canceledOrder = JsonConvert.DeserializeObject <OrderBill>(parts[0]);
                string    idUser        = this.GetIDUserByIDStore(canceledOrder.IDStore);//user có idstore là store của order
                foreach (User user in Database.Users)
                {
                    if (user.IDUser != Infor.IDUser && user.IDUser != idUser)
                    {
                        result.Add(user.IDUser);
                    }
                }
                return(result);
            }
            if (notiNumber == NotiNumber.CancelOrderForCustomer)
            {
                string[]  parts         = datas.Split('~');
                OrderBill canceledOrder = JsonConvert.DeserializeObject <OrderBill>(parts[0]);
                string    idUser        = canceledOrder.IDUser;//iduser là customer bị hủy order
                result.Add(idUser);
                return(result);
            }
            if (notiNumber == NotiNumber.ReceiveOrderForStore)
            {
                string[]  parts         = datas.Split('~');
                OrderBill receivedOrder = JsonConvert.DeserializeObject <OrderBill>(parts[0]);
                string    idUser        = this.GetIDUserByIDStore(receivedOrder.IDStore);//user có idstore là store của order
                result.Add(idUser);
                return(result);
            }
            if (notiNumber == NotiNumber.ReceiveOrderForOther)
            {
                string[]  parts         = datas.Split('~');
                OrderBill receivedOrder = JsonConvert.DeserializeObject <OrderBill>(parts[0]);
                string    idUser        = this.GetIDUserByIDStore(receivedOrder.IDStore);//user có idstore là store của order
                foreach (User user in Database.Users)
                {
                    if (user.IDUser != Infor.IDUser && user.IDUser != idUser)
                    {
                        result.Add(user.IDUser);
                    }
                }
                return(result);
            }
            if (notiNumber == NotiNumber.DeliverOrderForCustomer)
            {
                string[]  parts          = datas.Split('~');
                OrderBill deliveredOrder = JsonConvert.DeserializeObject <OrderBill>(parts[0]);
                string    idCustomer     = deliveredOrder.IDUser;//user có idstore là store của order
                result.Add(idCustomer);
                return(result);
            }
            if (notiNumber == NotiNumber.DeliverOrderForOther)
            {
                string[]  parts          = datas.Split('~');
                OrderBill deliveredOrder = JsonConvert.DeserializeObject <OrderBill>(parts[0]);
                string    idCustomer     = deliveredOrder.IDUser;//user có idstore là store của order
                foreach (User user in Database.Users)
                {
                    if (user.IDUser != Infor.IDUser && user.IDUser != idCustomer)
                    {
                        result.Add(user.IDUser);
                    }
                }
                return(result);
            }

            foreach (User user in Database.Users)
            {
                if (user.IDUser != Infor.IDUser)
                {
                    result.Add(user.IDUser);
                }
            }
            return(result);
        }