public async Task <bool> Do_MatricularEstudiante(int estId, AddEstudianteViewModel model) { try { var curso = await _data.Find_Curso(model.CursoId); var estudiante = await _data.Find_Estudiante(estId); _data.Do_MatricularEstudiante(curso, estudiante, model.Map(curso.Id, estudiante.Id), model.Password); if (!await _data.SaveAllAsync()) { throw new ApplicationServicesException( "Lo sentimos, la contraseña es inválida"); } return(true); } catch (Exception) { throw new ApplicationServicesException( "Contraseña inválida"); } }
public async Task <ApiResult <bool> > Do_MatricularEstudiante(int estId, AddEstudianteViewModel model) { var result = ApiResult <bool> .Initialize(true); try { var curso = await _data.Find_Curso(model.CursoId); var estudiante = await _data.Find_Estudiante(estId); var dataModel = model.Map(curso.Id, estudiante.Id); _data.Do_MatricularEstudiante(curso, estudiante, ref dataModel, model.Password); result.Success = await _data.SaveAllAsync(); if (!result.Success) { result.AddError("password", "Lo sentimos, la contraseña es inválida."); } return(result); } catch (Exception e) { //TODO: Log exception. result.AddError("", "El estudiante ya se ha matriculado en el curso."); result.Success = false; return(result); } }
public async Task <IActionResult> EnrollStudent([FromBody] AddEstudianteViewModel model) { return(await this.Get(async() => { var estId = _userService.Get_EstudianteId(User.Claims); return await _estudianteService.Do_MatricularEstudiante(estId, model); })); }
public async Task <IActionResult> AddEstudiante( AddEstudianteViewModel model) { if (ModelState.IsValid) { var id = _usrService.Get_EstudianteId(User.Claims); try { var res = await _ctrlService .Do_MatricularEstudiante(id, model); if (res) { return(RedirectToAction("Index")); } } catch (ApplicationServicesException e) { this.SetAlerts("error-alerts", e.Message); } } return(RedirectToAction("Busqueda")); }