/// <summary> /// Removes the resource. /// </summary> /// <param name="element">The element.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns> public bool RemoveResource(Element element) { Locker.EnterWriteLock(); try { CreateDir(); string filePath = Path.Combine(_path, ResXResourceFileHelper.GetFileName(element.Category, element.Culture)); XDocument document = GetResxDocument(filePath); if (document == null) { return(false); } var newElement = document.Root.Elements("data") .FirstOrDefault(d => d.Attribute("name").Value.EqualsOrNullEmpty(element.Name, StringComparison.OrdinalIgnoreCase)); if (newElement == null) { return(false); } newElement.Remove(); document.Save(filePath); return(true); } finally { Locker.ExitWriteLock(); } }
/// <summary> /// Gets the element. /// </summary> /// <param name="name">The name.</param> /// <param name="category">The category.</param> /// <param name="culture">The culture.</param> /// <returns>Element.</returns> public Element GetElement(string name, string category, string culture) { Locker.EnterReadLock(); try { var filePath = Path.Combine(_path, ResXResourceFileHelper.GetFileName(category, culture)); var document = GetResxDocument(filePath); if (document == null) { return(null); } return(document.Root.Elements("data") .Where(it => it.Attribute("name").Value.EqualsOrNullEmpty(name, StringComparison.OrdinalIgnoreCase)) .Select(it => new Element() { Name = it.Attribute("name").Value, Value = it.Element("value").Value, Category = category, Culture = culture }).FirstOrDefault()); } finally { Locker.ExitReadLock(); } }
/// <summary> /// Adds the resource. /// </summary> /// <param name="element">The element.</param> public void AddResource(Element element) { Locker.EnterWriteLock(); try { CreateDir(); string filePath = Path.Combine(_path, ResXResourceFileHelper.GetFileName(element.Category, element.Culture)); XDocument document = GetResxDocument(filePath); if (document == null) { document = CreateResXDocument(); } var exists = document.Root.Elements("data") .FirstOrDefault(d => d.Attribute("name").Value == element.Name); if (exists == null) { document.Root.Add( new XElement("data", new XAttribute("name", element.Name), new XAttribute(XNamespace.Xml + "space", "preserve"), new XElement("value", element.Value))); document.Save(filePath); } } finally { Locker.ExitWriteLock(); } }
/// <summary> /// Adds the category. /// </summary> /// <param name="category">The category.</param> /// <param name="culture">The culture.</param> public void AddCategory(string category, string culture) { var filePath = Path.Combine(_path, ResXResourceFileHelper.GetFileName(category, culture)); var document = GetResxDocument(filePath) ?? CreateResXDocument(); Locker.EnterWriteLock(); try { document.Save(filePath); } finally { Locker.ExitWriteLock(); } }