public IActionResult Create() { var pacotes = bd.Pacotes.ToList(); PromocoesPacotesViewModel promocoesPacotesViewModel = new PromocoesPacotesViewModel(); var distritosCentro = bd.Distritos.Where(p => p.Nome == "Coimbra" || p.Nome == "Aveiro" || p.Nome == "Viseu" || p.Nome == "Leiria" || p.Nome == "Castelo Branco" || p.Nome == "Guarda") .ToList(); var distritosNorte = bd.Distritos.Where(p => p.Nome == "Viana do Castelo" || p.Nome == "Braga" || p.Nome == "Porto" || p.Nome == "Vila Real" || p.Nome == "Bragança") .ToList(); var distritosSul = bd.Distritos.Where(p => p.Nome == "Lisboa" || p.Nome == "Setúbal" || p.Nome == "Santarém" || p.Nome == "Portalegre" || p.Nome == "Évora" || p.Nome == "Beja" || p.Nome == "Faro") .ToList(); var distritosIlhas = bd.Distritos.Where(p => p.Nome == "Açores" || p.Nome == "Madeira") .ToList(); promocoesPacotesViewModel.ListaDistritosCentro = distritosCentro.Select(s => new Checkbox() { Id = s.DistritosId, NomeDistrito = s.Nome, Selecionado = false }).ToList(); promocoesPacotesViewModel.ListaDistritosNorte = distritosNorte.Select(s => new Checkbox() { Id = s.DistritosId, NomeDistrito = s.Nome, Selecionado = false }).ToList(); promocoesPacotesViewModel.ListaDistritosSul = distritosSul.Select(s => new Checkbox() { Id = s.DistritosId, NomeDistrito = s.Nome, Selecionado = false }).ToList(); promocoesPacotesViewModel.ListaDistritosIlhas = distritosIlhas.Select(s => new Checkbox() { Id = s.DistritosId, NomeDistrito = s.Nome, Selecionado = false }).ToList(); promocoesPacotesViewModel.ListaPacotes = pacotes.Select(s => new Checkbox() { Id = s.PacoteId, NomePacote = s.Nome, Selecionado = false }).ToList(); return(View(promocoesPacotesViewModel)); }
// GET: Promocoes/Details/5 //[Authorize(Roles = "Administrador")] public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } var promocoes = await bd.Promocoes .FirstOrDefaultAsync(m => m.PromocoesId == id); var pacotes = await bd.PromocoesPacotes.Where(s => s.PromocoesId == id) .Include(s => s.Pacote) .ToListAsync(); var distritos = await bd.DistritosPromocoes.Where(s => s.PromocoesId == id) .Include(s => s.Distrito) .ToListAsync(); int count = 0; foreach (var item in bd.PromocoesPacotes.ToList()) { //SystemsCount count = bd.PromocoesPacotes.Where(x => x.PromocoesId == id).Count(); } ViewData["linhas"] = count; if (promocoes == null) { return(View("Inexistente")); } PromocoesPacotesViewModel modelo = new PromocoesPacotesViewModel { Promocoes = promocoes, PromocoesPacotes = pacotes, DistritosPromocoes = distritos, }; return(base.View(modelo)); }
public async Task <IActionResult> EditOperadores(PromocoesPacotesViewModel promocoesPacotesViewModel) { List <PromocoesPacotes> promocoesDosPacotes = new List <PromocoesPacotes>(); int id = promocoesPacotesViewModel.PromocoesId; Promocoes promocao = await bd.Promocoes.Include(p => p.PromocoesPacotes) .ThenInclude(c => c.Pacote) //.AsNoTracking() .SingleOrDefaultAsync(p => p.PromocoesId == id); int promocaoId = promocao.PromocoesId; foreach (var pacote in promocoesPacotesViewModel.ListaPacotes) { if (pacote.Selecionado == true) { promocoesDosPacotes.Add(new PromocoesPacotes() { PromocoesId = promocaoId, PacoteId = pacote.Id }); } } var ListaPromocoesPacotes = bd.PromocoesPacotes.Where(p => p.PromocoesId == id).ToList(); var resultado = ListaPromocoesPacotes.Except(promocoesDosPacotes).ToList(); foreach (var promocaoPacote in resultado) { bd.PromocoesPacotes.Remove(promocaoPacote); await bd.SaveChangesAsync(); } var novaListaPromocoesPacotes = bd.PromocoesPacotes.Where(p => p.PromocoesId == id).ToList(); foreach (var pacote in promocoesDosPacotes) { if (!novaListaPromocoesPacotes.Contains(pacote)) { bd.PromocoesPacotes.Add(pacote); await bd.SaveChangesAsync(); } } //Checklist de Distritos List <DistritosPromocoes> distritoscomPromocoes = new List <DistritosPromocoes>(); foreach (var item in promocoesPacotesViewModel.ListaDistritosCentro) { if (item.Selecionado == true) { distritoscomPromocoes.Add(new DistritosPromocoes() { PromocoesId = promocaoId, DistritosId = item.Id }); } } foreach (var item in promocoesPacotesViewModel.ListaDistritosIlhas) { if (item.Selecionado == true) { distritoscomPromocoes.Add(new DistritosPromocoes() { PromocoesId = promocaoId, DistritosId = item.Id }); } } foreach (var item in promocoesPacotesViewModel.ListaDistritosNorte) { if (item.Selecionado == true) { distritoscomPromocoes.Add(new DistritosPromocoes() { PromocoesId = promocaoId, DistritosId = item.Id }); } } foreach (var item in promocoesPacotesViewModel.ListaDistritosSul) { if (item.Selecionado == true) { distritoscomPromocoes.Add(new DistritosPromocoes() { PromocoesId = promocaoId, DistritosId = item.Id }); } } var listaDistritosPromocoes = bd.DistritosPromocoes.Where(p => p.PromocoesId == id).ToList(); var resultado2 = listaDistritosPromocoes.Except(distritoscomPromocoes).ToList(); foreach (var distrito in resultado2) { bd.DistritosPromocoes.Remove(distrito); await bd.SaveChangesAsync(); } var novalistaDistritosPromocoes = bd.DistritosPromocoes.Where(p => p.PromocoesId == id).ToList(); foreach (var distrito in distritoscomPromocoes) { if (!novalistaDistritosPromocoes.Contains(distrito)) { bd.DistritosPromocoes.Add(distrito); await bd.SaveChangesAsync(); } } ViewBag.Mensagem = "Promoção alterada com sucesso"; return(View("Sucesso")); }
public async Task <IActionResult> EditOperadores(int?id) { PromocoesPacotesViewModel promocoesPacotesViewModel = new PromocoesPacotesViewModel(); var promocao = await bd.Promocoes.Include(p => p.PromocoesPacotes) .ThenInclude(c => c.Pacote) .AsNoTracking() .SingleOrDefaultAsync(p => p.PromocoesId == id); var listaPacotes = bd.Pacotes.Select(s => new Checkbox() { Id = s.PacoteId, NomePacote = s.Nome, Selecionado = s.PromocoesPacotes.Any(s => s.PromocoesId == promocao.PromocoesId) ? true : false }).ToList(); var listaDistritosNorte = bd.Distritos.Where(p => p.Nome == "Viana do Castelo" || p.Nome == "Braga" || p.Nome == "Porto" || p.Nome == "Vila Real" || p.Nome == "Bragança") .Select(p => new Checkbox() { Id = p.DistritosId, NomeDistrito = p.Nome, Selecionado = p.DistritosPromocoes.Any(p => p.PromocoesId == promocao.PromocoesId) ? true : false }).ToList(); var listaDistritosCentro = bd.Distritos .Where(p => p.Nome == "Coimbra" || p.Nome == "Aveiro" || p.Nome == "Viseu" || p.Nome == "Leiria" || p.Nome == "Castelo Branco" || p.Nome == "Guarda") .Select(p => new Checkbox() { Id = p.DistritosId, NomeDistrito = p.Nome, Selecionado = p.DistritosPromocoes.Any(p => p.PromocoesId == promocao.PromocoesId) ? true : false }).ToList(); var listaDistritosSul = bd.Distritos .Where(p => p.Nome == "Lisboa" || p.Nome == "Setúbal" || p.Nome == "Santarém" || p.Nome == "Portalegre" || p.Nome == "Évora" || p.Nome == "Beja" || p.Nome == "Faro") .Select(p => new Checkbox() { Id = p.DistritosId, NomeDistrito = p.Nome, Selecionado = p.DistritosPromocoes.Any(p => p.PromocoesId == promocao.PromocoesId) ? true : false }).ToList(); var listaDistritosIlhas = bd.Distritos .Where(p => p.Nome == "Açores" || p.Nome == "Madeira") .Select(p => new Checkbox() { Id = p.DistritosId, NomeDistrito = p.Nome, Selecionado = p.DistritosPromocoes.Any(p => p.PromocoesId == promocao.PromocoesId) ? true : false }).ToList(); promocoesPacotesViewModel.Nome = promocao.Nome; promocoesPacotesViewModel.Descricao = promocao.Descricao; promocoesPacotesViewModel.DataInicio = promocao.DataInicio; promocoesPacotesViewModel.DataFim = promocao.DataFim; promocoesPacotesViewModel.PromocaoDesc = promocao.PromocaoDesc; promocoesPacotesViewModel.ListaPacotes = listaPacotes; promocoesPacotesViewModel.ListaDistritosCentro = listaDistritosCentro; promocoesPacotesViewModel.ListaDistritosIlhas = listaDistritosIlhas; promocoesPacotesViewModel.ListaDistritosNorte = listaDistritosNorte; promocoesPacotesViewModel.ListaDistritosSul = listaDistritosSul; promocoesPacotesViewModel.PromocoesId = (int)id; return(View(promocoesPacotesViewModel)); }
public async Task <IActionResult> Create(PromocoesPacotesViewModel promocoesPacotesViewModel, PromocoesPacotes promocoesPacotes, Promocoes promocoes) { if (!ModelState.IsValid) { var pacotes = bd.Pacotes.ToList(); promocoesPacotesViewModel.ListaPacotes = pacotes.Select(s => new Checkbox() { Id = s.PacoteId, NomePacote = s.Nome, Selecionado = false }).ToList(); var distritosCentro = bd.Distritos.Where(p => p.Nome == "Coimbra" || p.Nome == "Aveiro" || p.Nome == "Viseu" || p.Nome == "Leiria" || p.Nome == "Castelo Branco" || p.Nome == "Guarda") .ToList(); var distritosNorte = bd.Distritos.Where(p => p.Nome == "Viana do Castelo" || p.Nome == "Braga" || p.Nome == "Porto" || p.Nome == "Vila Real" || p.Nome == "Bragança") .ToList(); var distritosSul = bd.Distritos.Where(p => p.Nome == "Lisboa" || p.Nome == "Setúbal" || p.Nome == "Santarém" || p.Nome == "Portalegre" || p.Nome == "Évora" || p.Nome == "Beja" || p.Nome == "Faro") .ToList(); var distritosIlhas = bd.Distritos.Where(p => p.Nome == "Açores" || p.Nome == "Madeira") .ToList(); promocoesPacotesViewModel.ListaDistritosCentro = distritosCentro.Select(s => new Checkbox() { Id = s.DistritosId, NomeDistrito = s.Nome, Selecionado = false }).ToList(); promocoesPacotesViewModel.ListaDistritosNorte = distritosNorte.Select(s => new Checkbox() { Id = s.DistritosId, NomeDistrito = s.Nome, Selecionado = false }).ToList(); promocoesPacotesViewModel.ListaDistritosSul = distritosSul.Select(s => new Checkbox() { Id = s.DistritosId, NomeDistrito = s.Nome, Selecionado = false }).ToList(); promocoesPacotesViewModel.ListaDistritosIlhas = distritosIlhas.Select(s => new Checkbox() { Id = s.DistritosId, NomeDistrito = s.Nome, Selecionado = false }).ToList(); return(View(promocoesPacotesViewModel)); } List <PromocoesPacotes> promocoesDosPacotes = new List <PromocoesPacotes>(); promocoes.Nome = promocoesPacotesViewModel.Nome; promocoes.Descricao = promocoesPacotesViewModel.Descricao; promocoes.DataInicio = promocoesPacotesViewModel.DataInicio; promocoes.DataFim = promocoesPacotesViewModel.DataFim; promocoes.PromocaoDesc = promocoesPacotesViewModel.PromocaoDesc; promocoes.Inactivo = false; int promocaoId = promocoes.PromocoesId; foreach (var item in promocoesPacotesViewModel.ListaPacotes) { if (item.Selecionado == true) { promocoesDosPacotes.Add(new PromocoesPacotes() { PromocoesId = promocaoId, PacoteId = item.Id }); } } if (promocoesDosPacotes.Count == 0) { ModelState.AddModelError("ListaPacotes", "A promoção que está a criar não vai ficar disponível para nenhum pacote"); } List <DistritosPromocoes> distritoscomPromocoes = new List <DistritosPromocoes>(); foreach (var item in promocoesPacotesViewModel.ListaDistritosCentro) { if (item.Selecionado == true) { distritoscomPromocoes.Add(new DistritosPromocoes() { PromocoesId = promocaoId, DistritosId = item.Id }); } } foreach (var item in promocoesPacotesViewModel.ListaDistritosIlhas) { if (item.Selecionado == true) { distritoscomPromocoes.Add(new DistritosPromocoes() { PromocoesId = promocaoId, DistritosId = item.Id }); } } foreach (var item in promocoesPacotesViewModel.ListaDistritosNorte) { if (item.Selecionado == true) { distritoscomPromocoes.Add(new DistritosPromocoes() { PromocoesId = promocaoId, DistritosId = item.Id }); } } foreach (var item in promocoesPacotesViewModel.ListaDistritosSul) { if (item.Selecionado == true) { distritoscomPromocoes.Add(new DistritosPromocoes() { PromocoesId = promocaoId, DistritosId = item.Id }); } } if (distritoscomPromocoes.Count == 0) { ModelState.AddModelError("ListaDistritosNorte", "A promoção que está a criar não vai ficar disponível em nenhum distrito"); } if (!ModelState.IsValid) { var pacotes = bd.Pacotes.ToList(); promocoesPacotesViewModel.ListaPacotes = pacotes.Select(s => new Checkbox() { Id = s.PacoteId, NomePacote = s.Nome, Selecionado = false }).ToList(); var distritosCentro = bd.Distritos.Where(p => p.Nome == "Coimbra" || p.Nome == "Aveiro" || p.Nome == "Viseu" || p.Nome == "Leiria" || p.Nome == "Castelo Branco" || p.Nome == "Guarda") .ToList(); var distritosNorte = bd.Distritos.Where(p => p.Nome == "Viana do Castelo" || p.Nome == "Braga" || p.Nome == "Porto" || p.Nome == "Vila Real" || p.Nome == "Bragança") .ToList(); var distritosSul = bd.Distritos.Where(p => p.Nome == "Lisboa" || p.Nome == "Setúbal" || p.Nome == "Santarém" || p.Nome == "Portalegre" || p.Nome == "Évora" || p.Nome == "Beja" || p.Nome == "Faro") .ToList(); var distritosIlhas = bd.Distritos.Where(p => p.Nome == "Açores" || p.Nome == "Madeira") .ToList(); promocoesPacotesViewModel.ListaDistritosCentro = distritosCentro.Select(s => new Checkbox() { Id = s.DistritosId, NomeDistrito = s.Nome, Selecionado = false }).ToList(); promocoesPacotesViewModel.ListaDistritosNorte = distritosNorte.Select(s => new Checkbox() { Id = s.DistritosId, NomeDistrito = s.Nome, Selecionado = false }).ToList(); promocoesPacotesViewModel.ListaDistritosSul = distritosSul.Select(s => new Checkbox() { Id = s.DistritosId, NomeDistrito = s.Nome, Selecionado = false }).ToList(); promocoesPacotesViewModel.ListaDistritosIlhas = distritosIlhas.Select(s => new Checkbox() { Id = s.DistritosId, NomeDistrito = s.Nome, Selecionado = false }).ToList(); return(View(promocoesPacotesViewModel)); } bd.Promocoes.Add(promocoes); await bd.SaveChangesAsync(); foreach (var item in promocoesDosPacotes) { item.PromocoesId = promocoes.PromocoesId; bd.PromocoesPacotes.Add(item); } await bd.SaveChangesAsync(); foreach (var item in distritoscomPromocoes) { item.PromocoesId = promocoes.PromocoesId; bd.DistritosPromocoes.Add(item); } await bd.SaveChangesAsync(); ViewBag.Mensagem = "Promoção adicionada com sucesso."; return(View("Sucesso")); }