Exemplo n.º 1
0
        //
        // GET: /Canciones/Votar
        public ActionResult Votar(string v, bool d = false)
        {
            IList <int> canciones;

            try {
                var json = JArray.Parse(v);
                canciones = new List <int>(json.Values <int>());
            } catch (Exception) {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Votos incorrectos"));
            }
            var accion = d
                ? RegistrarVotoCancionesEntrada.Acciones.Desasociar
                : RegistrarVotoCancionesEntrada.Acciones.Asociar;

            var entrada = new RegistrarVotoCancionesEntrada
            {
                Accion    = accion,
                UsuarioId = User.APrincipalUsuario().IdentityUsuario.Id,
                Canciones = canciones
            };
            var salida = _gestorDominio.RegistrarVotoCanciones(entrada);

            if (salida != SalidaBase.Resultados.Exito)
            {
                PasarMensaje(salida.Mensaje, "msj-error");
                return(RedirectToAction("Index"));
            }

            PasarMensaje("Muchas gracias por votar", "msj-exito");
            return(RedirectToAction("Index"));
        }
Exemplo n.º 2
0
        public RegistrarVotoCancionesSalida RegistrarVotoCanciones(RegistrarVotoCancionesEntrada entrada)
        {
            var salida = new RegistrarVotoCancionesSalida();

            int cancionError = int.MinValue;
            var canciones    = TraerCanciones(entrada.Canciones, (noEncontrado => cancionError = noEncontrado));

            if (cancionError != int.MinValue)
            {
                return(SalidaBase.Fallo(salida, string.Format(Cadenas.cancion_id_no_encontrado, cancionError)));
            }

            var usuario = _gestorPersistencia.TraerCancion(entrada.UsuarioId);

            if (usuario == null)
            {
                return(SalidaBase.Fallo(salida, string.Format(Cadenas.usuario_id_no_encontrado, entrada.UsuarioId)));
            }

            foreach (var cancion in canciones)
            {
                RegistrarVoto(cancion.VotableId, entrada.UsuarioId,
                              entrada.Accion == RegistrarVotoCancionesEntrada.Acciones.Asociar);
            }

            return(SalidaBase.Exito(salida));
        }
Exemplo n.º 3
0
        public void RegistrarVotoCanciones_UsuarioNoExiste_Falla()
        {
            var entrada = new RegistrarVotoCancionesEntrada
            {
                UsuarioId = 10000000,
                Canciones = new List <int> {
                    1
                },
                Accion = RegistrarVotoCancionesEntrada.Acciones.Asociar,
            };
            var salida = _gestorDominio.RegistrarVotoCanciones(entrada);

            Assert.IsTrue(salida == SalidaBase.Resultados.Fallo);
            Assert.AreEqual(string.Format(Cadenas.usuario_id_no_encontrado, 10000000), salida.Mensaje);
        }
Exemplo n.º 4
0
        public void RegistrarVotoCanciones_TodoNormal_Funciona()
        {
            var entrada = new RegistrarVotoCancionesEntrada
            {
                UsuarioId = 1,
                Canciones = new List <int> {
                    1
                },
                Accion = RegistrarVotoCancionesEntrada.Acciones.Asociar,
            };
            var salida = _gestorDominio.RegistrarVotoCanciones(entrada);

            Assert.IsTrue(salida == SalidaBase.Resultados.Exito);
            var            cancion = _gestorPersistencia.TraerCancion(1);
            VotableUsuario vu      = _gestorPersistencia.TraerVotableUsuario(cancion.VotableId, 1);

            Assert.IsNotNull(vu);
            Assert.IsTrue(vu.UsuarioId == 1);
            Assert.IsTrue(vu.VotableId == cancion.VotableId);

            _gestorPersistencia.EliminarVotableUsuario(cancion.VotableId, 1);
        }