public void StartForum(string tenantId, string creatorId, string moderatorId, string subject, string description, Iフォーラムコマンド結果 result = null)
        {
            var forum = StartNewForum(new テナント(tenantId), creatorId, moderatorId, subject, description, null);

            if (result != null)
            {
                result.SetResultingForumId(forum.ForumId.Id);
            }
        }
        public void StartExclusiveForum(string tenantId, string exclusiveOwner, string creatorId, string moderatorId, string subject, string description, Iフォーラムコマンド結果 result = null)
        {
            var tenant = new テナント(tenantId);

            フォーラム forum = null;

            var forumId = this.forumQueryService.GetForumIdByExclusiveOwner(tenantId, exclusiveOwner);
            if (forumId != null)
            {
                forum = this.forumRepository.Get(tenant, new フォーラムId(forumId));
            }

            if (forum == null)
            {
                forum = StartNewForum(tenant, creatorId, moderatorId, subject, description, exclusiveOwner);
            }

            if (result != null)
            {
                result.SetResultingForumId(forum.ForumId.Id);
            }
        }
        public void StartExclusiveForumWithDiscussion(
            string tenantId,
            string exclusiveOwner,
            string creatorId,
            string moderatorId,
            string authorId,
            string forumSubject,
            string forumDescription,
            string discussionSubject,
            Iフォーラムコマンド結果 result = null)
        {
            var tenant = new テナント(tenantId);

            フォーラム forum = null;

            var forumId = this.forumQueryService.GetForumIdByExclusiveOwner(tenantId, exclusiveOwner);
            if (forumId != null)
            {
                forum = this.forumRepository.Get(tenant, new フォーラムId(forumId));
            }

            if (forum == null)
            {
                forum = StartNewForum(tenant, creatorId, moderatorId, forumSubject, forumDescription, exclusiveOwner);
            }

            ディスカッション discussion = null;

            var discussionId = this.discussionQueryService.GetDiscussionIdByExclusiveOwner(tenantId, exclusiveOwner);
            if (discussionId != null)
            {
                discussion = this.discussionRepository.Get(tenant, new ディスカッションId(discussionId));
            }

            if (discussion == null)
            {
                var author = this.collaboratorService.GetAuthorFrom(tenant, authorId);

                discussion = forum.StartDiscussionFor(this.forumIdentityService, author, discussionSubject, exclusiveOwner);

                this.discussionRepository.Save(discussion);
            }

            if (result != null)
            {
                result.SetResultingForumId(forum.ForumId.Id);
                result.SetResultingDiscussionId(discussion.DiscussionId.Id);
            }
        }