Exemplo n.º 1
0
        public ActionResult VincularCursosTrilha(int id)
        {
            var modelView = new VincularCursosTrilhaViewModel();

            // Obtenho a Trilha
            using (var repo = new TrilhaRepository())
            {
                modelView.Trilha = repo.Obter(id);
            }

            // Lista com todos os cursos
            using (var repo = new CursoRepository())
            {
                var lista = repo.ListarCursosDetalhes();

                // transforma os itens da lista nos itens para vincular com a tela:
                // Obs: Esse foreach é desnecessário. Poderia ser resolvido com 1 única linha de lambda, porém
                // usei o for para ser mais fácil de entender.
                foreach (var curso in lista)
                {
                    var item = new SelectListItem
                    {
                        Text  = curso.Nome,
                        Value = curso.Id.ToString()
                    };
                    modelView.CursosDisponiveis.Add(item);
                }
            }
            return(View(modelView));
        }
Exemplo n.º 2
0
        public ActionResult VincularCursos(VincularCursosTrilhaViewModel model)
        {
            // Aqui eu salvo os cursos vinculados.
            // No model, vai receber os IDs dos itens selecionados, entao é só
            // passar isso pro método do repositório que faz a atualização.

            using (var repo = new TrilhaRepository())
            {
                repo.AtualizarCursos(model.Trilha.Id, model.CursosSelecionados.ToArray());
            }

            return(RedirectToAction("Index"));
        }
Exemplo n.º 3
0
        public ActionResult VincularCursos(int id)
        {
            // Essa view precisa dos dados da trilha para exibir o nome da trilha,
            // + uma lista com todos os cursos disponíveis e também uma outra lista
            // com os cursos que já estão selecionados.
            // Por isso criamos esse viewmodel para devolver isso tudo para a view;

            var model = new VincularCursosTrilhaViewModel();

            // Obtenho a Trilha
            using (var repo = new TrilhaRepository())
            {
                model.Trilha = repo.Obter(id);
            }

            // Monto a lista com os Itens selecionados:
            model.CursosSelecionados = model.Trilha.Cursos.Select(c => c.Id).ToList();

            // Obs. A sintaxe acima se chama Lambda, e é usada para montar uma lista de IDs que é o que
            // o Helper precisa pra montar um ListBox de multipla seleção.
            // Poderia ser feito um FOREACH para obter essa lista.


            // Lista com todos os cursos
            using (var repo = new CursoRepository())
            {
                var lista = repo.ListarCursosDetalhes();

                // transforma os itens da lista nos itens para vincular com a tela:
                // Obs: Esse foreach é desnecessário. Poderia ser resolvido com 1 única linha de lambda, porém
                // usei o for para ser mais fácil de entender.
                foreach (var curso in lista)
                {
                    var item = new SelectListItem
                    {
                        Text  = curso.Nome,
                        Value = curso.Id.ToString()
                    };
                    model.CursosDisponiveis.Add(item);
                }
            }
            return(View(model));
        }