Esempio n. 1
0
 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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 public FileTransformer(IFileSystem fileSystem, ResourceList resourceList)
 {
     this.fileSystem   = fileSystem;
     this.resourceList = new ResourceList(resourceList.Resources.Where(x => x.Transforms.Any()));
 }