public TokenMetadata GetMetadata(string token) { var metadata = _cache.GetMetadata(token); if (metadata != null) { metadata.LastAccess = DateTime.Now; _storage.UpdateLastAccess(token, DateTime.Now); _tokenMetadataCacheStrategy.Cache(metadata); return(metadata); } metadata = _storage.GetMetadata(token); if (metadata != null) { metadata.LastAccess = DateTime.Now; _storage.UpdateLastAccess(token, DateTime.Now); _cache.Add(token, metadata); _tokenMetadataCacheStrategy.Cache(metadata); return(metadata); } return(null); }