Example #1
0
        public async Task <ActionResult> Create()
        {
            try
            {
                // These tasks run in parallel until they are awaited by Task.WhenAll method
                var alumnosTask = _usuarioEndpoint.GetAll(_userSession.BearerToken);
                var horariosConsultaFechadosTask = _horarioConsultaFechadoEndpoint.GetAll(_userSession.BearerToken);

                await Task.WhenAll(alumnosTask, horariosConsultaFechadosTask);

                var alumnos = _mapper.Map <IEnumerable <MvcUsuarioModel> >(source: alumnosTask.Result);
                var horarioConsultaFechados = _mapper.Map <IEnumerable <MvcHorarioConsultaFechadoModel> >(source: horariosConsultaFechadosTask.Result);

                var viewModel = new CreateInscripcionViewModel(horariosConsultaFechados: horarioConsultaFechados, alumnos: alumnos);

                return(PartialView("_Create", viewModel));
            }
            catch (UnauthorizedRequestException)
            {
                return(RedirectToAction("AccessDeniedPartial", "Error"));
            }
            catch (Exception ex)
            {
                return(RedirectToAction("SpecificErrorPartial", "Error", new { error = ex.Message }));
            }
        }
Example #2
0
        public async Task <ActionResult> Create(CreateInscripcionViewModel viewModel)
        {
            try
            {
                var entity = _mapper.Map <Inscripcion>(source: viewModel.Inscripcion);

                entity.State = Inscripcion.InscripcionStates.Active;

                await _inscripcionEndpoint.Post(entity, _userSession.BearerToken);
            }
            catch (UnauthorizedRequestException)
            {
                return(RedirectToAction("AccessDeniedPartial", "Error"));
            }
            catch (BadRequestException ex)
            {
                var alumnosTask = _usuarioEndpoint.GetAll(_userSession.BearerToken);
                var horariosConsultaFechadosTask = _horarioConsultaFechadoEndpoint.GetAll(_userSession.BearerToken);

                await Task.WhenAll(alumnosTask, horariosConsultaFechadosTask);

                var alumnos  = _mapper.Map <IEnumerable <MvcUsuarioModel> >(source: alumnosTask.Result);
                var materias = _mapper.Map <IEnumerable <MvcHorarioConsultaFechadoModel> >(source: horariosConsultaFechadosTask.Result);

                viewModel.SetAlumnosAsSelectList(alumnos);
                viewModel.SetHorariosConsultaFechadosAsSelectList(materias);
                viewModel.SetEstadosAsSelectList();

                ModelState.AddModelErrors(ex.Errors);

                return(PartialView("_Create", viewModel));
            }
            catch (Exception ex)
            {
                return(RedirectToAction("SpecificErrorPartial", "Error", new { error = ex.Message }));
            }

            return(Content("OK"));
        }