Example #1
0
        public IList <MVAlbumDetallado> DetallarAlbumes(IList <MVAlbum> albumes)
        {
            albumes = TraerVotosAlbumes(albumes);
            albumes.ToList().ForEach(a => {
                var album = _ctx.DbSetAlbum.FirstOrDefault(al => a.Id == al.Id);
                if (album != null)
                {
                    a.CargarDesde(album);
                }
            });

            var interpretes = (from a in albumes
                               join ai in _ctx.DbSetAlbumInterprete on a.Id equals ai.AlbumId
                               join i in _ctx.DbSetInterprete on ai.InterpreteId equals i.Id
                               select new { Album = a, Interprete = new MVInterprete {
                                                Id = i.Id, Nombre = i.Nombre
                                            } }).ToList();
            var canciones = (from a in albumes
                             join c in _ctx.DbSetCancion on a.Id equals c.AlbumId
                             select new { Album = a, Cancion = new MVCancion(c) }).ToList();

            var listaAlbumDetallado = (from a in albumes select new MVAlbumDetallado(a)).ToList();

            foreach (var itm in listaAlbumDetallado)
            {
                MVAlbumDetallado albumDetallado = itm;
                itm.Interpretes =
                    (from i in interpretes where i.Album.Id == albumDetallado.Id select i.Interprete).ToList();
                MVAlbumDetallado mvAlbumDetallado = itm;
                itm.Canciones = (from c in canciones where c.Album.Id == mvAlbumDetallado.Id select c.Cancion).ToList();
                itm.Canciones = TraerVotosCanciones(itm.Canciones);
            }

            return(listaAlbumDetallado.ToList());
        }
Example #2
0
        //
        // GET: /Albumes/Editar/5
        public ActionResult Editar(int id = 0)
        {
            Album album = _gestorDominio.TraerAlbum(id);

            if (album == null)
            {
                return(HttpNotFound());
            }
            if (TempData.ContainsKey("mensaje"))
            {
                ViewBag.Mensaje = TempData["mensaje"];
            }

            // cargar interpretes
            var model = new MVAlbumDetallado(album);
            IList <MVInterprete> listaInterpretes = TraerListaInterpretes(album);

            model.Interpretes = listaInterpretes;
            IList <MVCancion> listaCanciones = TraerListaCanciones(album);

            model.Canciones = listaCanciones;

            return(View(model));
        }