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