public async Task <T> Run <T>( ICompiledQuery <T> query, Dictionary <string, object> variables = null, bool refresh = false, TimeSpan?cacheDuration = null, string regionName = null, CancellationToken cancellationToken = default) { if (!query.IsMutation) { var wrapper = new CachingWrapper( this, refresh, cacheDuration ?? DefaultCacheDuration, GetFullRegionName(regionName)); return(await wrapper.Run(query, variables, cancellationToken)); } else { return(await connection.Run(query, variables, cancellationToken)); } }