Beispiel #1
0
        // 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"));
        }
Beispiel #2
0
        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 }));
            }
        }