Ejemplo n.º 1
0
 public async Task<IActionResult> NuevoMensaje(Mensaje mensaje, List<string> Para, List<string> CopiaOculta)
 {
     if (ModelState.IsValid)
     {
         if (Para.Count() > 0 || CopiaOculta.Count() > 0)
         {
             if (await _servicioMensajeria.EnviarMensaje(mensaje, Para, CopiaOculta))
             {
                 ViewBag.MensajeExito = "Mensaje enviado";
                 _servicioMensajeria.EnviarEmails(Para, CopiaOculta); //todo enviar de forma asincrona
                 return View();
             }
         }
         else
         {
             ViewBag.MensajeError = $"Iiiioooo... sipote... selecciona a alguien pa' mandarle el mensaje, ¿no?";
         }                
     }
     else
     {
         ViewBag.MensajeError = $"Uppss... parece que los datos no son válidos";
     }
     SelectList personajes = new SelectList(await _servicioPersonajes.GetEnumeradoPersonajes(), "Id", "Descripcion");
     ViewBag.PersonajesPara = personajes;
     ViewBag.PersonajesCopiaOculta = personajes;
     ViewBag.Titulo = "Nuevo Mensaje";
     return View(mensaje);
 }
Ejemplo n.º 2
0
 public async Task<IViewComponentResult> InvokeAsync(int personajeId)
 {
     Mensaje nuevoMensaje = new Mensaje();
     nuevoMensaje.RemitenteId = personajeId;
     return View(nuevoMensaje);
 }
Ejemplo n.º 3
0
        public async Task<bool> EnviarMensaje(Mensaje mensaje, List<string> para, List<string> copiaOculta)
        {
            bool resultado = true;

            mensaje.FechaCreacion = DateTime.Now;
            if (mensaje.EsAnonimo)
            {
                mensaje.NombreParaMostrar = string.Empty;
            }

            mensaje.Destinatarios = new List<DestinatarioMensaje>();
            DestinatarioMensaje destinatario;
            foreach (string destinatarioId in para)
            {
                destinatario = new DestinatarioMensaje();
                destinatario.DestinatarioId = Convert.ToInt32(destinatarioId);
                destinatario.EstadoMensaje = EstadoMensaje.SinLeer;
                destinatario.TipoDestinatario = TipoDestinatario.Para;
                mensaje.Destinatarios.Add(destinatario);
            }
            foreach (string destinatarioId in copiaOculta)
            {
                destinatario = new DestinatarioMensaje();
                destinatario.DestinatarioId = Convert.ToInt32(destinatarioId);
                destinatario.EstadoMensaje = EstadoMensaje.SinLeer;
                destinatario.TipoDestinatario = TipoDestinatario.CopiaOculta;
                mensaje.Destinatarios.Add(destinatario);
            }

            _contexto.Mensajes.Add(mensaje);
            await ConfirmarCambios();

            return resultado;
        }
Ejemplo n.º 4
0
 public async Task<IActionResult> NuevoMensaje(Mensaje mensaje, List<string> Para, List<string> CopiaOculta)
 {
     if (ModelState.IsValid)
     {
         if (Para.Count() > 0 || CopiaOculta.Count() > 0)
         {                    
             ApplicationUser usuario = await _userManager.GetUserAsync(User);                    
             mensaje.RemitenteId = _servicioJugadores.GetPersonajeId(usuario.Id);
             if (!mensaje.EsAnonimo || (mensaje.EsAnonimo && _servicioPersonajes.PuedeHacerEnvioAnonimo(mensaje.RemitenteId)))
             {
                 if (await _servicioMensajeria.EnviarMensaje(mensaje, Para, CopiaOculta))
                 {
                     ViewBag.MensajeExito = "Mensaje enviado";
                     _servicioMensajeria.EnviarEmails(Para, CopiaOculta); //todo enviar de forma asincrona
                     return View();
                 }
             }
             else
             {
                 ViewBag.MensajeError = $"Uppss... esto es delicado. Parece que estás intentando mandar el mensaje como anónimo pero tu personaje no tiene las habilidades para ello";
             }
         }
         else
         {
             ViewBag.MensajeError = $"Iiiioooo... sipote... selecciona a alguien pa' mandarle el mensaje, ¿no?";
         }
     }
     else
     {
         ViewBag.MensajeError = $"Uppss... parece que los datos no son válidos";
     }
     SelectList personajes = new SelectList(await _servicioPersonajes.GetEnumeradoPersonajes(), "Id", "Descripcion");
     ViewBag.Personajes = personajes;
     return View(mensaje);
 }