Пример #1
0
        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));
        }
Пример #2
0
        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));
        }