public async Task <AddNoticeBoardThreadResponse> AddNoticeBoardThread(AddNoticeBoardThreadRequest request)
        {
            if (request == null)
            {
                throw new InvalidNoticeBoardRequestException("Invalid AddNoticeBoardRequest object");
            }

            if (request.ThreadTitle.IsNullOrEmpty())
            {
                throw new InvalidThreadTitleException("The thread title cannot be null or empty");
            }

            if (request.ThreadContent.IsNullOrEmpty())
            {
                throw new InvalidThreadContentException("The thread content cannot be null or empty");
            }

            if (request.UserId <= 0)
            {
                throw new InvalidUserIdException("UserID is invalid");
            }
            return(await _noticeBoardRepository.AddNoticeBoardThread(request));
        }