public async Task <IActionResult> GetOccuranceTypesListAsync(int academicYearId)
        {
            List <HolidayOccuranceTypeEnumDetailsListAc> holidayOccuranceTypeEnumDetailsList = _instituteHolidayManagementRepository.GetOccuranceTypesList();
            InstituteAcademicYear academicYear = await _imsDbContext.InstituteAcademicYears.FirstOrDefaultAsync(x => x.Id == academicYearId);

            return(Ok(new { OccuranceTypesList = holidayOccuranceTypeEnumDetailsList, AcademicYear = academicYear }));
        }
        public async Task <IActionResult> GetHolidayDetailsByIdAsync(int holidayId)
        {
            ApplicationUser currentUser = await _userManager.FindByEmailAsync(User.Identity.Name);

            AddHolidayAc holidayAc = await _instituteHolidayManagementRepository.GetHolidayDetailsByIdAsync(holidayId, currentUser);

            List <HolidayOccuranceTypeEnumDetailsListAc> occuranceTypesList = _instituteHolidayManagementRepository.GetOccuranceTypesList();
            InstituteAcademicYear academicYear = await _imsDbContext.InstituteAcademicYears.FirstOrDefaultAsync(x => x.Id == holidayAc.AcademicYearId);

            return(Ok(new { Holiday = holidayAc, OccuranceTypesList = occuranceTypesList, AcademicYear = academicYear }));
        }
Esempio n. 3
0
        public async Task <IActionResult> GetAcademicYearByIdAsync(int id)
        {
            ApplicationUser currentUser = await _userManager.FindByEmailAsync(User.Identity.Name);

            InstituteAcademicYear instituteAcademicYear = await _instituteAcademicYearManagementRepository.GetAcademicYearByIdAsync(id, currentUser);

            if (instituteAcademicYear == null)
            {
                return(Ok(new { Message = "No academic year found with this id", HasError = true }));
            }

            return(Ok(instituteAcademicYear));
        }
        /// <summary>
        /// Method for adding new academic year
        /// </summary>
        /// <param name="newAcademicYearAc"></param>
        /// <param name="currentUser"></param>
        /// <returns></returns>
        public async Task <dynamic> AddAcademicYearAsync(AddInstituteAcademicYearAc newAcademicYearAc, ApplicationUser currentUser)
        {
            int currentUserInstituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(currentUser.Id, true);

            InstituteAcademicYear existingAcademicYear = await _imsDbContext.InstituteAcademicYears.FirstOrDefaultAsync(x => x.FromDate == newAcademicYearAc.FromDate &&
                                                                                                                        x.ToDate == newAcademicYearAc.ToDate && x.InstituteId == currentUserInstituteId);

            if (existingAcademicYear != null)
            {
                return(new { Message = "Academic year already exist within the same date range", HasError = true });
            }
            else if (await _imsDbContext.InstituteAcademicYears.AnyAsync(x => x.AcademicYearCode.ToLowerInvariant().Equals(newAcademicYearAc.AcademicYearCode.ToLowerInvariant()) &&
                                                                         x.InstituteId == currentUserInstituteId))
            {
                return(new { Message = "Academic year code already exist", HasError = true });
            }
            else if (newAcademicYearAc.IsActive && await _imsDbContext.InstituteAcademicYears.AnyAsync(x => x.IsActive && x.InstituteId == currentUserInstituteId))
            {
                return(new { Message = "Another academic year is already active", HasError = true });
            }

            // Add new academic year
            InstituteAcademicYear newAcademicYear = new InstituteAcademicYear
            {
                AcademicYearCode      = newAcademicYearAc.AcademicYearCode,
                ChallanStartingNumber = newAcademicYearAc.ChallanStartingNumber,
                FromDate    = newAcademicYearAc.FromDate,
                ToDate      = newAcademicYearAc.ToDate,
                IsActive    = newAcademicYearAc.IsActive,
                CreatedBy   = currentUser.Id,
                CreatedOn   = DateTime.UtcNow,
                InstituteId = currentUserInstituteId
            };

            _imsDbContext.InstituteAcademicYears.Add(newAcademicYear);
            await _imsDbContext.SaveChangesAsync();

            return(new { Message = "Academic year added successfully" });
        }
        /// <summary>
        /// Method for updating an academic year
        /// </summary>
        /// <param name="id"></param>
        /// <param name="updatedAcademicYearAc"></param>
        /// <returns></returns>
        public async Task <dynamic> UpdateAcademicYearAsync(int id, AddInstituteAcademicYearAc updatedAcademicYearAc, ApplicationUser currentUser)
        {
            int currentUserInstituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(currentUser.Id, true);

            InstituteAcademicYear academicYear = await _imsDbContext.InstituteAcademicYears.FirstOrDefaultAsync(x => x.Id == id && x.InstituteId == currentUserInstituteId);

            if (academicYear == null)
            {
                return(new { Message = "No academic year exists with this id", HasError = true });
            }
            else if (await _imsDbContext.InstituteAcademicYears.AnyAsync(x => x.Id != id && x.FromDate == updatedAcademicYearAc.FromDate &&
                                                                         x.ToDate == updatedAcademicYearAc.ToDate && x.InstituteId == currentUserInstituteId))
            {
                return(new { Message = "Academic year already exist within the same date range", HasError = true });
            }
            else if (await _imsDbContext.InstituteAcademicYears.AnyAsync(x => x.Id != id &&
                                                                         x.AcademicYearCode.ToLowerInvariant().Equals(updatedAcademicYearAc.AcademicYearCode.ToLowerInvariant()) && x.InstituteId == currentUserInstituteId))
            {
                return(new { Message = "Academic year code already exist", HasError = true });
            }
            else if (updatedAcademicYearAc.IsActive && await _imsDbContext.InstituteAcademicYears.AnyAsync(x => x.Id != id && x.IsActive && x.InstituteId == currentUserInstituteId))
            {
                return(new { Message = "Another academic year is already active", HasError = true });
            }
            else
            {
                academicYear.AcademicYearCode      = updatedAcademicYearAc.AcademicYearCode;
                academicYear.ChallanStartingNumber = updatedAcademicYearAc.ChallanStartingNumber;
                academicYear.IsActive  = updatedAcademicYearAc.IsActive;
                academicYear.FromDate  = updatedAcademicYearAc.FromDate;
                academicYear.ToDate    = updatedAcademicYearAc.ToDate;
                academicYear.UpdatedBy = currentUser.Id;
                academicYear.UpdatedOn = DateTime.UtcNow;
                _imsDbContext.InstituteAcademicYears.Update(academicYear);
                await _imsDbContext.SaveChangesAsync();

                return(new { Message = "Academic year updated successfully" });
            }
        }