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)); }
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)); }
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; }
public BacklogItemDiscussion(DiscussionDescriptor descriptor, DiscussionAvailability availability) { this.Descriptor = descriptor; this.Availability = availability; }
public DiscussionDescriptor(DiscussionDescriptor discussionDescriptor) : this(discussionDescriptor.Id) { }