public Task <Unit> Handle(PlaceConduitClosureCommand request, CancellationToken cancellationToken) { // Check if aggregate id has been used if (repo.CheckIfAggregateIdHasBeenUsed(request.ConduitClosureId)) { throw new ArgumentException("The uuid: " + request.ConduitClosureId + " has allready been used. This is an event sourced system, so you're not allowed to reuse object uuids."); } var conduitClosure = new ConduitClosure(request.ConduitClosureId, request.PointOfInterestId, routeNetworkQueryService, conduitNetworkQueryService, conduitClosureRepository); repo.Store(conduitClosure); return(Unit.Task); }