public async Task <IActionResult> Index(InvitacionJuegoModel invitacion, [FromServices] IEmailServicio emailServicio) { // Obtener el servicio que maneja la invitacion de juegos que es un singleton var invitacionServicio = Request.HttpContext.RequestServices.GetService <IInvitacionJuegoServicio>(); if (ModelState.IsValid) { try { var invitacionModel = new InvitacionEmailModel { Nombre = $"{invitacion.EmailDestino}", InvitadoPor = await _servicio.ObtenerUsuarioPorEmail(invitacion.InvitadoPor), ConfirmacionUrl = Url.Action("ConfirmacionInvitacionJuego", "InvitacionJuego", new { id = invitacion.Id }, Request.Scheme, Request.Host.ToString()), FechaInvitacion = invitacion.FechaConfirmacion }; var servicioRenderEmail = HttpContext.RequestServices.GetService <IEmailRenderPlantillaServicio>(); var mensaje = await servicioRenderEmail.RenderearTemplate <InvitacionEmailModel>("PlantillasEmail/InvitacionEmail", invitacionModel, Request.Host.ToString()); await emailServicio.EnviarEmail(invitacion.EmailDestino, _localizador["Invitación para jugar al Ta te ti"], mensaje); } catch { } var invitacionAgregada = invitacionServicio.AgregarInvitacion(invitacion).Result; return(RedirectToAction("ConfirmacionInvitacionJuego", new { id = invitacion.Id })); } return(View(invitacion)); }
public Task ActualizarInvitacion(InvitacionJuegoModel invitacion) { _invitaciones = new ConcurrentBag <InvitacionJuegoModel>( _invitaciones.Where(i => i.Id != invitacion.Id)) { invitacion }; return(Task.CompletedTask); }
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 Task <InvitacionJuegoModel> AgregarInvitacion(InvitacionJuegoModel invitacion) { invitacion.Id = Guid.NewGuid(); _invitaciones.Add(invitacion); return(Task.FromResult(invitacion)); }