public async Task <StateMachineBase> ActivateAsync(Guid id, Type stateMachineType) { var model = await _modelRepo.GetAsync(id); if (model != null) { var machine = _resolver.GetService(stateMachineType, model) as StateMachineBase; return(machine); } var newMachine = _resolver.GetService(stateMachineType) as StateMachineBase; var newModel = newMachine.GetDto(); newModel.Id = id; await _modelRepo.AddOrUpdateAsync(newModel); return(newMachine); }