public async Task <ActionResult> Subscribe( [Bind(Include = "HorarioConsultaFechadoId, Observation, Topic")] MvcInscripcionModel inscripcion) { try { Usuario user = await _usuarioEndpoint.GetCurrentUsuario(token : _userSession.BearerToken); inscripcion.State = MvcInscripcionModel.InscripcionStates.Active; inscripcion.AlumnoId = user.Id; var entity = _mapper.Map <Inscripcion>(source: inscripcion); await _inscripcionEndpoint.Post(entity, _userSession.BearerToken); } catch (UnauthorizedRequestException) { return(RedirectToAction("AccessDeniedPartial", "Error")); } catch (BadRequestException ex) { HorarioConsultaFechado entity = await _horarioConsultaFechadoEndpoint.Get(inscripcion.HorarioConsultaFechadoId, _userSession.BearerToken); var horarioFechado = _mapper.Map <MvcHorarioConsultaFechadoModel>(source: entity); inscripcion.HorarioConsultaFechado = horarioFechado; ModelState.AddModelErrors(ex.Errors); return(PartialView("_Subscribe", inscripcion)); } catch (Exception ex) { return(RedirectToAction("SpecificErrorPartial", "Error", new { error = ex.Message })); } return(Content("OK")); }
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")); }