public Product( TenantId tenantId, ProductId productId, ProductOwnerId productOwnerId, string name, string description, DiscussionAvailability discussionAvailability) { this.TenantId = tenantId; // must precede productOwnerId for compare this.Description = description; this.Discussion = ProductDiscussion.FromAvailability(discussionAvailability); this.DiscussionInitiationId = null; this.Name = name; this.ProductId = productId; this.ProductOwnerId = productOwnerId; // TODO: validation currently missing DomainEventPublisher .Instance .Publish(new ProductCreated( this.TenantId, this.ProductId, this.ProductOwnerId, this.Name, this.Description, this.Discussion.Availability)); }
public ProductDiscussionRequested( TenantId tenantId, ProductId productId, ProductOwnerId productOwnerId, string name, string description, bool requestingDiscussion) { this.Description = description; this.EventVersion = 1; this.Name = name; this.OccurredOn = DateTime.Now; this.ProductId = productId; this.ProductOwnerId = productOwnerId; this.RequestingDiscussion = requestingDiscussion; this.TenantId = tenantId; }
public ProductCreated( TenantId tenantId, ProductId productId, ProductOwnerId productOwnerId, string name, string description, DiscussionAvailability 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; }