public async Task <Option <IResponse> > GetResponseAsync([NotNull] IRequest request, CancellationToken token = default) { if (request is null) { return(Option.None <IResponse>()); } var response = await _cache.GetOrCreateAsync(request.CacheKey, () => { return(_graphQLService.SendQueryAsync <IResponse>(request, token)); }); if (response.Errors?.Any() == true) { return(Option.None <IResponse>()); } return(response.Data.SomeNotNull()); }