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"
                    }));
                }
            }
        }
Exemplo n.º 2
0
        /// <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"
                    });
                }
            }
        }