/// <summary>
        /// Method for bulk update of week offs
        /// </summary>
        /// <param name="updatedWeekOffs"></param>
        /// <returns></returns>
        public async Task BulkUpdateWeekOff(List <InstituteWeekOffAc> updatedWeekOffs, ApplicationUser currentUser)
        {
            int currentUserInstituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(currentUser.Id, true);

            List <WeekOff> addedWeekOffsList   = new List <WeekOff>();
            List <WeekOff> removedWeekOffsList = new List <WeekOff>();

            foreach (InstituteWeekOffAc weekOffAc in updatedWeekOffs)
            {
                WeekOff weekOff = await _imsDbContext.WeekOffs.FirstOrDefaultAsync(x => x.AcademicYearId == weekOffAc.AcademicYearId && x.InstitutionId == currentUserInstituteId &&
                                                                                   x.WeekDay == weekOffAc.WeekDay);

                if (weekOff == null)
                {
                    WeekOff newWeekOff = new WeekOff
                    {
                        WeekDay        = weekOffAc.WeekDay,
                        AcademicYearId = weekOffAc.AcademicYearId,
                        InstitutionId  = weekOffAc.InstitutionId,
                        CreatedBy      = currentUser.Id,
                        CreatedOn      = DateTime.UtcNow
                    };
                    addedWeekOffsList.Add(newWeekOff);
                }
                else
                {
                    removedWeekOffsList.Add(weekOff);
                }
            }

            _imsDbContext.WeekOffs.AddRange(addedWeekOffsList);
            _imsDbContext.WeekOffs.RemoveRange(removedWeekOffsList);
            await _imsDbContext.SaveChangesAsync();
        }
예제 #2
0
        /// <summary>
        /// Method for fetching the list of week days
        /// </summary>
        /// <returns></returns>
        public List <WeekDaysEnumDetails> GetDaysOfWeek(int instituteId)
        {
            List <WeekDaysEnumDetails> weekDaysEnumDetailsList = new List <WeekDaysEnumDetails>();
            List <WeekDaysEnum>        weekDaysEnumList        = EnumHelperService.GetEnumValuesList <WeekDaysEnum>();

            foreach (WeekDaysEnum weekDay in weekDaysEnumList)
            {
                WeekOff weekOff = _imsDbContext.WeekOffs.FirstOrDefault(x => x.WeekDay == weekDay && x.InstitutionId == instituteId);
                if (weekOff == null)
                {
                    weekDaysEnumDetailsList.Add(new WeekDaysEnumDetails
                    {
                        WeekDaysEnum       = weekDay,
                        WeekDaysEnumString = EnumHelperService.GetDescription(weekDay)
                    });
                }
            }

            return(weekDaysEnumDetailsList);
        }