public void CloseDiscussion(string tenantId, string discussionId)
        {
            var discussion = _discussionRepository.Get(new Tenant(tenantId), new DiscussionId(discussionId));

            discussion.Close();

            _discussionRepository.Save(discussion);
        }
        public void StartExclusiveForumWithDiscussion(
            string tenantId,
            string exclusiveOwner,
            string creatorId,
            string moderatorId,
            string authorId,
            string forumSubject,
            string forumDescription,
            string discussionSubject,
            IForumCommandResult result = null)
        {
            var tenant = new Tenant(tenantId);

            Forum forum = null;

            var forumId = _forumQueryService.GetForumIdByExclusiveOwner(tenantId, exclusiveOwner);

            if (forumId != null)
            {
                forum = _forumRepository.Get(tenant, new ForumId(forumId));
            }

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

            Discussion discussion = null;

            var discussionId = _discussionQueryService.GetDiscussionIdByExclusiveOwner(tenantId, exclusiveOwner);

            if (discussionId != null)
            {
                discussion = _discussionRepository.Get(tenant, new DiscussionId(discussionId));
            }

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

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

                _discussionRepository.Save(discussion);
            }

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