// Procesar confirmación de mail sin usar websocket private async Task ProcesarConfirmacionEmail(HttpContext contexto) { var email = contexto.Request.Query["Email"]; if (string.IsNullOrEmpty(email)) { await contexto.Response.WriteAsync("BadRequest: Email es requerido"); } else { var usuario = await _usuarioService.ObtenerUsuarioPorEmail(email); if (usuario.MailEstaConfirmado) { await contexto.Response.WriteAsync("OK"); } else { await contexto.Response.WriteAsync("EsperandoPorConfirmacionEmail"); usuario.MailEstaConfirmado = true; usuario.FechaConfirmacionEmail = DateTime.Now; _usuarioService.ActualizarUsuario(usuario).Wait(); // Con wait esperamos a que el Task se complete } } }
public async Task <IActionResult> Index(string email) { var invitacion = new InvitacionJuegoModel { InvitadoPor = email, Id = Guid.NewGuid() }; Request.HttpContext.Session.SetString("Email", email); var usuario = await _servicio.ObtenerUsuarioPorEmail(email); Request.HttpContext.Session.SetString("NombreCompleto", $"{ usuario.Nombre} { usuario.Apellido}"); return(View(invitacion)); }
public async Task <SesionJuegoModel> CrearSesionJuego(Guid idInvitacion, string emailInvitadoPor, string invitadoEmail) { var invitadoPor = await _usuarioServicio.ObtenerUsuarioPorEmail(emailInvitadoPor); var jugadorInvitado = await _usuarioServicio.ObtenerUsuarioPorEmail(invitadoEmail); SesionJuegoModel sesion = new SesionJuegoModel { Jugador1 = invitadoPor, Jugador2 = jugadorInvitado, Id = idInvitacion, JugadorActivo = invitadoPor }; _sesiones.Add(sesion); return(sesion); }
public async Task <IActionResult> ConfirmacionCorreo(string email) { // El mail no ha sido confirmado _logger.LogInformation($"##Start## Proceso de confirmación de correo para {email} "); var usuario = await _servicio.ObtenerUsuarioPorEmail(email); var urlAccion = new UrlActionContext { Action = "ConfirmacionCorreo", Controller = "RegistroUsuario", Values = new { email }, Protocol = Request.Scheme, Host = Request.Host.ToString() }; var emailRegistroUsuario = new UsuarioRegistroEmailModelo { Nombre = $"{usuario.Nombre} {usuario.Apellido}", Email = email, AccionUrl = Url.Action(urlAccion) }; var emailRenderServicio = HttpContext.RequestServices.GetService <IEmailRenderPlantillaServicio>(); // TODO: Renderear la vista // var mensaje = await emailRenderServicio.RenderearTemplate("PlantillasEmail/RegistroUsuarioMail", emailRegistroUsuario, Request.Host.ToString()); var mensaje = "Mensaje que va dentro del mail"; try { _emailServicio.EnviarEmail(email, "Confirmación de correo de Ta Te Ti", mensaje).Wait(); } catch (Exception e) { } ViewBag.Email = email; return(View()); }