/// <summary> /// Metodo para enviar correo notificacion Masivo /// </summary> /// <returns></returns> private void EnviarEmail(string email, string fecha, string hora) { try { NegocioDominio negocioDominio = new NegocioDominio(); Dominio emaiNotificacionLavadoFormato = negocioDominio.ConsultarPorId(Enums.EnumTablaDominio.notificacionLavado.ToString()); if (emaiNotificacionLavadoFormato.IsNull()) { throw new ExceptionControlada(string.Format(Mensajes.MsgErrorDominioNoEncontrado, Enums.EnumTablaDominio.sms_formato.ToString())); } var message = string.Format(emaiNotificacionLavadoFormato.valor, fecha.Substring(0, 10), hora); Dominio dominioSMTP = negocioDominio.ConsultarPorId(EnumTablaDominio.configuracionSMTP.ToString()); if (dominioSMTP.IsNull() || string.IsNullOrEmpty(dominioSMTP.valor)) { throw new ExceptionControlada(Mensajes.MsgConfiguracionSMTPRequerida); } CorreoProxy correoProxy = new CorreoProxy(dominioSMTP.valor); Correo correoEnviar = new Correo(); Dominio dominioRemitentePrincipal = negocioDominio.ConsultarPorId(EnumTablaDominio.correoRemitentePrincipal.ToString()); if (dominioRemitentePrincipal.IsNull() || string.IsNullOrEmpty(dominioRemitentePrincipal.valor)) { throw new ExceptionControlada(Mensajes.MsgCorreoRemitentePrincipal); } Dominio domonioAsuntoCorreo = negocioDominio.ConsultarPorId(EnumTablaDominio.asuntoNotificacionLavado.ToString()); if (domonioAsuntoCorreo.IsNull() || string.IsNullOrEmpty(domonioAsuntoCorreo.valor)) { throw new ExceptionControlada(Mensajes.MsgAsuntoCorreoRegistroPedido); } Dominio plantillaCorreo = negocioDominio.ConsultarPorId(EnumTablaDominio.plantillaCorreoNotificacion.ToString()); if (plantillaCorreo.IsNull() || string.IsNullOrEmpty(plantillaCorreo.valor)) { throw new ExceptionControlada(Mensajes.MsgTextoInicialCorreoRegistroPedido); } var bytes = Convert.FromBase64String(Constantes.IMAGEN_BANNER_NOTI); var contents = new MemoryStream(bytes); correoEnviar.De = dominioRemitentePrincipal.valor; correoEnviar.Asunto = domonioAsuntoCorreo.valor; correoEnviar.Para = new List <string>() { email }; correoEnviar.Cuerpo = plantillaCorreo.valor.Replace("@MESSAGE", message); correoEnviar.Adjunto = contents; correoProxy.EnviarCorreo(correoEnviar, true); } catch (Exception ex) { Logger log = Logger.Instancia; log.EscribirLogError($"Error al enviar Correo bono:{10}", ex); return; } }
public string sendNotificacionFirebase() { using (UnitOfWork unitOfWork = new UnitOfWork()) { //obtengo todas las personas y realizo el envio de la notificacion //cambiarlo para validar si realizaron el registro de entrada var persona = unitOfWork.UsuarioRepositorio.ObtenerListaUsuariosActivo(); if (persona.Count > 0) { NegocioDominio negocioDominio = new NegocioDominio(); Dominio notificacionPush = negocioDominio.ConsultarPorId(Enums.EnumTablaDominio.notificacionLavadoPush.ToString()); if (notificacionPush.IsNull()) { throw new ExceptionControlada(string.Format(Mensajes.MsgErrorDominioNoEncontrado, Enums.EnumTablaDominio.sms_formato.ToString())); } var mensaje = string.Format(notificacionPush.valor); //sendNotificacionFirebase("", "Hola"); foreach (var item in persona) { //Construyo el objeto para enviar la notificacion al celular var data = new { to = item.tokenDispositivo, data = new { name = item.nombres, userId = Convert.ToString(item.codUsuario), message = mensaje, status = true } }; sendNotificacionFirebase(data); } } return("Notificaciones enviadas correctamente"); } }
/// <summary> /// Metodo para reenviar codigo de activacion /// </summary> /// <param name="usuario"></param> /// <returns></returns> public List <UsuarioActivoDto> ReeviarCodActivacion(UsuarioActivoDto usuario) { using (UnitOfWork unitOfWork = new UnitOfWork()) { var usuarioExistente = unitOfWork.UsuarioRepositorio.ObtenerPorID(Convert.ToInt32(usuario.codUsuario)); if (usuario == null) { throw new ExceptionControlada(Mensajes.UsuarioNoExiste); } if (usuarioExistente != null) { var codigoActivacion = GenerarCodigoActivacion(); NegocioDominio negocioDominio = new NegocioDominio(); Dominio dominioEncontrado = negocioDominio.ConsultarPorId(Enums.EnumTablaDominio.vencimiento_token_activacion.ToString()); //Actualizo en codigo activacion en el registro en la base de datos usuarioExistente.codUsuario = Convert.ToInt32(usuario.codUsuario); usuarioExistente.codigoActivacion = codigoActivacion; usuarioExistente.codActivacionExpira = DateTime.Now.AddMinutes(int.Parse(dominioEncontrado.valor)); unitOfWork.UsuarioRepositorio.Actualizar(usuarioExistente); unitOfWork.Save(); //Envia Email de codigo de activacion EnviarEmail(usuarioExistente.correo, codigoActivacion); } List <UsuarioActivoDto> ActivacionUsuario = new List <UsuarioActivoDto>(); ActivacionUsuario.Add(new UsuarioActivoDto { codUsuario = Convert.ToString(usuarioExistente.codUsuario), codigoActivacion = usuarioExistente.codigoActivacion, activo = usuarioExistente.activo }); return(ActivacionUsuario); } }
/// <summary> /// Metodo pra registrar el usuario /// </summary> /// <param name="usuario"></param> /// <param name="codigoActivacion"></param> /// <returns></returns> private Usuario RegistrarUsuario(UsuarioDto usuario, string codigoActivacion) { var codigoUsuario = GenerarCodigoUsuario(); using (UnitOfWork unitOfWork = new UnitOfWork()) { NegocioDominio negocioDominio = new NegocioDominio(); Dominio dominioEncontrado = negocioDominio.ConsultarPorId(Enums.EnumTablaDominio.vencimiento_token_activacion.ToString()); var persona = unitOfWork.UsuarioRepositorio.ObtenerPorCedula(usuario.TipoDocumento, usuario.numeroDocumento); Usuario nuevoUsuario = null; if (persona == null) { nuevoUsuario = new Usuario() { codUsuario = Convert.ToInt32(codigoUsuario), nombres = usuario.nombres, apellidos = usuario.apellidos, TipoDocumento = usuario.TipoDocumento, numeroDocumento = usuario.numeroDocumento, celular = usuario.celular, codPerfil = usuario.codPerfil, codInstitucion = usuario.codInstitucion, correo = usuario.correo, sexo = usuario.sexo, activo = usuario.activo, codigoActivacion = codigoActivacion, codActivacionExpira = DateTime.Now.AddMinutes(int.Parse(dominioEncontrado.valor)), tokenDispositivo = usuario.token }; unitOfWork.UsuarioRepositorio.Adicionar(nuevoUsuario); unitOfWork.Save(); } //Actualizo la informacion del usuario ya existente else { nuevoUsuario = new Usuario() { codUsuario = persona.codUsuario, nombres = usuario.nombres, apellidos = usuario.apellidos, TipoDocumento = usuario.TipoDocumento, numeroDocumento = usuario.numeroDocumento, celular = usuario.celular, codPerfil = usuario.codPerfil, codInstitucion = usuario.codInstitucion, correo = usuario.correo, sexo = usuario.sexo, activo = usuario.activo, codigoActivacion = codigoActivacion, codActivacionExpira = DateTime.Now.AddMinutes(int.Parse(dominioEncontrado.valor)), tokenDispositivo = usuario.token }; //Cargo el objeto para modificarlo persona.nombres = nuevoUsuario.nombres; persona.apellidos = nuevoUsuario.apellidos; persona.TipoDocumento = nuevoUsuario.TipoDocumento; persona.numeroDocumento = nuevoUsuario.numeroDocumento; persona.celular = nuevoUsuario.celular; persona.correo = nuevoUsuario.correo; persona.codPerfil = nuevoUsuario.codPerfil; persona.codInstitucion = nuevoUsuario.codInstitucion; persona.sexo = nuevoUsuario.sexo; persona.activo = nuevoUsuario.activo; persona.codigoActivacion = nuevoUsuario.codigoActivacion; persona.codActivacionExpira = nuevoUsuario.codActivacionExpira; persona.tokenDispositivo = nuevoUsuario.tokenDispositivo; unitOfWork.UsuarioRepositorio.Actualizar(persona); unitOfWork.Save(); } return(nuevoUsuario); } }