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