/// <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");
            }
        }
Exemple #3
0
        /// <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);
            }
        }
Exemple #4
0
        /// <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);
            }
        }