public Task Handle(NewProjectCommand command) { var timestamp = DateTimeOffset.UtcNow; var started = new ProjectStarted {Name = command.Name, Timestamp = timestamp}; var tasks = command.Tasks .Select(name => new TaskRecorded {Timestamp = timestamp, Title = name}); _session.Events.StartStream(command.ProjectId, started); _session.Events.Append(command.ProjectId, tasks); return _session.SaveChangesAsync(); }
public Project(ProjectStarted started) { Version = 1; Name = started.Name; StartedTime = started.Timestamp; }