コード例 #1
0
		public IEnumerable<XElement> GetXmlSources(IThemaFactory factory) {
			var myfiles = new List<string>();
			foreach (var src in Paths) {
				//file mask
				var ext = Path.GetExtension(src);
				if (src.Contains("*")) {
					var dir = Path.GetDirectoryName(src);

					var mask = Path.GetFileName(src);
					var files =
						factory.FileResolver
							.ResolveAll(null, FileResolveResultType.FullPath, new[] {dir}, new[] {mask}, null)
							.OrderBy(x => x);
					foreach (var file in files) {
						myfiles.Add(file);
					}
				}
				else if (ext.Length > 0 && ext.Length <= 5) {
					// direct file
					var file = factory.FileResolver.Resolve(src);
					myfiles.Add(file);
				}
				else {
					//folder
					var dir = factory.FileResolver.Resolve(src);
					var files = Directory.GetFiles(dir, "*.thema.xml").OrderBy(x => x);
					foreach (var file in files) {
						myfiles.Add(file);
					}
				}
			}
			foreach (var myfile in myfiles) {
				if (Path.GetExtension(myfile) == ".xml") {
					yield return XElement.Load(myfile);
				}
				else if (Path.GetExtension(myfile) == ".bxl") {
					yield return new BxlXmlParser().Parse(File.ReadAllText(myfile), myfile);
				}
			}
		}
コード例 #2
0
		public IEnumerable<XElement> GetXmlSources(IThemaFactory factory) {
			return _xmlSources;
		}
コード例 #3
0
		public IEnumerable<XElement> GetXmlSources(IThemaFactory factory) {
			yield return new BxlXmlParser().Parse(bxl, "direct");
		}
コード例 #4
0
ファイル: Loader.cs プロジェクト: comdiv/qorpent.themas
		public Loader(IThemaFactory factory) {
			Factory = factory;
			log = factory.Log;
		}