public ActionResult Create(AvaliacaoViewModel avaliacaoViewModel)
        {
            if (ModelState.IsValid)
            {
                var avaliacao = new Avaliacao();
                avaliacao.Objetivo = avaliacaoViewModel.Objetivo;
                avaliacao.DataInicio = avaliacaoViewModel.DataInicio;
                avaliacao.DataFim = avaliacaoViewModel.DataFim;
                avaliacao.CoordenadorId = avaliacaoViewModel.CoordenadorId;

                foreach (var moduloID in avaliacaoViewModel.ModulosID)
                {
                    var modulo = db.Modulos.Find(moduloID);
                    if (modulo != null)
                    {
                        if (avaliacao.Modulos == null)
                        {
                            avaliacao.Modulos = new List<Modulo> {modulo};
                        }
                        else 
                        { 
                            avaliacao.Modulos.Add(modulo);
                        }
                    }
                }

                foreach (var questaoID in avaliacaoViewModel.QuestoesID)
                {
                    var questao = db.Questoes.Find(questaoID);
                    if (questao != null)
                    {
                        if (avaliacao.Questoes == null)
                        {
                            avaliacao.Questoes = new List<Questao> { questao };
                        }
                        else
                        {
                            avaliacao.Questoes.Add(questao);
                        }
                    }
                }

                db.Avaliacoes.Add(avaliacao);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            List<Modulo> Modulos = db.Modulos.ToList();
            ViewBag.ListaModulos = new MultiSelectList(Modulos, "Id", "Nome", null);
            ViewBag.CoordenadorId = new SelectList(db.Coordenadores, "Id", "Nome");
            return View(avaliacaoViewModel);
        }
        public ActionResult Create(AvaliacaoViewModel avaliacaoViewModel)
        {
            if (ModelState.IsValid)
            {
                SistemaController appController = new SistemaController();

                var avaliacao = new Avaliacao();
                avaliacao.Objetivo = avaliacaoViewModel.Objetivo;
                avaliacao.DataInicio = avaliacaoViewModel.DataInicio;
                avaliacao.DataFim = avaliacaoViewModel.DataFim;

                var message = appController.CriarAvaliacao(avaliacao, avaliacaoViewModel.ModulosID, avaliacaoViewModel.QuestoesID);

                ViewBag.Feedback = message;

                return RedirectToAction("Index");
            }

            List<Modulo> Modulos = db.Modulos.ToList();
            ViewBag.ListaModulos = new MultiSelectList(Modulos, "Id", "Nome", null);
            return View(avaliacaoViewModel);
        }
        //
        // GET: /Admin/Avaliacoes/Edit/5
        public ActionResult Edit(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            Avaliacao avaliacao = db.Avaliacoes.Find(id);

            if (avaliacao == null)
            {
                return HttpNotFound();
            }

            var avaliacaoViewModel = new AvaliacaoViewModel();
            avaliacaoViewModel.Objetivo  = avaliacao.Objetivo;
            avaliacaoViewModel.DataInicio = avaliacao.DataInicio;
            avaliacaoViewModel.DataFim = avaliacao.DataFim;
            avaliacaoViewModel.CoordenadorId  = avaliacao.CoordenadorId;
            avaliacaoViewModel.Modulos = avaliacao.Modulos;
            avaliacaoViewModel.Questoes = avaliacao.Questoes;

            var modulosID = new List<int>();
            avaliacaoViewModel.Modulos.ToList().ForEach(m => modulosID.Add(m.Id));

            var questoesID = new List<int>();
            avaliacaoViewModel.Questoes.ToList().ForEach(q => questoesID.Add(q.Id));

            List<Modulo> modulos = db.Modulos.ToList();
            ViewBag.ListaModulos = new MultiSelectList(modulos, "Id", "Nome", modulosID);

            List<Questao> questoes = db.Questoes.ToList();
            ViewBag.ListaQuestoes = new MultiSelectList(questoes, "Id", "Texto", questoesID);

            ViewBag.CoordenadorId = new SelectList(db.Coordenadores, "Id", "Nome", avaliacaoViewModel.CoordenadorId);
            return View(avaliacaoViewModel);
        }
        public ActionResult Edit(AvaliacaoViewModel avaliacaoViewModel)
        {
            if (ModelState.IsValid)
            {

                var avaliacao = new Avaliacao();
                avaliacao.Id = avaliacaoViewModel.Id;
                avaliacao.Objetivo = avaliacaoViewModel.Objetivo;
                avaliacao.DataInicio = avaliacaoViewModel.DataInicio;
                avaliacao.DataFim = avaliacaoViewModel.DataFim;

                foreach (var moduloID in avaliacaoViewModel.ModulosID)
                {
                    var modulo = db.Modulos.Find(moduloID);
                    if (modulo != null)
                    {
                        //if (avaliacao.Modulos == null)
                        //{
                        //    avaliacao.Modulos = new List<Modulo> { modulo };
                        //}
                        //else
                        //{
                        //    avaliacao.Modulos.Add(modulo);
                        //}
                    }
                }

                foreach (var questaoID in avaliacaoViewModel.QuestoesID)
                {
                    var questao = db.Questoes.Find(questaoID);
                    if (questao != null)
                    {
                        if (avaliacao.Questoes == null)
                        {
                            avaliacao.Questoes = new List<Questao> { questao };
                        }
                        else
                        {
                            avaliacao.Questoes.Add(questao);
                        }
                    }
                }

                db.Entry(avaliacao).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(avaliacaoViewModel);
        }