public プロダクトディスカッション NowReady(ディスカッション記述子 descriptor)
 {
     if (descriptor == null || descriptor.IsUndefined)
         throw new ArgumentException("The discussion descriptor must be defined.");
     if (this.Availability != ディスカッションアベイラビリティ.Requested)
         throw new InvalidOperationException("The discussion must be requested first.");
     return new プロダクトディスカッション(descriptor, ディスカッションアベイラビリティ.Ready);
 }
        public static プロダクトディスカッション FromAvailability(
                ディスカッションアベイラビリティ availability)
        {
            if (availability == ディスカッションアベイラビリティ.Ready)
                throw new InvalidOperationException("Cannot be created ready.");

            var descriptor = new ディスカッション記述子(ディスカッション記述子.UNDEFINED_ID);

            return new プロダクトディスカッション(descriptor, availability);
        }
 public void InitiateDiscussion(ディスカッション記述子 descriptor)
 {
     AssertionConcern.AssertArgumentNotNull(descriptor, "The descriptor must not be null.");
     if (this.Discussion.Availability == ディスカッションアベイラビリティ.Requested)
     {
         this.Discussion = this.Discussion.NowReady(descriptor);
         DomainEventPublisher.Instance.Publish(
             new バックログアイテムディスカッション初期化時(this.TenantId, this.BacklogItemId, this.Discussion));
     }
 }
 public バックログアイテムディスカッション(ディスカッション記述子 descriptor, ディスカッションアベイラビリティ availability)
 {
     this.Descriptor = descriptor;
     this.Availability = availability;
 }
 public プロダクトディスカッション(ディスカッション記述子 descriptor, ディスカッションアベイラビリティ availability)
 {
     AssertionConcern.AssertArgumentNotNull(descriptor, "The descriptor must be provided.");
     this.Availability = availability;
     this.Descriptor = descriptor;
 }