public async Task <IActionResult> UpdateInstituteClassAsync([FromBody] UpdateInstituteClassManagementAc updateInstituteClassManagement) { if (string.IsNullOrEmpty(updateInstituteClassManagement.Name.Trim())) { return(Ok(new InstituteClassResponse { ErrorType = InstituteClassResponseType.Name, HasError = true, Message = "Class name can't be null or empty" })); } else if (string.IsNullOrEmpty(updateInstituteClassManagement.GroupCode.Trim())) { return(Ok(new InstituteClassResponse { ErrorType = InstituteClassResponseType.GroupCode, HasError = true, Message = "Group code name can't be null or empty" })); } else if (updateInstituteClassManagement.Duration < 0) { return(Ok(new InstituteClassResponse { ErrorType = InstituteClassResponseType.Duration, HasError = true, Message = "Duration value must be greater then zero" })); } else if (updateInstituteClassManagement.ClassOrder < 0) { return(Ok(new InstituteClassResponse { ErrorType = InstituteClassResponseType.ClassOrder, HasError = true, Message = "Class order value must be greater then zero" })); } else if (updateInstituteClassManagement.NumberOfFeeTerms < 0) { return(Ok(new InstituteClassResponse { ErrorType = InstituteClassResponseType.NumberOfFeeTerms, HasError = true, Message = "Number of fee terms value must be greater then zero" })); } else { var loggedInUserInstituteId = await GetUserCurrentSelectedInstituteIdAsync(); if (await _iMSDbContext.InstituteClasses.AnyAsync(x => x.Id == updateInstituteClassManagement.Id && x.InstituteId == loggedInUserInstituteId)) { return(Ok(await _instituteClassManagementRepository.UpdateInstituteClassAsync(updateInstituteClassManagement, loggedInUserInstituteId))); } else { return(Ok(new InstituteClassResponse { ErrorType = InstituteClassResponseType.Other, HasError = true, Message = "Class not found" })); } } }
/// <summary> /// Method to update class - SS /// </summary> /// <param name="updateInstituteClass">class detail</param> /// <param name="instituteId">institute id</param> /// <returns>message</returns> public async Task <InstituteClassResponse> UpdateInstituteClassAsync(UpdateInstituteClassManagementAc updateInstituteClass, int instituteId) { var classes = await _iMSDbContext.InstituteClasses.Where(x => x.InstituteId == instituteId && x.Id != updateInstituteClass.Id).ToListAsync(); var isDuplicate = classes.Any(x => x.GroupCode.ToLowerInvariant() == updateInstituteClass.GroupCode.ToLowerInvariant()); if (isDuplicate) { return new InstituteClassResponse() { HasError = true, Message = "Duplicate group code. Please use unique group code", ErrorType = InstituteClassResponseType.GroupCode } } ; else { if (!await _iMSDbContext.StaffBasicPersonalInformation.AnyAsync(x => x.Id == updateInstituteClass.ClassTeacherId && x.InstituteId == instituteId)) { return new InstituteClassResponse() { HasError = true, Message = "Staff teacher not found", ErrorType = InstituteClassResponseType.ClassTeacherId } } ; else { var instituteClass = await _iMSDbContext.InstituteClasses.FirstAsync(x => x.Id == updateInstituteClass.Id); instituteClass.ClassOrder = updateInstituteClass.ClassOrder; instituteClass.Duration = updateInstituteClass.Duration; instituteClass.DurationUnit = updateInstituteClass.DurationUnit; instituteClass.GroupCode = updateInstituteClass.GroupCode; instituteClass.IsGroup = updateInstituteClass.IsGroup; instituteClass.Name = updateInstituteClass.Name; instituteClass.NumberOfFeeTerms = updateInstituteClass.NumberOfFeeTerms; instituteClass.ClassTeacherId = updateInstituteClass.ClassTeacherId; _iMSDbContext.InstituteClasses.Update(instituteClass); await _iMSDbContext.SaveChangesAsync(); return(new InstituteClassResponse() { HasError = false, Message = "Class updated successfully" }); } } }