public async Task <Dictionary <string, KeyValuePair <int, string> > > GetAllResourceValuesAsync(int languageId)
        {
            var key = string.Format(LocalizationDefaults.LocaleStringResourcesAllCacheKey, languageId);

            var result = await _memoryCache.GetOrCreateAsync(key, async entry =>
            {
                entry.SetOptions(PrepareEntryOptions());
                var resources = (await _repository.GetResourcesByLanguageIdAsync(languageId)).ToList();
                Dictionary <string, KeyValuePair <int, string> > dictionary = new Dictionary <string, KeyValuePair <int, string> >();
                resources.ForEach(x =>
                {
                    if (!dictionary.ContainsKey(x.ResourceName))
                    {
                        dictionary.Add(x.ResourceName, new KeyValuePair <int, string>(x.Id, x.ResourceValue));
                    }
                });
                return(dictionary);
            });

            return(result);
        }