예제 #1
0
        /// <summary>
        /// Method to add institute class - SS
        /// </summary>
        /// <param name="addInstituteClass">class detail</param>
        /// <param name="instituteId">institute id</param>
        /// <returns>message</returns>
        public async Task <InstituteClassResponse> AddInstituteClassAsync(AddInstituteClassManagementAc addInstituteClass, int instituteId)
        {
            if (!await _iMSDbContext.InstituteClasses.AnyAsync(x => x.InstituteId == instituteId &&
                                                               x.GroupCode.ToLowerInvariant() == addInstituteClass.GroupCode.ToLowerInvariant()))
            {
                if (!await _iMSDbContext.StaffBasicPersonalInformation.AnyAsync(x => x.Id == addInstituteClass.ClassTeacherId &&
                                                                                x.InstituteId == instituteId))
                {
                    return new InstituteClassResponse()
                           {
                               HasError = true, Message = "Staff teacher not found", ErrorType = InstituteClassResponseType.ClassTeacherId
                           }
                }
                ;
                else
                {
                    var instituteClass = new InstituteClass()
                    {
                        ClassOrder       = addInstituteClass.ClassOrder,
                        CreatedOn        = DateTime.UtcNow,
                        Duration         = addInstituteClass.Duration,
                        DurationUnit     = addInstituteClass.DurationUnit,
                        GroupCode        = addInstituteClass.GroupCode,
                        InstituteId      = instituteId,
                        IsGroup          = addInstituteClass.IsGroup,
                        Name             = addInstituteClass.Name,
                        NumberOfFeeTerms = addInstituteClass.NumberOfFeeTerms,
                        ClassTeacherId   = addInstituteClass.ClassTeacherId
                    };

                    _iMSDbContext.InstituteClasses.Add(instituteClass);
                    await _iMSDbContext.SaveChangesAsync();

                    return(new InstituteClassResponse()
                    {
                        HasError = false, Message = "Class added successfully"
                    });
                }
            }
            else
            {
                return new InstituteClassResponse()
                       {
                           HasError = true, Message = "Group code already exist", ErrorType = InstituteClassResponseType.GroupCode
                       }
            };
        }
        public async Task <IActionResult> AddInstituteClassAsync([FromBody] AddInstituteClassManagementAc addInstituteClassManagement)
        {
            if (string.IsNullOrEmpty(addInstituteClassManagement.Name.Trim()))
            {
                return(Ok(new InstituteClassResponse {
                    ErrorType = InstituteClassResponseType.Name, HasError = true, Message = "Class name can't be null or empty"
                }));
            }
            else if (string.IsNullOrEmpty(addInstituteClassManagement.GroupCode.Trim()))
            {
                return(Ok(new InstituteClassResponse {
                    ErrorType = InstituteClassResponseType.GroupCode, HasError = true, Message = "Group code name can't be null or empty"
                }));
            }
            else if (addInstituteClassManagement.Duration < 0)
            {
                return(Ok(new InstituteClassResponse {
                    ErrorType = InstituteClassResponseType.Duration, HasError = true, Message = "Duration value must be greater then zero"
                }));
            }
            else if (addInstituteClassManagement.ClassOrder < 0)
            {
                return(Ok(new InstituteClassResponse {
                    ErrorType = InstituteClassResponseType.ClassOrder, HasError = true, Message = "Class order value must be greater then zero"
                }));
            }
            else if (addInstituteClassManagement.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();

                return(Ok(await _instituteClassManagementRepository.AddInstituteClassAsync(addInstituteClassManagement, loggedInUserInstituteId)));
            }
        }