/// <summary>
        /// Method to add institute subject - SS
        /// </summary>
        /// <param name="addInstituteSubject">subject detail</param>
        /// <param name="instituteId">institute id</param>
        /// <returns>message</returns>
        public async Task <InstituteSubjectResponse> AddInstituteSubjectAsync(AddInstituteSubjectManagementAc addInstituteSubject, int instituteId)
        {
            if (!await _iMSDbContext.InstituteSubjects.AnyAsync(x => x.InstituteId == instituteId &&
                                                                x.Code.ToLowerInvariant() == addInstituteSubject.Code.ToLowerInvariant()))
            {
                var instituteSubject = new InstituteSubject()
                {
                    CreatedOn   = DateTime.UtcNow,
                    Code        = addInstituteSubject.Code,
                    InstituteId = instituteId,
                    IsGroup     = addInstituteSubject.IsGroup,
                    Name        = addInstituteSubject.Name,
                    Description = addInstituteSubject.Description
                };
                _iMSDbContext.InstituteSubjects.Add(instituteSubject);
                await _iMSDbContext.SaveChangesAsync();

                return(new InstituteSubjectResponse()
                {
                    HasError = false, Message = "Subject added successfully"
                });
            }
            else
            {
                return new InstituteSubjectResponse()
                       {
                           HasError = true, Message = "Subject code already exist", ErrorType = InstituteSubjectResponseType.Code
                       }
            };
        }
        public async Task <IActionResult> AddInstituteSubjectAsync([FromBody] AddInstituteSubjectManagementAc addInstituteSubjectManagement)
        {
            if (string.IsNullOrEmpty(addInstituteSubjectManagement.Name.Trim()))
            {
                return(Ok(new InstituteSubjectResponse {
                    ErrorType = InstituteSubjectResponseType.Name, HasError = true, Message = "Subject name can't be null or empty"
                }));
            }
            else if (string.IsNullOrEmpty(addInstituteSubjectManagement.Code.Trim()))
            {
                return(Ok(new InstituteSubjectResponse {
                    ErrorType = InstituteSubjectResponseType.Code, HasError = true, Message = "Subject code name can't be null or empty"
                }));
            }
            else
            {
                var loggedInUserInstituteId = await GetUserCurrentSelectedInstituteIdAsync();

                return(Ok(await _instituteSubjectManagementRepository.AddInstituteSubjectAsync(addInstituteSubjectManagement, loggedInUserInstituteId)));
            }
        }