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"));
        }