Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
ReportFilesFolder.cs
1using System.IO;
2
4{
9 {
10 private readonly string folder;
11
19 : this(Folder, NodeId, Parent, true)
20 {
21 }
22
30 private ReportFilesFolder(string Folder, string NodeId, ReportNode Parent, bool ScanFolder)
31 : base(NodeId, Parent)
32 {
33 Folder = Path.GetFullPath(Folder);
34
35 if (!Folder.EndsWith(Path.DirectorySeparatorChar))
36 Folder += Path.DirectorySeparatorChar;
37
38 if (!Directory.Exists(Folder))
39 Directory.CreateDirectory(Folder);
40
41 this.folder = Folder;
42
43 if (ScanFolder)
44 this.AppendReportFileNodes(Folder, Folder, this);
45 }
46
47 private void AppendReportFileNodes(string BaseFolder, string Folder, ReportNode Parent)
48 {
49 string[] FileNames = Directory.GetFiles(Folder, "*.rpx", SearchOption.TopDirectoryOnly);
50 string[] Folders = Directory.GetDirectories(Folder, "*.*", SearchOption.TopDirectoryOnly);
51
52 foreach (string FileName in FileNames)
53 new ReportFileNode(FileName, FileName[BaseFolder.Length..], Parent);
54
55 foreach (string SubFolder in Folders)
56 {
57 ReportFilesFolder SubFolderNode = new ReportFilesFolder(SubFolder, SubFolder[BaseFolder.Length..], Parent, false);
58 this.AppendReportFileNodes(BaseFolder, SubFolder, SubFolderNode);
59 }
60 }
61
65 public string Folder => this.folder;
66 }
67}
Reports folder representing a folder on the file system containing file-based reports.
ReportFilesFolder(string Folder, string NodeId, ReportNode Parent)
Reports folder representing a folder on the file system containing file-based reports.
string Folder
Path of reports folder.
Abstract base class for report nodes.
Definition: ReportNode.cs:15
INode Parent
Parent Node, or null if a root node.
Definition: ReportNode.cs:107
string NodeId
ID of node.
Definition: ReportNode.cs:39
A folder of reports.