Exemple #1
0
        public ActionResult Editar(FormCollection form)
        {
            var editarAlbumEntrada = new EditarAlbumEntrada
            {
                AlbumId        = Convert.ToInt32(form["Id"]),
                Nombre         = form["Nombre"],
                AñoLanzamiento = Convert.ToInt32(form["AñoLanzamiento"]),
            };

            EditarAlbumSalida editarAlbumSalida = _gestorDominio.EditarAlbum(editarAlbumEntrada);

            if (editarAlbumSalida != SalidaBase.Resultados.Exito)
            {
                PasarMensaje(editarAlbumSalida.Mensaje, "msj-error");
                return(RedirectToAction("Index"));
            }

            var interpretes = JsonConvert.DeserializeObject <List <MVInterprete> >(form["hidInterpretes"]);

            if (!RelacionarInterpretesAAlbum(editarAlbumSalida.Album.Id, interpretes, false))
            {
                return(RedirectToAction("Index"));
            }

            var canciones = JsonConvert.DeserializeObject <List <MVCancion> >(form["hidCanciones"]);

            if (!CrearCancionesNuevas(editarAlbumSalida.Album.Id, canciones, false))
            {
                return(RedirectToAction("Index"));
            }

            if (!AsociarCancionesExistentes(editarAlbumSalida.Album.Id, canciones))
            {
                return(RedirectToAction("Index"));
            }

            return(RedirectToAction("Index"));
        }
Exemple #2
0
        public EditarAlbumSalida EditarAlbum(EditarAlbumEntrada entrada)
        {
            var salida = new EditarAlbumSalida();

            if (string.IsNullOrEmpty(entrada.Nombre))
            {
                return(SalidaBase.Fallo(salida, Cadenas.album_falta_nombre));
            }

            Album album;

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

                album.Nombre         = entrada.Nombre;
                album.AñoLanzamiento = entrada.AñoLanzamiento;
            }
            else
            {
                album = new Album
                {
                    Nombre         = entrada.Nombre,
                    FchCreacion    = DateTime.Now,
                    AñoLanzamiento = entrada.AñoLanzamiento,
                };
            }
            salida.Album = album;
            CrearVotable(album);
            _gestorPersistencia.Guardar(album);

            return(SalidaBase.Exito(salida));
        }