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(); } }
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); } }