public async Task <RemoteSettingsProviderResult <T> > TryGetValueAsync <T>(string collectionPath, string key)
        {
            string setting = collectionPath + " $" + key;

            foreach (SplitKey possibleKey in GetPossibleRemoteSettingKeys(collectionPath, key))
            {
                if (possibleKey.RemoteSettingName == key)
                {
                    bool flag = possibleKey.IsScoped;
                    if (flag)
                    {
                        flag = !(await EvaluateScopedSettingAsync(new LoggingContext <string>(setting, possibleKey.ScopeString)).ConfigureAwait(false));
                    }
                    if (!flag)
                    {
                        T    value;
                        bool retrievalSuccessful = remoteSettingsStorage.TryGetValue(possibleKey.StorageCollectionPath, possibleKey.StorageKey, out value);
                        return(new RemoteSettingsProviderResult <T>
                        {
                            RetrievalSuccessful = retrievalSuccessful,
                            Value = value
                        });
                    }
                }
            }
            return(null);
        }