public async Task <ActionResult> CrearMailCambio(string txtMail) { throw new NotImplementedException("Modulo cambio contraseña mail"); if (!FuncionesEmail.IsValidEmail(txtMail)) { throw new ArgumentException("Email"); } using (Models.SatcEntities entity = new SatcEntities()) { return(null); } }
public async Task <ActionResult> CrearMail(string txtMail, TipoConfirmacion tipo) { var telemetry = new TelemetryClient(); try { Guid id = Guid.NewGuid(); string url = "http://" + this.Request.Url.Authority + "/Confirmar/"; System.Diagnostics.Trace.WriteLine($"[{DateTime.Now}] Enviando mail con URL {url + id}"); if (!FuncionesEmail.IsValidEmail(txtMail)) { throw new ArgumentException("Email"); } using (Models.SatcEntities entity = new SatcEntities()) { alumno a = entity.alumno.FirstOrDefault(alumnoEnDb => alumnoEnDb.correo.Equals(txtMail)); if (a == null) { throw new ArgumentOutOfRangeException("No hay alumnos con ese correo registrados"); } var c = new confirmacion { tipo = (int)tipo, fecha = DateTime.Now, guid = id, alumno = new List <alumno>() { a }, habilitado = true, }; entity.confirmacion.Add(c); bool tarea = false; Exception ex = null; switch (tipo) { case TipoConfirmacion.NO_ESPECIFICADO: ex = new Exception("Tipo de mail para enviar no especificado"); goto default; case TipoConfirmacion.ConfirmacionMail: tarea = await Librerias.MailClient.EnviarMensajeRegistro(txtMail, url, id.ToString()); break; case TipoConfirmacion.DesactivacionCuenta: ex = new NotImplementedException("tipo de mail 'desactivarCuenta' no implementado"); goto default; case TipoConfirmacion.Contrasena: tarea = await Librerias.MailClient.EnviarMensajeContrasena(txtMail, url, id.ToString()); break; default: telemetry.TrackException(ex, new Dictionary <string, string> { { "Controlador: ", "MailController" } }); throw ex; } if (!tarea) { throw new Exception("Error al enviar el mail al correo especificado"); } entity.SaveChanges(); } ViewBag.TipoMail = (int)tipo; return(View("EstadoSolicitud")); } catch (Exception ex) { System.Diagnostics.Trace.WriteLine($"[{DateTime.Now}] Ha ocurrido una excepcion."); System.Diagnostics.Trace.WriteLine(ex.Message); System.Diagnostics.Trace.WriteLine(ex.ToString()); ViewBag.ModalMessage = ex.Message; telemetry.TrackException(ex, new Dictionary <string, string> { { "Controlador: ", "MailController" } }); return(View("Error")); //throw ex; } }