Beispiel #1
0
 /// <summary>
 /// Gets the cultures.
 /// </summary>
 /// <returns></returns>
 public IEnumerable <CultureInfo> GetCultures()
 {
     if (Directory.Exists(path))
     {
         string[] files = Directory.GetFiles(path);
         foreach (var file in files)
         {
             string culture;
             string category;
             ResXResourceFileHelper.Parse(file, out culture, out category);
             if (!string.IsNullOrEmpty(culture))
             {
                 yield return(new CultureInfo(culture));
             }
         }
     }
 }
Beispiel #2
0
        /// <summary>
        /// Gets the categories.
        /// </summary>
        /// <returns></returns>
        public IEnumerable <ElementCategory> GetCategories()
        {
            if (Directory.Exists(path))
            {
                string[] files = Directory.GetFiles(path);
                foreach (var file in files)
                {
                    string culture;
                    string category;
                    ResXResourceFileHelper.Parse(file, out culture, out category);

                    if (!string.IsNullOrEmpty(category))
                    {
                        yield return(new ElementCategory()
                        {
                            Category = category, Culture = culture
                        });
                    }
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// Gets the elements.
        /// </summary>
        /// <returns></returns>
        public IQueryable <Element> GetElements()
        {
            locker.EnterReadLock();
            try
            {
                IEnumerable <Element> elements = Enumerable.Empty <Element>();
                if (Directory.Exists(path))
                {
                    string[] files = Directory.GetFiles(path);

                    for (int i = 0; i < files.Length; i++)
                    {
                        string fileName = files[i];
                        if (fileName.EndsWith(".resx"))
                        {
                            XDocument doc = XDocument.Load(files[i]);
                            string    culture;
                            string    category;
                            ResXResourceFileHelper.Parse(fileName, out culture, out category);

                            IEnumerable <Element> newElements = doc.Root.Elements("data")
                                                                .Select(x => new Element()
                            {
                                Category = category,
                                Culture  = culture,
                                Name     = x.Attribute("name").Value,
                                Value    = x.Element("value").Value
                            });

                            elements = elements.Union(newElements);
                        }
                    }
                }
                return(elements.AsQueryable <Element>());
            }
            finally
            {
                locker.ExitReadLock();
            }
        }
Beispiel #4
0
 /// <summary>
 /// Removes the category.
 /// </summary>
 /// <param name="category">The category.</param>
 /// <param name="culture">The culture.</param>
 /// <returns></returns>
 public bool RemoveCategory(string category, string culture)
 {
     locker.EnterWriteLock();
     try
     {
         string[] files = Directory.GetFiles(path);
         foreach (var file in files)
         {
             string culture1;
             string category1;
             ResXResourceFileHelper.Parse(file, out culture1, out category1);
             if (category.EqualsOrNullEmpty(category1, StringComparison.CurrentCultureIgnoreCase) && culture1.EqualsOrNullEmpty(culture, StringComparison.CurrentCultureIgnoreCase))
             {
                 File.Delete(file);
             }
         }
         return(true);
     }
     finally
     {
         locker.ExitWriteLock();
     }
 }