Example #1
0
        public RegistrarVotoAlbumesSalida RegistrarVotoAlbumes(RegistrarVotoAlbumesEntrada entrada)
        {
            var salida = new RegistrarVotoAlbumesSalida();

            int albumError = int.MinValue;
            var albumes    = TraerAlbumes(entrada.Albumes, (noEncontrado => albumError = noEncontrado));

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

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

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

            foreach (var album in albumes)
            {
                RegistrarVoto(album.VotableId, entrada.UsuarioId,
                              entrada.Accion == RegistrarVotoAlbumesEntrada.Acciones.Asociar);
            }

            return(SalidaBase.Exito(salida));
        }
Example #2
0
        //
        // GET: /Albumes/Votar
        public ActionResult Votar(string v, bool d = false)
        {
            IList <int> albumes;

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

            var entrada = new RegistrarVotoAlbumesEntrada
            {
                Accion    = accion,
                UsuarioId = User.APrincipalUsuario().IdentityUsuario.Id,
                Albumes   = albumes
            };
            RegistrarVotoAlbumesSalida salida = _gestorDominio.RegistrarVotoAlbumes(entrada);

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


            PasarMensaje("Muchas gracias por votar", "msj-exito");
            return(RedirectToAction("Index"));
        }
Example #3
0
        public void RegistrarVotoAlbumes_UsuarioNoExiste_Falla()
        {
            var entrada = new RegistrarVotoAlbumesEntrada
            {
                UsuarioId = 10000000,
                Albumes   = new List <int> {
                    1
                },
                Accion = RegistrarVotoAlbumesEntrada.Acciones.Asociar,
            };
            var salida = _gestorDominio.RegistrarVotoAlbumes(entrada);

            Assert.IsTrue(salida == SalidaBase.Resultados.Fallo);
            Assert.AreEqual(string.Format(Cadenas.usuario_id_no_encontrado, 10000000), salida.Mensaje);
        }
Example #4
0
        public void RegistrarVotoAlbumes_TodoNormal_Funciona()
        {
            var entrada = new RegistrarVotoAlbumesEntrada
            {
                UsuarioId = 1,
                Albumes   = new List <int> {
                    1
                },
                Accion = RegistrarVotoAlbumesEntrada.Acciones.Asociar,
            };
            var salida = _gestorDominio.RegistrarVotoAlbumes(entrada);

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

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

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