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