public void Handle(CreateMyThing command) { MyThing t = new MyThing(command.AggregateId, command.Title); _repo.SaveAggregate(t); var a = 1; }
public TAggregate ExecuteCommand <TAggregate>(ICommand command) where TAggregate : IAggregate, new() { var commandType = command.GetType(); if (!_commandHandlers.ContainsKey(commandType)) { throw new ApplicationException($"Missing handler for command {commandType.Name} on aggregate {typeof(TAggregate)}"); } IAggregate aggregate = _aggregateRepository.GetAggregateById <TAggregate>(command.AggregateId); aggregate = (_commandHandlers[commandType] as Func <IAggregate, ICommand, IAggregate>)(aggregate, command); foreach (var evt in aggregate.UncommittedEvents) { evt.Metadata.CausationId = command.Metadata.CommandId; evt.Metadata.CorrelationId = command.Metadata.CorrelationId; evt.Metadata.ProcessId = command.Metadata.ProcessId; } _aggregateRepository.SaveAggregate((TAggregate)aggregate); return((TAggregate)aggregate); }