public async Task <IActionResult> Create([Bind("Id", "Nome", "IdMod", "CargaHoraria", "Sigla")] Curso curso, int[] UnidadeId) { try { if (ModelState.IsValid) { // se não existir um curso com esse nome já cadastrado if (!haveCursos(curso)) { _context.Add(curso); await _context.SaveChangesAsync(); var currentCurso = _context.Cursos.Where(c => c.Nome.Equals(curso.Nome)).SingleOrDefault(); // Para cada unidade selecionada cria a relação Curso -> Unidades Curriculares foreach (var ids in UnidadeId) { CursoUnidadeCurricular cursoUnidade = new CursoUnidadeCurricular(); cursoUnidade.IdCurso = currentCurso.Id; cursoUnidade.IdUc = ids; _context.Add(cursoUnidade); await _context.SaveChangesAsync(); } return(RedirectToAction(nameof(Index))); } ViewData["MSG_E"] = "Já existe um Curso cadastrado com esse nome."; } } catch (DbUpdateException) { ModelState.AddModelError("", "Não foi possível inserir os dados."); } var modalidade = _context.Modalidades.OrderBy(i => i.Nome).ToList(); modalidade.Insert(0, new Modalidade() { Id = 0, Nome = "Selecione a Modalidade" }); ViewBag.Modalidades = modalidade; var unidades = _context.UnidadeCurriculares.OrderBy(u => u.Nome).ToList(); unidades.Insert(0, new UnidadeCurricular() { Id = 0, Nome = "Selecione as Unidades Curriculares" }); ViewBag.Unidades = new MultiSelectList(unidades, "Id", "Nome"); return(View(curso)); }
public async Task <IActionResult> Edit(long?id, [Bind("Id", "Nome", "IdMod", "CargaHoraria", "Sigla")] Curso curso, int[] UnidadeId) { if (id != curso.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(curso); await _context.SaveChangesAsync(); deleteCursoUnidade(id); var ucs = _context.CursoUnidadeCurriculares.Where(c => c.IdCurso.Equals(id)).ToList(); // Para cada unidade selecionada cria a relação Curso -> Unidades Curriculares foreach (var unidade in UnidadeId) { CursoUnidadeCurricular cursoUnidade = new CursoUnidadeCurricular(); cursoUnidade.IdCurso = curso.Id; cursoUnidade.IdUc = unidade; _context.Add(cursoUnidade); await _context.SaveChangesAsync(); } } catch (DbUpdateConcurrencyException) { if (!CursoExists(curso.Id)) { NotFound(); return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewBag.Modalidades = new SelectList(_context.Modalidades.OrderBy(i => i.Nome), "Id", "Nome", curso.IdMod); ViewBag.Unidades = new MultiSelectList(_context.UnidadeCurriculares.OrderBy(u => u.Nome), "Id", "Nome"); return(View(curso)); }