コード例 #1
0
        /// <summary>
        /// Method to add or update attendance - SS
        /// </summary>
        /// <param name="studentAttendances">student attendance detail</param>
        /// <param name="loggedInUser">logged in user</param>
        public async Task AddStudentAttendanceAsync(AddStudentAttendanceManagementWrapperAc studentAttendances, ApplicationUser loggedInUser)
        {
            var instituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(loggedInUser.Id, true);

            var academicYear = await _iMSDbContext.InstituteAcademicYears.FirstOrDefaultAsync(x => x.InstituteId == instituteId && x.IsActive);

            List <StudentAttendance> toBeDeleted = new List <StudentAttendance>();
            List <StudentAttendance> toBeAdded   = new List <StudentAttendance>();

            foreach (var attendance in studentAttendances.Students)
            {
                toBeDeleted.AddRange(await _iMSDbContext.StudentAttendances.Where(x => x.StudentId == attendance.StudentId &&
                                                                                  x.AttendanceDate >= attendance.AttendanceDates.First() && x.AttendanceDate <= attendance.AttendanceDates.Last() &&
                                                                                  x.PeriodOrderId == studentAttendances.PeriodOrderId).ToListAsync());
                for (int i = 0; i < attendance.AttendanceDates.Count; i++)
                {
                    toBeAdded.Add(new StudentAttendance()
                    {
                        AttendanceDate = attendance.AttendanceDates[i],
                        AttendanceType = EnumHelperService.GetValueFromDescription <AttendanceType>(attendance.AttendanceType[i]),
                        CreatedOn      = DateTime.UtcNow,
                        StudentId      = attendance.StudentId,
                        PeriodOrderId  = studentAttendances.PeriodOrderId,
                        UpdatedById    = loggedInUser.Id,
                        UpdatedOn      = DateTime.UtcNow,
                        AcademicYearId = academicYear?.Id
                    });
                }
            }
            _iMSDbContext.StudentAttendances.RemoveRange(toBeDeleted);
            _iMSDbContext.StudentAttendances.AddRange(toBeAdded);
            await _iMSDbContext.SaveChangesAsync();
        }
コード例 #2
0
        public async Task <IActionResult> AddStudentAttendanceAsync([FromBody] AddStudentAttendanceManagementWrapperAc studentAttendances)
        {
            var user = await _userManager.FindByNameAsync(User.Identity.Name);

            await _studentAttendanceManagementRepository.AddStudentAttendanceAsync(studentAttendances, user);

            return(Ok());
        }