Example #1
0
 public void InitiateDiscussion(DiscussionDescriptor descriptor)
 {
     AssertionConcern.AssertArgumentNotNull(descriptor, "The descriptor must not be null.");
     if (Discussion.Availability == DiscussionAvailability.Requested)
     {
         Discussion = Discussion.NowReady(descriptor);
         DomainEventPublisher.Instance.Publish(
             new BacklogItemDiscussionInitiated(TenantId, BacklogItemId, Discussion));
     }
 }
 public ProductDiscussion NowReady(DiscussionDescriptor descriptor)
 {
     if (descriptor == null || descriptor.IsUndefined)
     {
         throw new ArgumentException("The discussion descriptor must be defined.");
     }
     if (Availability != DiscussionAvailability.Requested)
     {
         throw new InvalidOperationException("The discussion must be requested first.");
     }
     return(new ProductDiscussion(descriptor, DiscussionAvailability.Ready));
 }
        public static ProductDiscussion FromAvailability(
            DiscussionAvailability availability)
        {
            if (availability == DiscussionAvailability.Ready)
            {
                throw new InvalidOperationException("Cannot be created ready.");
            }

            var descriptor = new DiscussionDescriptor(DiscussionDescriptor.UndefinedId);

            return(new ProductDiscussion(descriptor, availability));
        }
Example #4
0
        public BacklogItemDiscussion NowReady(DiscussionDescriptor descriptor)
        {
            if (descriptor == null || descriptor.IsUndefined)
            {
                throw new InvalidOperationException("The discussion descriptor must be defined.");
            }

            if (this.Availability != DiscussionAvailability.Requested)
            {
                throw new InvalidOperationException("The discussion must be requested first.");
            }

            return(new BacklogItemDiscussion(descriptor, DiscussionAvailability.Ready));
        }
Example #5
0
        public void InitiateDiscussion(DiscussionDescriptor descriptor)
        {
            if (descriptor == null)
            {
                throw new InvalidOperationException("The descriptor must not be null.");
            }

            if (this.Discussion.Availability == DiscussionAvailability.Requested)
            {
                this.Discussion = this.Discussion.NowReady(descriptor);

                DomainEventPublisher
                .Instance
                .Publish(new ProductDiscussionInitiated(
                             this.TenantId,
                             this.ProductId,
                             this.Discussion));
            }
        }
 public ProductDiscussion(DiscussionDescriptor descriptor, DiscussionAvailability availability)
 {
     AssertionConcern.AssertArgumentNotNull(descriptor, "The descriptor must be provided.");
     Availability = availability;
     Descriptor   = descriptor;
 }
Example #7
0
 public BacklogItemDiscussion(DiscussionDescriptor descriptor, DiscussionAvailability availability)
 {
     this.Descriptor   = descriptor;
     this.Availability = availability;
 }
 public DiscussionDescriptor(DiscussionDescriptor discussionDescriptor)
     : this(discussionDescriptor.Id)
 {
 }
 public DiscussionDescriptor(DiscussionDescriptor discussionDescriptor)
     : this(discussionDescriptor.Id)
 {
 }