示例#1
0
        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);
        }
示例#2
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);
        }
示例#3
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);
        }
示例#4
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));
        }