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));
        }
Esempio n. 2
0
 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));
        }
Esempio n. 4
0
 public Task <InvitacionJuegoModel> AgregarInvitacion(InvitacionJuegoModel invitacion)
 {
     invitacion.Id = Guid.NewGuid();
     _invitaciones.Add(invitacion);
     return(Task.FromResult(invitacion));
 }