public async Task <CacheItem> ExecuteAsync(CacheItem relatedItem) { if (_accountRecoveryHandler == null) { throw new InternalLogicException("Missing Recovery feature"); } // Recover access var recoverResult = await _accountRecoveryHandler.RecoverAsync(relatedItem.Payload); return(await _cacheItemRepository.UpdateAsync(relatedItem.Context, item => { item.DID = recoverResult.DID; })); }