public async Task <IActionResult> AddAcademicYearAsync([FromBody] AddInstituteAcademicYearAc newAcademicYearAc) { if (ModelState.IsValid) { ApplicationUser currentUser = await _userManager.FindByEmailAsync(User.Identity.Name); return(Ok(await _instituteAcademicYearManagementRepository.AddAcademicYearAsync(newAcademicYearAc, currentUser))); } else if (string.IsNullOrEmpty(newAcademicYearAc.AcademicYearCode)) { return(Ok(new { Message = "Year Code can not be null or empty", HasError = true })); } else if (string.IsNullOrEmpty(newAcademicYearAc.ChallanStartingNumber)) { return(Ok(new { Message = "Starting Challan number can not be null or empty", HasError = true })); } else { return(Ok(new { Message = "From Date and To Date can not by null or empty", HasError = true })); } }
/// <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" }); } }