コード例 #1
0
ファイル: FirebaseService.cs プロジェクト: PabloMartinP/Api
        private string crearParamsNotificaciones(notificacion_mensaje mensaje)
        {
            bool enviar_sin_enviar = false;//true para desarrollar. simula el envio
            //string priority = "normal";
            string priority = "high";

            //si es mensaje para un topic
            string[] registration_ids;

            registration_ids = getRegistrationIds(mensaje);
            if (!registration_ids.Any())
            {
                return("");
            }
            else
            {
                /////////////////////////////////////////////////
                var objNotification = new
                {
                    registration_ids  = registration_ids,
                    priority          = priority,
                    content_available = true,
                    dry_run           = enviar_sin_enviar,
                    notification      = new
                    {
                        body  = mensaje.descripcion,
                        title = mensaje.titulo,
                        icon  = "myicon",
                        sound = "default"
                    }
                };

                return(Newtonsoft.Json.JsonConvert.SerializeObject(objNotification));
            }
        }
コード例 #2
0
ファイル: tokensController.cs プロジェクト: PabloMartinP/Api
        public IHttpActionResult Posttoken(token token)
        {
            FirebaseService fb         = new FirebaseService();
            bool            primeraVez = fb.registerTokenIfNotExists(token);

            if (primeraVez)
            {
                notificacion_mensaje m = new notificacion_mensaje();
                m.cliente_sk = token.sk_entidad;
                m.usuario_sk = token.usuario_sk;
                //ClienteService cs = new ClienteService();
                //var clientFound = cs.buscarById(m.cliente_sk);
                m.descripcion = "Netmefy";
                m.titulo      = "Bienvenido";
                //m.usuario_sk = 0;
                fb.EnviarAFCM(m);
            }


            return(CreatedAtRoute("DefaultApi", new { id = token.id }, token));
        }
コード例 #3
0
ファイル: FirebaseService.cs プロジェクト: PabloMartinP/Api
        private string[] getRegistrationIds(notificacion_mensaje notificacion_mensaje)
        {
            List <token> nts;

            if (notificacion_mensaje.usuario_sk == 0)
            {
                nts = this.ObtenerTokenPorUsernameCliente(notificacion_mensaje.cliente_sk);
            }
            else
            {
                nts = this.ObtenerTokenPorUsernameUsuario(notificacion_mensaje.usuario_sk);
            }


            List <string> registration_ids = new List <string>();

            foreach (token nt in nts)
            {
                registration_ids.Add(nt.tokenid);
            }
            return(registration_ids.ToArray());
        }
コード例 #4
0
ファイル: FirebaseService.cs プロジェクト: PabloMartinP/Api
        public bool EnviarAFCM(notificacion_mensaje mensaje)
        {
            WebRequest tRequest = createWebRequestPush();
            string     jsonNotificationFormat = crearParamsNotificaciones(mensaje);

            if (jsonNotificationFormat == "")
            {
                return(false);
            }
            else
            {
                Byte[] byteArray = Encoding.UTF8.GetBytes(jsonNotificationFormat);
                tRequest.ContentLength = byteArray.Length;

                using (Stream dataStream = tRequest.GetRequestStream())
                {
                    dataStream.Write(byteArray, 0, byteArray.Length);

                    using (WebResponse tResponse = tRequest.GetResponse())
                    {
                        using (Stream dataStreamResponse = tResponse.GetResponseStream())
                        {
                            using (StreamReader tReader = new StreamReader(dataStreamResponse))
                            {
                                String responseFromFirebaseServer = tReader.ReadToEnd();
                                //LogRepository.LOG_INFO((int)mensaje.doc_tipo, mensaje.doc_numero, responseFromFirebaseServer);


                                FCMResponse fcmResponse = Newtonsoft.Json.JsonConvert.DeserializeObject <FCMResponse>(responseFromFirebaseServer);
                                //como manda a muchos es dificil saber si ejecuto todos bien
                                return(true);
                                //return fcmResponse.success !=0;
                            }
                        }
                    }
                }
            }
        }