private PropiedadesSitio RellenarPropiedadesSitio()
        {
            var res = new PropiedadesSitio();

            if (_reader.Read())
            {
                res.NombreCuenta       = AsignaCadena("NombreCuenta");
                res.Usuario            = AsignaCadena("Usuario");
                res.Clave              = AsignaCadena("Clave");
                res.ServCorreoSal      = AsignaCadena("ServCorreoSal");
                res.PuertoCorreoSal    = AsignaEntero("PuertoCorreoSal");
                res.CorreoRegistro     = AsignaCadena("CorreoRegistro");     //Correo cuando un usuario se registra pero no está en nuestra BD
                res.CorreoVerificacion = AsignaCadena("CorreoVerificacion"); //Correo cuando un usuario se registra y soy capaz de validar su identidad
                res.CorreoInvitacion   = AsignaCadena("CorreoInvitacion");   //Correo cuando decido invitar a un usuario.
                res.CorreoConfirmacion = AsignaCadena("CorreoConfirmacion"); //Correo cuando el administrador valida la identidad de un usuario
                res.CorreoRecuperacion = AsignaCadena("CorreoRecuperacion"); //Correo para recuperar la contraseña
                res.URLSitio           = AsignaCadena("URLSitio");
                res.RutaValidacion     = AsignaCadena("RutaValidacion");
                res.RutaRecuperacion   = AsignaCadena("RutaRecuperacion");
                res.NombreSitio        = AsignaCadena("NombreSitio");
                res.RutaLogo           = AsignaCadena("RutaLogo");
                res.CorreoContacto     = AsignaCadena("CorreoContacto");
                res.CorreoBajoPedido   = AsignaCadena("CorreoBajoPedido");
                res.dirEmailContacto   = AsignaCadena("dirEmailContacto");
                res.dirEmailBajoPedido = AsignaCadena("dirEmailBajoPedido");
            }
            return(res);
        }
        private string RellenarEmailContacto(string email, FormularioContacto us, PropiedadesSitio pr)
        {
            var newmail = email.Replace("#%apellidos%#", us.lname);

            newmail = newmail.Replace("#%nombre%#", us.nombre);
            newmail = newmail.Replace("#%email%#", us.email);
            newmail = newmail.Replace("#%mensaje%#", us.message);
            newmail = newmail.Replace("#%nombreSitio%#", pr.NombreSitio);
            newmail = newmail.Replace("#%rutaLogo%#", pr.RutaLogo);
            return(newmail);
        }
        public ResultadoInvitaciones ClientesInvitacionesProcesar(List <Cliente> Clientes)
        {
            var res = new ResultadoInvitaciones();
            var cr  = "";

            try
            {
                cr = dsCore.Comun.Ayudas.SerializarACadenaXML(Clientes);
            }
            catch
            {
                //Si está vacía la lista no nos importa
            }
            res.Enviadas      = new List <String>();
            res.UsuariosError = new List <UsuarioError>();
            var pp = new PropiedadesSitio();
            var UsuariosInvitados = new List <UsuarioDatosEmail>();
            var cc = _configuration.GetConnectionString("DefaultConnection");

            using (SqlConnection conn = new SqlConnection(cc))
            {
                SqlParameter[] param = new SqlParameter[]
                {
                    new SqlParameter("@clientes", cr),
                };
                _cmd    = SQLHelper.PrepareCommand(conn, null, CommandType.StoredProcedure, @"Web.ClientesInvitacionesProcesar", param);
                _reader = _cmd.ExecuteReader(CommandBehavior.CloseConnection);
                while (_reader.Read())
                {
                    UsuarioDatosEmail us = RellenarUsuarioEmail();
                    UsuariosInvitados.Add(us);
                }
                _reader.NextResult();
                while (_reader.Read())
                {
                    var us = new UsuarioError
                    {
                        nombre = AsignaCadena("Nombre"),
                        motivo = AsignaCadena("Motivo"),
                    };
                    res.UsuariosError.Add(us);
                }
                _reader.NextResult();
                pp = RellenarPropiedadesSitio();
            }
            foreach (UsuarioDatosEmail us in UsuariosInvitados)
            {
                var email = RellenarEmail(pp.CorreoInvitacion, us, pp);
                res.Enviadas.Add(EnviarCorreo(us.EmaildsWin, "Invitación", email, pp));
            }
            return(res);
        }
        private PropiedadesSitio PropiedadesSitioLeer()
        {
            var res = new PropiedadesSitio();
            var cc  = _configuration.GetConnectionString("DefaultConnection");

            using (SqlConnection conn = new SqlConnection(cc))
            {
                _cmd    = SQLHelper.PrepareCommand(conn, null, CommandType.StoredProcedure, @"Web.PropiedadesWebLeer", null);
                _reader = _cmd.ExecuteReader(CommandBehavior.CloseConnection);
                res     = RellenarPropiedadesSitio();
            }
            return(res);
        }
        private string RellenarEmail(string email, UsuarioDatosEmail us, PropiedadesSitio pr)
        {
            var newmail = email.Replace("#%guid%#", us.GuidValidacion.ToString());

            newmail = newmail.Replace("#%nombre%#", us.Nombre);
            newmail = newmail.Replace("#%guidrecuperacion%#", us.GuidRecuperacion.ToString());
            newmail = newmail.Replace("#%password%#", us.Password);
            newmail = newmail.Replace("#%nombrecompleto%#", us.NombreCompleto);
            newmail = newmail.Replace("#%urlSitio%#", pr.URLSitio);
            newmail = newmail.Replace("#%rutaValidacion%#", pr.RutaValidacion);
            newmail = newmail.Replace("#%rutaRecuperacion%#", pr.RutaRecuperacion);
            newmail = newmail.Replace("#%nombreSitio%#", pr.NombreSitio);
            newmail = newmail.Replace("#%rutaLogo%#", pr.RutaLogo);
            return(newmail);
        }
        public ResultadoInvitaciones ClientesInvitacionesProcesar(List <Cliente> Clientes)
        {
            var res = new ResultadoInvitaciones();

            res.Enviadas      = new List <String>();
            res.UsuariosError = new List <UsuarioError>();
            var pp = new PropiedadesSitio();
            var UsuariosInvitados = new List <UsuarioDatosEmail>();
            var cc = _configuration.GetConnectionString("DefaultConnection");

            using (SqlConnection conn = new SqlConnection(cc))
            {
                _cmd    = SQLHelper.PrepareCommand(conn, null, CommandType.StoredProcedure, @"Web.ClientesInvitacionesProcesar", null);
                _reader = _cmd.ExecuteReader(CommandBehavior.CloseConnection);
                while (_reader.Read())
                {
                    UsuarioDatosEmail us = RellenarUsuarioEmail();
                    UsuariosInvitados.Add(us);
                }
                _reader.NextResult();
                while (_reader.Read())
                {
                    var us = new UsuarioError
                    {
                        nombre = AsignaCadena("Nombre"),
                        motivo = AsignaCadena("Motivo"),
                    };
                    res.UsuariosError.Add(us);
                }
                _reader.NextResult();
                pp = RellenarPropiedadesSitio();
            }
            foreach (UsuarioDatosEmail us in UsuariosInvitados)
            {
                var email = RellenarEmail(pp.CorreoInvitacion, us, pp);
                res.Enviadas.Add(EnviarCorreo(us.EmaildsWin, "Invitación", email, pp));
            }
            return(res);
        }
        private string EnviarCorreo(string Destinatario, string Asunto, string Texto, PropiedadesSitio propis)
        {
            MailEnvio mail_envio = new MailEnvio();

            mail_envio.Mail = new Mail
            {
                Destinatario = Destinatario,
                Asunto       = Asunto,
                Remitente    = propis.Usuario,
                Texto        = Texto
            };
            mail_envio.Cuenta = new Cuenta
            {
                NombreCuenta    = propis.NombreCuenta,
                Usuario         = propis.Usuario,
                Clave           = propis.Clave,
                PuertoCorreoSal = propis.PuertoCorreoSal,
                ServCorreoSal   = propis.ServCorreoSal
            };
            //var a = dsCore.Comun.dsMail.EnviarEmail(mail_envio);
            var a = Entidades.dsMail.EnviarEmail(mail_envio);

            return(a);
            //return "Correo enviado, cuando descomente las lineas de arriba, claro";
        }
        private string RellenarEmailBajoPedido(string email, FormularioBajoPedido us, PropiedadesSitio pr)
        {
            var newmail = email.Replace("#%descripcion%#", us.descripcionArticulo);

            newmail = newmail.Replace("#%codigo%#", us.eurocodeArticulo);
            newmail = newmail.Replace("#%cliente%#", us.nombreCliente);
            newmail = newmail.Replace("#%comentario%#", us.comentario);
            newmail = newmail.Replace("#%nombreSitio%#", pr.NombreSitio);
            newmail = newmail.Replace("#%rutaLogo%#", pr.RutaLogo);
            return(newmail);
        }