// Bind(Include = "...") is used to avoid overposting attacks public async Task <ActionResult> Edit(EditInscripcionViewModel viewModel) { try { var entity = _mapper.Map <Inscripcion>(viewModel.Inscripcion); if (entity.State == null) { entity.State = Inscripcion.InscripcionStates.Active; } await _inscripcionEndpoint.Put(entity, _userSession.BearerToken); } catch (UnauthorizedRequestException) { return(Content("No esta autorizado")); } catch (BadRequestException ex) { var profesoresTask = _usuarioEndpoint.GetAll(_userSession.BearerToken); var horariosConsultaFechadosTask = _horarioConsultaFechadoEndpoint.GetAll(_userSession.BearerToken); // May throw an exception, so that is why the modal is not showing in nico user await Task.WhenAll(profesoresTask, horariosConsultaFechadosTask); var alumnos = _mapper.Map <IEnumerable <MvcUsuarioModel> >(source: profesoresTask.Result); var horariosConsultaFechado = _mapper.Map <IEnumerable <MvcHorarioConsultaFechadoModel> >(source: horariosConsultaFechadosTask.Result); viewModel.SetAlumnosAsSelectList(alumnos); viewModel.SetHorariosConsultaFechadosAsSelectList(horariosConsultaFechado); viewModel.SetEstadosAsSelectList(); ModelState.AddModelErrors(ex.Errors); return(PartialView("_Edit", viewModel)); } catch (Exception ex) { return(RedirectToAction("SpecificError", "Error", new { error = ex.Message })); } return(Content("OK")); }
public async Task <ActionResult> Edit(int?id) { if (id == null) { return(Content("Debe incluir el id")); } try { var inscripcionTask = _inscripcionEndpoint.Get(id, _userSession.BearerToken); var alumnosTask = _usuarioEndpoint.GetAll(_userSession.BearerToken); var horariosConsultaFechadosTask = _horarioConsultaFechadoEndpoint.GetAll(_userSession.BearerToken); await Task.WhenAll(inscripcionTask, alumnosTask, horariosConsultaFechadosTask); var inscripcion = _mapper.Map <MvcInscripcionModel>(source: inscripcionTask.Result); var alumnos = _mapper.Map <IEnumerable <MvcUsuarioModel> >(source: alumnosTask.Result); var horariosConsultaFechados = _mapper.Map <IEnumerable <MvcHorarioConsultaFechadoModel> >(source: horariosConsultaFechadosTask.Result); var viewModel = new EditInscripcionViewModel(inscripcion: inscripcion, horariosConsultaFechados: horariosConsultaFechados, alumnos: alumnos); return(PartialView("_Edit", viewModel)); } catch (UnauthorizedRequestException) { return(Content("No esta autorizado")); } catch (NotFoundRequestException ex) { return(Content($"{ex.StatusCode}: Elemento no encontrado")); } catch (Exception ex) { return(RedirectToAction("SpecificError", "Error", new { error = ex.Message })); } }