示例#1
0
 public IEnumerable <string> GetOverriddenLanguages()
 {
     return
         (ResourcesForSite.SelectMany(x => x.Value)
          .Select(resource => resource.UICulture)
          .Distinct()
          .Where(s => !string.IsNullOrWhiteSpace(s)));
 }
示例#2
0
        public IEnumerable <string> GetOverriddenLanguages(string key, Site site)
        {
            if (ResourcesForSite.ContainsKey(key))
            {
                HashSet <StringResource> stringResources = ResourcesForSite[key];
                stringResources = site == null
                    ? stringResources.FindAll(resource => resource.Site == null)
                    : stringResources.FindAll(resource => resource.Site != null && resource.Site.Id == site.Id);

                return(stringResources
                       .Select(resource => resource.UICulture)
                       .Where(s => !string.IsNullOrWhiteSpace(s)));
            }
            return(new HashSet <string>());
        }
示例#3
0
        public string GetValue(string key, string defaultValue = null)
        {
            using (MiniProfiler.Current.Step(string.Format("Getting resource - {0}", key)))
            {
                lock (LockObject)
                {
                    string currentUserCulture;
                    using (MiniProfiler.Current.Step("culture check"))
                    {
                        currentUserCulture = _getCurrentUserCultureInfo.GetInfoString();
                    }

                    if (ResourcesForSite.ContainsKey(key))
                    {
                        HashSet <StringResource> resources = ResourcesForSite[key];
                        using (MiniProfiler.Current.Step("Check for language"))
                        {
                            StringResource languageValue =
                                resources.FirstOrDefault(
                                    resource => resource.UICulture == currentUserCulture);
                            if (languageValue != null)
                            {
                                return(languageValue.Value);
                            }
                        }
                        using (MiniProfiler.Current.Step("Check for default"))
                        {
                            StringResource existingDefault =
                                resources.FirstOrDefault(resource => resource.UICulture == null);
                            if (existingDefault != null)
                            {
                                return(existingDefault.Value);
                            }
                        }
                    }
                    using (MiniProfiler.Current.Step("default resource"))
                    {
                        var defaultResource = new StringResource {
                            Key = key, Value = defaultValue ?? key
                        };
                        _session.Transact(session => session.Save(defaultResource));
                        //AllResources[key] = new HashSet<StringResource> {defaultResource};
                        ResetResourceCache();
                        return(defaultResource.Value);
                    }
                }
            }
        }