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()); }
// // 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)); }