Ejemplo n.º 1
0
        /// <summary>
        /// Method to get student details - SS
        /// </summary>
        /// <param name="getStudentAttendance">query data</param>
        /// <returns>list of student attendance</returns>
        public async Task <List <StudentAttendance> > GetStudentAttendanceAsync(GetStudentAttendanceManagementAc getStudentAttendance, ApplicationUser loggedInUser)
        {
            var instituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(loggedInUser.Id, true);

            var academicYear = await _iMSDbContext.SelectedAcademicYears.FirstOrDefaultAsync(x => x.AcademicYear.InstituteId == instituteId &&
                                                                                             x.UserId == loggedInUser.Id);

            var attendances = await _iMSDbContext.StudentAttendances.Where(x => x.AttendanceDate >= getStudentAttendance.StartDate &&
                                                                           x.AttendanceDate <= getStudentAttendance.EndDate && x.Student.CurrentClassId == getStudentAttendance.ClassId &&
                                                                           x.Student.SectionId == getStudentAttendance.SectionId && x.PeriodOrderId == getStudentAttendance.PeriodOrderId).ToListAsync();

            if (academicYear != null)
            {
                attendances = attendances.Where(x => x.AcademicYearId == academicYear.AcademicYearId).ToList();
            }
            attendances.ForEach(x => x.AttendanceTypeDescription = EnumHelperService.GetDescription(x.AttendanceType));
            return(attendances);
        }
        public async Task <IActionResult> GetStudentAttendanceAsync([FromBody] GetStudentAttendanceManagementAc getStudent)
        {
            var user = await _userManager.FindByNameAsync(User.Identity.Name);

            return(Ok(await _studentAttendanceManagementRepository.GetStudentAttendanceAsync(getStudent, user)));
        }