/// <summary> /// Si la combinacion de login y email coinciden entonces reseteamos la contraseña del usuario y /// se la enviamos mediante el implementador de IMessenger (correo, wasap, etc...) /// </summary> /// <param name="user"></param> /// <param name="email"></param> public void RecuperarPassword(string user, string email) { Usuario usuario = null; #if NO_DB Database db = Database.DB; #else OMBContext db = OMBContext.DB; #endif _status = null; usuario = db.Usuarios.Find(usr => usr.Login == user && usr.Persona.Email == email); if (usuario != null) { // llamar a una funcion que obtiene una nueva pass aleatoria string newPass = "******"; Console.WriteLine(">>>> Creada nueva contraseña {0} para {1}", newPass, usuario.Persona.Nombre); // setear contraseña en usuario usuario.Password = newPass; Console.WriteLine(">>>> Actualizada DB de usuarios con nueva contraseña {0} a {1}", newPass, usuario.Persona.Nombre); // No necesito mas este codigo porque la instancia del usuario ya esta recuperada desde la base de datos // //Usuario usr = new Usuario(user) { Password = newPass }; // Observar que quito toda dependencia de la clase concreta Mailer // Dejo solo el "comportamiento" que debera tener cualquier clase que implemente IMessenger // // Mailer mail = new Mailer(); // mail.AgregarDestinatario(email); // mail.EnviarMensaje("Su nueva contraseña es qwerty2017"); _mensajero.EnviarMensaje(string.Format("Su nueva contraseña es {0}", newPass), usuario); } _status = "Se envio un mail con la informacion solicitada"; }