public void CreateNew_CalledWithValidParams_GeneratesExportDefinitionCreatedEvent()
        {
            var exportDefinitionId = Guid.NewGuid();

            new ConstructorScenarioFor <ExportDefinition>(() => ExportDefinition.CreateNew(exportDefinitionId, "foo"))
            .Then(new ExportDefinitionCreated(exportDefinitionId, "foo"))
            .Assert();
        }
Beispiel #2
0
        public async Task HandleAsync(CreateExportDefinition command)
        {
            var exportDefinition = ExportDefinition.CreateNew(command.ExportDefinitionId, command.Name);

            _repository.Add($@"ed-{exportDefinition.ExportDefinitionId}", exportDefinition);

            foreach (var aggregate in _repository.UnitOfWork.GetChanges())
            {
                var aggregateIdentifier      = aggregate.Identifier;
                var aggregateExpectedVersion = aggregate.ExpectedVersion;
                var changes = aggregate.Root.GetChanges().ToArray();

                _repository.AppendToStream(
                    aggregateIdentifier,
                    aggregateExpectedVersion,
                    changes);
            }
        }
Beispiel #3
0
        public async Task HandleAsync(CreateExportDefinition command)
        {
            var exportDefinition = ExportDefinition.CreateNew(command.ExportDefinitionId, command.Name);

            _repository.Add(exportDefinition.ExportDefinitionId.ToString(), exportDefinition);

            foreach (var aggregate in _repository.UnitOfWork.GetChanges())
            {
                await _repository.EventStore.AppendToStream(
                    $@"definingExports-{aggregate.Identifier}",
                    aggregate.ExpectedVersion,
                    aggregate.Root.GetChanges().Select(
                        @event => new NewStreamMessage(
                            Guid.NewGuid(),
                            @event.GetType().AssemblyQualifiedName,
                            JsonConvert.SerializeObject(@event),
                            JsonConvert.SerializeObject(new { timeStamp = DateTime.Now })))
                    .ToArray())
                .ConfigureAwait(false);
            }
        }