Пример #1
0
        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);
        }
Пример #2
0
        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));
        }