public async Task ExecuteOnNew(string aggregateRootType, string command) { if(_aggregateRoot != null) { throw new Exception($"AggregateRoot with id {Id} already exists."); } var aggregateRoot = LoadAggregateRoot(aggregateRootType); aggregateRoot.Handle(Deserialize(command)); await SaveAndDispatchEvents(aggregateRoot); }