Пример #1
0
        public void RaiseAll(IDomainEventRaiser domainEventRaiser)
        {
            if (_isDisposed)
            {
                return;
            }

            Dispose();

            foreach (var domainEvent in _domainEvents)
            {
                domainEventRaiser.Raise(domainEvent);
            }
        }
Пример #2
0
        public SalesOrder(IDomainEventRaiser observer, CustomerId customer, RefWarehouseId warehouse)
        {
            _observer = observer;

            if (customer == null)
            {
                throw new Exception("Customer id cannot be null");
            }
            if (warehouse == null)
            {
                throw new Exception("Warehouse id cannot be null");
            }

            Id         = new SalesOrderId(Guid.NewGuid());
            Customer   = customer;
            _warehouse = warehouse;

            Status = Status.CreateOpened();
            Lines  = new Lines(Id, ref _status);
        }
Пример #3
0
 protected override SalesOrder ReinstantiateAggregate(SalesOrderState state, IDomainEventRaiser observer)
 {
     return(new SalesOrder(observer, state));
 }
Пример #4
0
 protected abstract TAggregate ReinstantiateAggregate(TState state, IDomainEventRaiser observer);
 protected DomainEventRaisingCommitableTemplate(IDomainEventRaiser domainEventRaiser)
 {
     _domainEventRaiser = domainEventRaiser;
     _domainEventScope  = DomainEventScope.Start();
 }
Пример #6
0
 public SalesOrder(IDomainEventRaiser observer, SalesOrderState state)
 {
     _observer = observer;
     _state    = state;
 }
 /// <summary>
 /// Sets the raiser to be used as current domain event raiser.
 /// </summary>
 /// <param name="raiser">The raiser.</param>
 /// <exception cref="System.ArgumentNullException">raiser;Argument cannot be null</exception>
 public static void SetRaiser(IDomainEventRaiser raiser)
 {
     Instance.InnerCurrent = raiser ?? throw new ArgumentNullException(nameof(raiser), "Argument cannot be null");
 }