public void AsociarCancionYAlbum_CancionSinInterpretes_Funciona() { var entrada = new AsociarCancionYAlbumEntrada { AlbumId = 3, Canciones = new List <int> { 7 }, }; var salida = _gestorDominio.AsociarCancionYAlbum(entrada); Assert.IsTrue(salida == SalidaBase.Resultados.Exito); Assert.IsTrue(_gestorPersistencia.TraerCancion(7).AlbumId == 3); Assert.IsTrue(_gestorPersistencia.TraerInterpretesCancion(7).Count == 0); }
public void AsociarCancionYAlbum_AlbumNoExiste_Falla() { var entrada = new AsociarCancionYAlbumEntrada { AlbumId = 10000000, Canciones = new List <int> { 1 }, Accion = AsociarCancionYAlbumEntrada.Acciones.Asociar, }; var salida = _gestorDominio.AsociarCancionYAlbum(entrada); Assert.IsTrue(salida == SalidaBase.Resultados.Fallo); Assert.AreEqual(string.Format(Cadenas.album_id_no_encontrado, 10000000), salida.Mensaje); }
private bool AsociarCancionesExistentes(int album, IList <MVCancion> canciones) { var entrada = new AsociarCancionYAlbumEntrada { Accion = AsociarCancionYAlbumEntrada.Acciones.Asociar, AlbumId = album, Canciones = canciones.Where(c => c.Id > 0).Select(c => c.Id).ToList(), }; AsociarCancionYAlbumSalida salida = _gestorDominio.AsociarCancionYAlbum(entrada); if (salida == SalidaBase.Resultados.Exito) { return(true); } PasarMensaje(salida.Mensaje, "msj-error"); return(false); }
public AsociarCancionYAlbumSalida AsociarCancionYAlbum(AsociarCancionYAlbumEntrada entrada) { var salida = new AsociarCancionYAlbumSalida(); 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))); } if (entrada.Accion == AsociarCancionYAlbumEntrada.Acciones.Asociar) { var album = _gestorPersistencia.TraerAlbum(entrada.AlbumId); if (album == null) { return(SalidaBase.Fallo(salida, string.Format(Cadenas.album_id_no_encontrado, entrada.AlbumId))); } foreach (var cancion in canciones) { cancion.AlbumId = album.Id; _gestorPersistencia.Guardar(cancion); } } else if (entrada.Accion == AsociarCancionYAlbumEntrada.Acciones.Desasociar) { foreach (var cancion in canciones) { cancion.AlbumId = null; _gestorPersistencia.Guardar(cancion); } } return(SalidaBase.Exito(salida)); }