コード例 #1
0
        private void EmailParametersSending(int?PK_Id_Comunicado, string nombre, string apellido, string email, string NitEmpresa, string Asunto, string CuerpoMensaje, string Titulo, string correoRemitente,
                                            string remitente, string passwordServidorStmp, string puertoServidorStmp, string servidorSTMP, string plantillaHtml)
        {
            plantillaHtml = plantillaHtml.Replace("[[NombreUsuario]]", string.Format("{0} {1}", nombre, apellido));
            plantillaHtml = plantillaHtml.Replace("[[EmailUsuario]]", email);
            plantillaHtml = plantillaHtml.Replace("[[RazonSocial]]", ObtenerRazonSocial(NitEmpresa));
            plantillaHtml = plantillaHtml.Replace("[[Asunto]]", Asunto);
            plantillaHtml = plantillaHtml.Replace("[[Cuerpo]]", CuerpoMensaje);
            bool param_correo = EnvioCorreos.EnviarCorreo(plantillaHtml, correoRemitente, remitente, true, passwordServidorStmp, Convert.ToInt32(puertoServidorStmp), servidorSTMP, "[ALISSTA Comunicaciones] " + Titulo, email);

            using (var Transaction = db.Database.BeginTransaction())
            {
                ComunicacionesLog log = new ComunicacionesLog()
                {
                    fk_id_comunicaciones = (int)PK_Id_Comunicado,
                    modulo            = "externos",
                    enviado_rechazado = param_correo,
                    fecha_envio       = DateTime.Now.ToString()
                };
                db.Tbl_ComunicacionesLog.Add(log);
                db.SaveChanges();
                Transaction.Commit();
            }
        }
コード例 #2
0
        public void EnviarNotificacionesPush(int?pk_id_comunicado)
        {
            var usuariosapp = db.Tbl_UsuarioComunicadoAPP.Where(x => x.FK_Id_ComunicadosAPP == pk_id_comunicado).ToList();

            using (var Transaction = db.Database.BeginTransaction())
            {
                foreach (var item in usuariosapp)
                {
                    item.IDEstadoComunicado = 1;
                    db.Tbl_UsuarioComunicadoAPP.Attach(item);
                    var entry = db.Entry(item);
                    entry.State = System.Data.Entity.EntityState.Modified;
                    entry.Property(x => x.IDEstadoComunicado).IsModified = true;
                    db.SaveChanges();
                }
                Transaction.Commit();
            }

            var comunicado = db.Tbl_ComunicadosAPP.Where(x => x.IDComunicadosAPP == pk_id_comunicado).SingleOrDefault();
            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 NGEwMGZmMjItY2NkNy0xMWUzLTk5ZDUtMDAwYzI5NDBlNjJj");
            string asunto    = comunicado.Titulo;
            string contenido = comunicado.AsuntoAPP;

            string[] in_player_ids = new string[usuariosapp.Count];

            for (int i = 0; i < usuariosapp.Count; i++)
            {
                if (usuariosapp[i].PlayerID != "")
                {
                    in_player_ids[i] = usuariosapp[i].PlayerID;
                }
            }

            if (in_player_ids.Length > 0)
            {
                var serializer = new JavaScriptSerializer();
                var obj        = new
                {
                    app_id             = "117eabf4-4cdd-4bf9-ad76-c9e62d373568",
                    contents           = new { en = contenido, es = contenido },
                    headings           = new { en = asunto, es = asunto },
                    ios_badgeType      = "Increase",
                    ios_badgeCount     = 1,
                    include_player_ids = in_player_ids
                };


                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());
                    using (var Transaction = db.Database.BeginTransaction())
                    {
                        ComunicacionesLog log = new ComunicacionesLog()
                        {
                            fk_id_comunicaciones = (int)pk_id_comunicado,
                            modulo            = "app",
                            enviado_rechazado = false,
                            fecha_envio       = DateTime.Now.ToString()
                        };
                        db.Tbl_ComunicacionesLog.Add(log);
                        db.SaveChanges();
                        Transaction.Commit();
                    }
                }

                System.Diagnostics.Debug.WriteLine(responseContent);
            }
        }