// Search Nueva Inscripción (By Depto, Materia y Profesor)
        public async Task <ActionResult> Search(int?deptoId, int?materiaId, int?profeId)
        {
            try {
                var horariosConsultaFechadosTask = _horarioConsultaFechadoEndpoint.GetByDeptoAndMateriaAndProfe(deptoId: deptoId, materiaId: materiaId, profeId: profeId, token: _userSession.BearerToken);
                var departamentosTask            = _departamentoEndpoint.GetAll(_userSession.BearerToken);
                var materiasTask   = _materiaEndpoint.GetAll(_userSession.BearerToken);
                var profesoresTask = _usuarioEndpoint.GetAllProfesores(_userSession.BearerToken);

                await Task.WhenAll(horariosConsultaFechadosTask, departamentosTask, materiasTask, profesoresTask);

                var departamentos            = _mapper.Map <IEnumerable <MvcDepartamentoModel> >(source: departamentosTask.Result);
                var materias                 = _mapper.Map <IEnumerable <MvcMateriaModel> >(source: materiasTask.Result);
                var profesores               = _mapper.Map <IEnumerable <MvcUsuarioModel> >(source: profesoresTask.Result);
                var horariosConsultaFechados = _mapper.Map <IEnumerable <MvcHorarioConsultaFechadoModel> >(horariosConsultaFechadosTask.Result);

                var viewModel = new ShowHorariosParaInscribirViewModel(
                    horariosConsultaFechados: horariosConsultaFechados,
                    departamentos: departamentos, materias: materias, profesores: profesores,
                    departamentoId: deptoId, materiaId: materiaId, profesorId: profeId);

                return(View("NuevaConsulta", viewModel));
            } catch (UnauthorizedRequestException) {
                return(RedirectToAction("AccessDenied", "Error"));
            } catch (Exception ex) {
                return(RedirectToAction("SpecificError", "Error", new { error = ex.Message }));
            }
        }
        // Index Nueva Inscripción (By Current Alumno User)
        public async Task <ActionResult> NuevaConsulta()
        {
            try
            {
                var departamentosTask = _departamentoEndpoint.GetAll(_userSession.BearerToken);
                var materiasTask      = _materiaEndpoint.GetAll(_userSession.BearerToken);
                var profesoresTask    = _usuarioEndpoint.GetAllProfesores(_userSession.BearerToken);

                await Task.WhenAll(departamentosTask, materiasTask, profesoresTask);

                var departamentos = _mapper.Map <IEnumerable <MvcDepartamentoModel> >(source: departamentosTask.Result);
                var materias      = _mapper.Map <IEnumerable <MvcMateriaModel> >(source: materiasTask.Result);
                var profesores    = _mapper.Map <IEnumerable <MvcUsuarioModel> >(source: profesoresTask.Result);

                var viewModel = new ShowHorariosParaInscribirViewModel(
                    departamentos: departamentos, materias: materias, profesores: profesores);

                return(View(viewModel));
            }
            catch (UnauthorizedRequestException)
            {
                return(RedirectToAction("AccessDenied", "Error"));
            }
            catch (Exception ex)
            {
                return(RedirectToAction("SpecificError", "Error", new { error = ex.Message }));
            }
        }