// GET: Televisao/Details/5 public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } TelevisaoViewModel TVM = new TelevisaoViewModel(); var televisao = await _context.Televisao.Include(p => p.PacoteCanais) .ThenInclude(c => c.Canais) .AsNoTracking() .SingleOrDefaultAsync(p => p.TelevisaoId == id); var listaCanais = _context.Canais.Select(x => new CheckBox() { Id = x.CanaisId, Nome = x.NomeCanal, Selecionado = x.PacoteCanais.Any(x => x.TelevisaoId == televisao.TelevisaoId) ? true : false }).ToList(); TVM.Nome = televisao.Nome; TVM.Descricao = televisao.Descricao; TVM.PrecoPacoteTelevisao = televisao.PrecoPacoteTelevisao; TVM.ListaCanais = listaCanais; TVM.TelevisaoId = (int)id; if (televisao == null) { return(NotFound()); } return(View(TVM)); }
public async Task <IActionResult> Create(TelevisaoViewModel TVM, Televisao televisao, PacoteCanais pacoteCanais) { List <PacoteCanais> listaCanais = new List <PacoteCanais>(); televisao.Nome = TVM.Nome; televisao.Descricao = TVM.Descricao; televisao.PrecoPacoteTelevisao = TVM.PrecoPacoteTelevisao; _context.Televisao.Add(televisao); await _context.SaveChangesAsync(); int televisaoId = televisao.TelevisaoId; foreach (var item in TVM.ListaCanais) { if (item.Selecionado == true) { listaCanais.Add(new PacoteCanais() { TelevisaoId = televisaoId, CanaisId = item.Id }); } } foreach (var item in listaCanais) { _context.PacoteCanais.Add(item); } await _context.SaveChangesAsync(); return(RedirectToAction("Index", "Televisao")); }
public async Task <IActionResult> Edit(int?id, TelevisaoViewModel TVM /*, Televisao televisao*//*, PacoteCanais pacoteCanais*/) { List <PacoteCanais> listaCanais = new List <PacoteCanais>(); Televisao televisao = await _context.Televisao.Include(p => p.PacoteCanais) .ThenInclude(c => c.Canais) .AsNoTracking() .SingleOrDefaultAsync(p => p.TelevisaoId == id); televisao.Nome = TVM.Nome; televisao.Descricao = TVM.Descricao; televisao.PrecoPacoteTelevisao = TVM.PrecoPacoteTelevisao; _context.Televisao.Update(televisao); await _context.SaveChangesAsync(); int televisaoId = televisao.TelevisaoId; foreach (var canal in TVM.ListaCanais) { if (canal.Selecionado == true) { listaCanais.Add(new PacoteCanais() { TelevisaoId = televisao.TelevisaoId, CanaisId = canal.Id }); } } var ListaPacoteCanais = _context.PacoteCanais.Where(p => p.TelevisaoId == id).ToList(); var resultado = ListaPacoteCanais.Except(listaCanais).ToList(); foreach (var pacoteCanal in resultado) { _context.PacoteCanais.Remove(pacoteCanal); await _context.SaveChangesAsync(); } var novaListaPacoteCanais = _context.PacoteCanais.Where(p => p.TelevisaoId == id).ToList(); foreach (var canal in listaCanais) { if (!novaListaPacoteCanais.Contains(canal)) { _context.PacoteCanais.Add(canal); await _context.SaveChangesAsync(); } } return(RedirectToAction("Index", "Televisao")); //return RedirectToAction("Details", "Televisao"); }
public IActionResult Create() { var canal = _context.Canais.ToList(); TelevisaoViewModel TVM = new TelevisaoViewModel(); TVM.ListaCanais = canal.Select(x => new CheckBox() { Id = x.CanaisId, Nome = x.NomeCanal, Selecionado = false }).ToList(); return(View(TVM)); }