Ejemplo n.º 1
0
        protected virtual IReadOnlyList <string> GetValuesCache(string userField, string lang)
        {
            var spellcheckerField = _adapter.GetSpellcheckerFieldIn(userField, lang);
            IReadOnlyList <string> values;

            lock (_valuesCache)
                if (_valuesCache.TryGetValue(spellcheckerField, out values))
                {
                    return(values);
                }

            values = _adapter.IsStoredInSpellchecker(userField, lang)
                                ? Spellchecker?.ReadAllValuesFrom(discriminant: spellcheckerField)
                                : _reader?.Invoke(readAllValuesFrom, spellcheckerField);

            if (values == null)
            {
                return(ReadOnlyList.Empty <string>());
            }

            lock (_valuesCache)
                _valuesCache[spellcheckerField] = values;

            return(values);
        }