public void Execute(CreateCustomerCommand command) { if (command == null) { throw new ArgumentNullException(nameof(command)); } var aggregate = new Domain.CustomerDomainModel(); aggregate.CreateNewCustomer( command.Id, command.Person.FirstName, command.Person.LastName, command.Person.IdCard, command.Person.IdNumber, command.Person.Dob, command.Contact.Email, command.Contact.PhoneNumber, command.Address.Street, command.Address.Zip, command.Address.Hausnumber, command.Address.City, command.Address.State); aggregate.Version = 0; this.Repository.Save(aggregate, aggregate.Version); }
private Domain.CustomerDomainModel RehydrateDomainModel(Guid aggregateId) { var obj = new Domain.CustomerDomainModel(); int version = 0; var latestSnapshot = this._eventStore.Advanced.GetSnapshot(aggregateId, int.MaxValue); if (latestSnapshot?.Payload != null) { obj = (Domain.CustomerDomainModel)Convert.ChangeType(latestSnapshot.Payload, latestSnapshot.Payload.GetType()); version = latestSnapshot.StreamRevision + 1; } IEnumerable <Commit> commits = this._eventStore.Advanced.GetFrom(aggregateId, 0, int.MaxValue).ToList(); foreach (var c in commits) { obj.LoadsFromHistory(c.Events); } return(obj); }
private Domain.CustomerDomainModel RehydrateDomainModel(Guid aggregateId) { var obj = new Domain.CustomerDomainModel(); IEnumerable<Commit> commits; var latestSnapshot = this._eventStore.Advanced.GetSnapshot(aggregateId, int.MaxValue); if (latestSnapshot?.Payload != null) { obj = (Domain.CustomerDomainModel)Convert.ChangeType(latestSnapshot.Payload, latestSnapshot.Payload.GetType()); commits = this._eventStore.Advanced.GetFrom(aggregateId, latestSnapshot.StreamRevision + 1, int.MaxValue).ToList(); } else { commits = this._eventStore.Advanced.GetFrom(aggregateId, 0, int.MaxValue).ToList(); } foreach (var c in commits) { obj.LoadsFromHistory(c.Events); } return obj; }