예제 #1
0
        // 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));
        }
예제 #2
0
        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"));
        }
예제 #3
0
        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");
        }
예제 #4
0
        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));
        }