public void Merge(ResourceList resourceListToAbsorb) { foreach (var resource in resourceListToAbsorb) { if (this.All(x => x.Key != resource.Key)) { this.Add(new Resource(resource)); } } }
public static ResourceList ParseAllResourceFiles(IFileSystem fileSystem, string path, ResourceFilter resourceFilter = null) { var resourceList = new ResourceList(); var fileFilter = new FileFilter { FileExtensionWhitelist = new Regex(@"\.resx$") }; foreach (var file in fileSystem.AllFiles(path, fileFilter)) { var xml = fileSystem.LoadXmlFile(file.FullName); resourceList.Merge(ParseAsResourceList(xml, resourceFilter)); } return(resourceList); }
public ResourceList Clone(ResourceFilter filter = null) { if (filter == null) { filter = ResourceFilter.NoFilter; } var clonedList = new ResourceList(); foreach (var resource in this.Where(resource => filter.IsMatch(resource))) { clonedList.Add(new Resource(resource)); } return(clonedList); }
public static ResourceList ParseAsResourceList(XElement xmlDocument, ResourceFilter filter = null) { if (filter == null) { filter = ResourceFilter.NoFilter; } var resourceList = new ResourceList(); foreach (var resourceElement in xmlDocument.Elements()) { if (resourceElement.Name.LocalName != "data") { continue; } var key = resourceElement.Attribute("name").Value; if (!filter.KeyIsMatch(key)) { continue; } var valueElement = resourceElement.Element("value"); var value = string.Empty; if (valueElement != null) { value = valueElement.Value; } if (!filter.ValueIsMatch(value)) { continue; } resourceList.Add(new Resource(key, value)); } return(resourceList); }
public ResourceList TransformSelfIntoNewList() { var newList = new ResourceList(); foreach (var resource in this) { var newResource = new Resource(resource); foreach (var transform in resource.Transforms) { newResource = transform.Transform(resource); } if (newResource != null) { newList.Add(newResource); } } return(newList); }
public FileTransformer(IFileSystem fileSystem, ResourceList resourceList) { this.fileSystem = fileSystem; this.resourceList = new ResourceList(resourceList.Resources.Where(x => x.Transforms.Any())); }