public ActionResult CadastrarAmbiente()
        {
            AmbienteViewModel viewModel = null;

            try
            {
                viewModel = new AmbienteViewModel();

                //List<TipoAmbienteViewModel> tipoAmbiente = TipoAmbienteViewModel.MapToListViewModel(speDominioService.GetTipoAmbienteAll().ToList());
                List <TipoAmbienteViewModel> tipoAmbiente = TipoAmbienteViewModel.MapToListViewModel(BL.TipoAmbiente.Get().ToList());
                viewModel.ListaTipoAmbiente = tipoAmbiente;
                //List<LocalAmbienteViewModel> localAmbiente = LocalAmbienteViewModel.MapToListViewModel(speDominioService.GetLocalAmbienteAll().ToList());
                List <LocalAmbienteViewModel> localAmbiente = LocalAmbienteViewModel.MapToListViewModel(BL.LocalAmbiente.Get().ToList());
                viewModel.ListaLocalidade = localAmbiente;
                //List<RecursoViewModel> recursos = RecursoViewModel.MapToListViewModel(speDominioService.GetFilteredRecurso(a => true, b => b.OrderBy(x => x.Descr), "TipoRecurso").ToList());
                List <RecursoViewModel> recursos = RecursoViewModel.MapToListViewModel(BL.Recurso.Get(a => true, b => b.OrderBy(x => x.Descr), "TipoRecurso").ToList());
                viewModel.ListaRecurso = recursos;
            }
            catch (Exception ex)
            {
                TempData["Error"]        = true;
                TempData["ErrorMessage"] = "Erro ao carregar a página.";

                Logging.getInstance().Error("Erro ao carregar página CadastrarAmbiente", ex);
            }
            return(View(viewModel));
        }
        public ActionResult Componente(int IdModulo, int IdComponente, int IdTurma)
        {
            AgendaComponenteViewModel agendaComponente = new AgendaComponenteViewModel();

            try
            {
                List <string> listaDias = new List <string>();
                //agendaComponente = AgendaComponenteViewModel.MapToViewModel(this.speDominioService.getComponentesAgendados(IdModulo, IdComponente, IdTurma).FirstOrDefault());
                agendaComponente = AgendaComponenteViewModel.MapToViewModel(BL.AgendaComponente.GetComponenteAgendados(IdModulo, IdComponente, IdTurma).FirstOrDefault());

                var lista = Enum.GetNames(typeof(DiasSemanaEnum)).ToList();
                agendaComponente.ListaDias = lista;
                agendaComponente.IdTurma   = IdTurma;
                if (agendaComponente.Turma == null)
                {
                    //agendaComponente.Turma = this.speDominioService.GetFilteredTurma(a => a.IdTurma == IdTurma, null, "Turno").FirstOrDefault();
                    agendaComponente.Turma = BL.Turma.Get(a => a.IdTurma == IdTurma, null, "Turno").FirstOrDefault();
                }

                //agendaComponente.Componente = this.speDominioService.GetFilteredComponente(a => a.IdComponente == IdComponente, null, "TipoAmbiente,TipoAmbiente.Ambiente,TipoAmbiente.Ambiente.localambiente").FirstOrDefault();
                agendaComponente.Componente = BL.Componente.Get(a => a.IdComponente == IdComponente, null, "TipoAmbiente,TipoAmbiente.Ambiente,TipoAmbiente.Ambiente.localambiente").FirstOrDefault();

                //agendaComponente.Docentes = this.speDominioService.GetDocenteAll().ToList();
                agendaComponente.Docentes = BL.Docente.Get().ToList();

                agendaComponente.ListaTipoAmbiente = new List <TipoAmbienteViewModel>();

                //agendaComponente.ComponentesAgendados = AgendaComponenteViewModel.MapToViewModel(this.speDominioService.getComponentesAgendados(IdModulo, IdComponente, IdTurma).FirstOrDefault());
                agendaComponente.ComponentesAgendados = AgendaComponenteViewModel.MapToViewModel(BL.AgendaComponente.GetComponenteAgendados(IdModulo, IdComponente, IdTurma).FirstOrDefault());

                //agendaComponente.AmbienteAgendados = AgendaAmbienteViewModel.MapToListViewModel(this.speDominioService.getAmbienteAgendados(IdModulo, IdComponente, IdTurma));
                agendaComponente.AmbienteAgendados = AgendaAmbienteViewModel.MapToListViewModel(BL.AgendaAmbiente.GetAmbientesAgendados(IdModulo, IdComponente, IdTurma));

                //agendaComponente.DocentesAgendados = AgendaDocenteViewModel.MapToListViewModel(this.speDominioService.getDocenteAgendados(IdModulo, IdComponente, IdTurma));
                agendaComponente.DocentesAgendados = AgendaDocenteViewModel.MapToListViewModel(BL.AgendaDocente.GetDocentesAgendados(IdModulo, IdComponente, IdTurma));

                agendaComponente.HoraIniView = agendaComponente.Turma.Turno.HoraIni.Value.ToString().Substring(0, 5);
                agendaComponente.HoraFimView = agendaComponente.Turma.Turno.HoraFim.Value.ToString().Substring(0, 5);

                //agendaComponente.Locais = LocalAmbienteViewModel.MapToListViewModel(this.speDominioService.GetLocalAmbienteAll().ToList());
                agendaComponente.Locais = LocalAmbienteViewModel.MapToListViewModel(BL.LocalAmbiente.Get().ToList());

                //agendaComponente.TiposAmbientes = TipoAmbienteViewModel.MapToListViewModel(this.speDominioService.GetTipoAmbienteAll().ToList());
                agendaComponente.TiposAmbientes = TipoAmbienteViewModel.MapToListViewModel(BL.TipoAmbiente.Get().ToList());
            }
            catch (Exception ex)
            {
                TempData["Error"]        = true;
                TempData["ErrorMessage"] = "Erro ao carregar a página";
                Logging.getInstance().Error(TempData["ErrorMessage"].ToString(), ex);
            }
            agendaComponente.IdModulo = IdModulo;
            return(View(agendaComponente));
        }
        public ActionResult CadastrarLocalAmbiente()
        {
            LocalAmbienteViewModel viewModel = null;

            try
            {
                viewModel = new LocalAmbienteViewModel();
            }
            catch (Exception ex)
            {
                TempData["Error"]        = true;
                TempData["ErrorMessage"] = "Erro ao carregar a página";

                Logging.getInstance().Error("Erro ao carregar página CadastrarLocalAmbiente", ex);
            }
            return(View(viewModel));
        }
        public ActionResult EditarLocalAmbiente(int id)
        {
            LocalAmbienteViewModel localAmbienteViewModel = null;

            try
            {
                var localAmbiente = BL.LocalAmbiente.GetById(id);
                localAmbienteViewModel = LocalAmbienteViewModel.MapToViewModel(localAmbiente);
            }
            catch (Exception ex)
            {
                TempData["Error"]        = true;
                TempData["ErrorMessage"] = "Erro ao carregar a página";

                Logging.getInstance().Error("Erro ao carregar página EditarLocalAmbiente", ex);
            }
            return(View(localAmbienteViewModel));
        }
        public ViewResult Index()
        {
            List <LocalAmbienteViewModel> localAmbiente = null;

            try
            {
                var listaLocalAmbiente = BL.LocalAmbiente.Get(a => true, b => b.OrderBy(c => c.Descr));
                localAmbiente = LocalAmbienteViewModel.MapToListViewModel(listaLocalAmbiente.ToList());
            }
            catch (Exception ex)
            {
                TempData["Error"]        = true;
                TempData["ErrorMessage"] = "Erro ao carregar a página";

                Logging.getInstance().Error("Erro ao carregar página de Index", ex);
            }
            return(View(localAmbiente));
        }
        public ActionResult EditarLocalAmbiente(LocalAmbienteViewModel localAmbienteViewModel)
        {
            try
            {
                var model = LocalAmbienteViewModel.MapToModel(localAmbienteViewModel);
                BL.LocalAmbiente.AtualizarLocalAmbiente(model);
                TempData["Sucesso"]        = true;
                TempData["SucessoMessage"] = "Edição de Localização realizada com sucesso.";
            }
            catch (Exception ex)
            {
                TempData["Error"]        = true;
                TempData["ErrorMessage"] = (ex.GetType().Name == "CustomException") ? ex.Message : "Erro ao editar Localização";

                Logging.getInstance().Error(TempData["ErrorMessage"].ToString(), ex);
            }

            return(RedirectToAction("Index"));
        }
        public ActionResult EditarAmbiente(int id)
        {
            AmbienteViewModel ambienteViewModel = null;

            try
            {
                //var Ambiente = this.speDominioService.GetFilteredAmbiente(e => e.IdAmbiente == id, null, "RecursoAmbiente,RecursoAmbiente.Recurso,RecursoAmbiente.Recurso.TipoRecurso").FirstOrDefault();
                var Ambiente = BL.Ambiente.Get(e => e.IdAmbiente == id, null, "RecursoAmbiente,RecursoAmbiente.Recurso,RecursoAmbiente.Recurso.TipoRecurso").FirstOrDefault();
                ambienteViewModel = AmbienteViewModel.MapToViewModel(Ambiente);

                //List<TipoAmbienteViewModel> tipoAmbiente = TipoAmbienteViewModel.MapToListViewModel(speDominioService.GetTipoAmbienteAll().ToList());
                List <TipoAmbienteViewModel> tipoAmbiente = TipoAmbienteViewModel.MapToListViewModel(BL.TipoAmbiente.Get().ToList());
                ambienteViewModel.ListaTipoAmbiente = tipoAmbiente;
                //List<LocalAmbienteViewModel> localAmbiente = LocalAmbienteViewModel.MapToListViewModel(speDominioService.GetLocalAmbienteAll().ToList());
                List <LocalAmbienteViewModel> localAmbiente = LocalAmbienteViewModel.MapToListViewModel(BL.LocalAmbiente.Get().ToList());
                ambienteViewModel.ListaLocalidade = localAmbiente;
                //List<Recurso> recursos = speDominioService.GetFilteredRecurso(a => true, b => b.OrderBy(x => x.Descr), "TipoRecurso").ToList();
                List <Recurso> recursos = BL.Recurso.Get(a => true, b => b.OrderBy(x => x.Descr), "TipoRecurso").ToList();

                foreach (var item in ambienteViewModel.RecursoAmbiente)
                {
                    var remover = recursos.FirstOrDefault(e => e.idRecurso == item.IdRecurso);
                    if (remover != null)
                    {
                        recursos.Remove(remover);
                    }
                }

                ambienteViewModel.ListaRecurso = RecursoViewModel.MapToListViewModel(recursos);
            }
            catch (Exception ex)
            {
                TempData["Error"]        = true;
                TempData["ErrorMessage"] = "Erro ao carregar a página.";

                Logging.getInstance().Error("Erro ao carregar página EditarAmbiente", ex);
            }
            return(View(ambienteViewModel));
        }