Exemplo n.º 1
0
        public void RelacionarInterpretesAAlbum_SinInterpretes_Falla()
        {
            var entrada = new RelacionarInterpretesAAlbumEntrada
            {
                AlbumId     = 1,
                Interpretes = null,
                Accion      = RelacionarInterpretesAAlbumEntrada.Acciones.Agregar,
            };

            var salida = _gestorDominio.RelacionarInterpretesAAlbum(entrada);

            Assert.IsTrue(salida == SalidaBase.Resultados.Fallo);
            Assert.AreEqual(Cadenas.album_falta_interprete, salida.Mensaje);
        }
Exemplo n.º 2
0
        public void RelacionarInterpretesAAlbum_InterpretesNoExisten_Falla()
        {
            var entrada = new RelacionarInterpretesAAlbumEntrada
            {
                AlbumId     = 1,
                Interpretes = new List <int> {
                    10000000
                },
                Accion = RelacionarInterpretesAAlbumEntrada.Acciones.Agregar,
            };

            var salida = _gestorDominio.RelacionarInterpretesAAlbum(entrada);

            Assert.IsTrue(salida == SalidaBase.Resultados.Fallo);
            Assert.AreEqual(string.Format(Cadenas.interprete_id_no_encontrado, 10000000), salida.Mensaje);
        }
Exemplo n.º 3
0
        public void RelacionarInterpretesAAlbum_TodoNormal_Funciona()
        {
            var entrada = new RelacionarInterpretesAAlbumEntrada
            {
                AlbumId     = 1,
                Interpretes = new List <int> {
                    1, 2
                },
                Accion = RelacionarInterpretesAAlbumEntrada.Acciones.Agregar,
            };

            var salida = _gestorDominio.RelacionarInterpretesAAlbum(entrada);

            Assert.IsTrue(salida == SalidaBase.Resultados.Exito);
            var interpretesAlbum = _gestorDominio.TraerInterpretesAlbum(1);

            Assert.IsTrue(interpretesAlbum.All(i => i.Id == 1 || i.Id == 2));
        }
Exemplo n.º 4
0
        public RelacionarInterpretesAAlbumSalida RelacionarInterpretesAAlbum(RelacionarInterpretesAAlbumEntrada entrada)
        {
            var salida = new RelacionarInterpretesAAlbumSalida();

            var album = _gestorPersistencia.TraerAlbum(entrada.AlbumId);

            if (album == null)
            {
                return(SalidaBase.Fallo(salida, string.Format(Cadenas.album_id_no_encontrado, entrada.AlbumId)));
            }

            if (entrada.Interpretes == null || entrada.Interpretes.Count == 0)
            {
                return(SalidaBase.Fallo(salida, Cadenas.album_falta_interprete));
            }

            int interpreteError = int.MinValue;
            var interpretes     = TraerInterpretes(entrada.Interpretes, (noEncontrado => interpreteError = noEncontrado));

            if (interpreteError != int.MinValue)
            {
                return(SalidaBase.Fallo(salida, string.Format(Cadenas.interprete_id_no_encontrado, interpreteError)));
            }

            if (entrada.Accion == RelacionarInterpretesAAlbumEntrada.Acciones.Agregar)
            {
                var relaciones =
                    interpretes.Select(i => _gestorPersistencia.TraerAlbumInterprete(album.Id, i.Id)).ToList();
                foreach (var relacion in relaciones)
                {
                    _gestorPersistencia.Guardar(relacion);
                }
            }
            else if (entrada.Accion == RelacionarInterpretesAAlbumEntrada.Acciones.Eliminar)
            {
                var relaciones = interpretes.Select(i => _gestorPersistencia.TraerAlbumInterprete(album.Id, i.Id));
                foreach (var relacion in relaciones)
                {
                    _gestorPersistencia.EliminarAlbumInterprete(relacion.InterpreteId, relacion.AlbumId);
                }
            }

            return(SalidaBase.Exito(salida));
        }
Exemplo n.º 5
0
        //
        // POST: /Albumes/DesasociarInterprete
        public ActionResult DesasociarInterprete(int albumId, int interpreteId)
        {
            var entrada = new RelacionarInterpretesAAlbumEntrada
            {
                Accion      = RelacionarInterpretesAAlbumEntrada.Acciones.Eliminar,
                AlbumId     = albumId,
                Interpretes = new List <int> {
                    interpreteId
                }
            };
            RelacionarInterpretesAAlbumSalida salida = _gestorDominio.RelacionarInterpretesAAlbum(entrada);

            if (salida != SalidaBase.Resultados.Exito)
            {
                PasarMensaje(salida.Mensaje, "msj-error");
            }

            return(RedirectToAction("Editar", "Albumes", new { id = albumId }));
        }
Exemplo n.º 6
0
        private bool RelacionarInterpretesAAlbum(int album, IList <MVInterprete> interpretes, bool fallarSiVacio)
        {
            if (interpretes.Count == 0)
            {
                return(!fallarSiVacio);
            }
            var entrada = new RelacionarInterpretesAAlbumEntrada
            {
                Accion      = RelacionarInterpretesAAlbumEntrada.Acciones.Agregar,
                AlbumId     = album,
                Interpretes = interpretes.Select(i => i.Id).ToList(),
            };
            var salida = _gestorDominio.RelacionarInterpretesAAlbum(entrada);

            if (salida == SalidaBase.Resultados.Exito)
            {
                return(true);
            }

            PasarMensaje(salida.Mensaje, "msj-error");
            return(false);
        }