public static バックログアイテムディスカッション FromAvailability(ディスカッションアベイラビリティ availability)
        {
            if (availability == ディスカッションアベイラビリティ.Ready)
                throw new ArgumentException("Cannot be created ready.");

            return new バックログアイテムディスカッション(
                new ディスカッション記述子(ディスカッション記述子.UNDEFINED_ID),
                availability);
        }
        public static プロダクトディスカッション FromAvailability(
                ディスカッションアベイラビリティ availability)
        {
            if (availability == ディスカッションアベイラビリティ.Ready)
                throw new InvalidOperationException("Cannot be created ready.");

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

            return new プロダクトディスカッション(descriptor, availability);
        }
 public プロダクト作成時(
     テナントId tenantId,
     プロダクトId productId,
     プロダクトオーナId productOwnerId,
     string name,
     string description,
     ディスカッションアベイラビリティ availability)
 {
     this.Availability = availability;
     this.Description = description;
     this.EventVersion = 1;
     this.Name = name;
     this.OccurredOn = DateTime.Now;
     this.ProductId = productId;
     this.ProductOwnerId = productOwnerId;
     this.TenantId = tenantId;
 }
        public void RequestDiscussion(ディスカッションアベイラビリティ availability)
        {
            if (this.Discussion.Availability != ディスカッションアベイラビリティ.Ready)
            {
                this.Discussion = バックログアイテムディスカッション.FromAvailability(availability);

                DomainEventPublisher.Instance.Publish(
                    new バックログアイテムディスカッションリクエスト時(
                        this.TenantId,
                        this.ProductId,
                        this.BacklogItemId,
                        availability == ディスカッションアベイラビリティ.Requested));

            }
        }
 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;
 }