public ActionResult <ApiResponse <StudentCourseFeatDto> > Courses(int studentId, int courseId) { ApiResponse <StudentCourseFeatDto> response = new ApiResponse <StudentCourseFeatDto>(); StudentCourseFeatDto result = new StudentCourseFeatDto(); try { var res = _mapper.Map <List <EvaluationStudentCourseDto> >(_evaluationStudentCourseRepository.FindBy(esc => esc.StudentId == studentId && esc.CourseId == courseId)); if (res == null) { response.Message = "No hay cursos para mostrar"; } result.Courses = res; //var studentCourse = _studentCourseRepository.Find(sc => sc.Id == studentCourseId); List <MatterDto> dtos = _mapper.Map <List <MatterDto> >(_matterRepository.FindBy(m => m.CourseId == courseId)); if (dtos.Count > 0) { foreach (MatterDto item in dtos) { item.Evaluation = _mapper.Map <EvaluationMatterStudentMatterDto>( (_evaluationStudentMatterRepository .FindBy(esm => esm.MatterId == item.Id && esm.StudentId == studentId && esm.Qualification > 5)) .FirstOrDefault()); } result.Matters = dtos; //Logros de connexion List <ConnectionTimeDto> timeDtos = new List <ConnectionTimeDto>(); timeDtos.Add(new ConnectionTimeDto { Duration = "1 HORA CONECTADO", Icon = "iconounahora", Enabled = true }); timeDtos.Add(new ConnectionTimeDto { Duration = "2 HORAS CONECTADO", Icon = "iconodoshoras", Enabled = false }); timeDtos.Add(new ConnectionTimeDto { Duration = "3 HORAS CONECTADO", Icon = "iconotreshoras", Enabled = false }); timeDtos.Add(new ConnectionTimeDto { Duration = "4 HORAS CONECTADO", Icon = "iconocuatrohoras", Enabled = false }); List <ConnectionDayDtos> dayDtos = new List <ConnectionDayDtos>(); dayDtos.Add(new ConnectionDayDtos { Duration = "1 DIA CONECTADO", Icon = "iconoundia", Enabled = true }); dayDtos.Add(new ConnectionDayDtos { Duration = "2 DIAS CONECTADO", Icon = "iconodosdias", Enabled = true }); dayDtos.Add(new ConnectionDayDtos { Duration = "3 DIAS CONECTADO", Icon = "iconotresdias", Enabled = false }); dayDtos.Add(new ConnectionDayDtos { Duration = "4 DIAS CONECTADO", Icon = "iconocuatrodias", Enabled = false }); result.ConnectionDurations = timeDtos; result.ConnectionDays = dayDtos; } response.Result = result; } catch (Exception ex) { response.Result = null; response.Success = false; response.Message = "Internal server error"; _logger.LogError($"Something went wrong: { ex.ToString() }"); return(StatusCode(500, response)); } return(Ok(response)); }
public ActionResult <ApiResponse <List <MatterEvaluationDto> > > GetBy(int studentCourseId) { var response = new ApiResponse <List <MatterEvaluationDto> >(); try { var studentCourse = _studentCourseRepository.Find(sc => sc.Id == studentCourseId); if (studentCourse != null) { List <MatterEvaluationDto> dtos = _mapper.Map <List <MatterEvaluationDto> >(_matterRepository.FindBy(m => m.CourseId == studentCourse.CourseId)); if (dtos.Count > 0) { foreach (MatterEvaluationDto item in dtos) { item.Evaluation = _mapper.Map <EvaluationMatterStudentMatterDto>( (_evaluationStudentMatterRepository. FindBy(esm => esm.MatterId == item.Id && esm.StudentId == studentCourse.StudentId)).LastOrDefault()); //if (item.Evaluation != null) //{ // item.Evaluation.Category = _mapper.Map<CategoryEvaluationDto>(_categoryRepository.Find(c => c.Id == item.Evaluation.CategoryId)); //} var resProgress = (_studentMatterRepository.FindBy(sm => sm.MatterId == item.Id && sm.StudentCourseId == studentCourseId)).LastOrDefault(); if (resProgress != null) { item.Progress = resProgress.Progress; } } response.Result = dtos; } else { response.Success = false; response.Message = "No hay materias para mostrar, se debe avisar al administrador"; } } else { response.Success = false; response.Message = "El estudiante no tiene cursos asignados"; } } catch (Exception ex) { response.Result = null; response.Success = false; response.Message = "Internal server error"; _logger.LogError($"Something went wrong: { ex.ToString() }"); return(StatusCode(500, response)); } return(Ok(response)); }