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