private void ProcessOptionFolder(DirectoryInfo optionFolder) { var option = new Option(); Options[optionFolder.Name] = option; option.DirectoryInfo = optionFolder; var optionSubFolders = new Dictionary <OptionSubFolderType, List <OptionSubFolder> >(); option.OptionSubFolders = optionSubFolders; var directories = optionFolder.GetDirectories(); var dataTable = new DataTable(); dataTable.Columns.Add("Path", typeof(string)); dataTable.Columns.Add("Files", typeof(int)); dataTable.Columns.Add("Unlocked", typeof(string)); dataTable.Columns.Add("Duplicate", typeof(int)); for (int i = 0; i < directories.Length; i++) { DirectoryInfo directory = directories[i]; PrintProcessTrack(i + 1, directories.Length); if (directory.Name == "System Volume Information") { continue; } var isFolderToTrack = Settings.DefaultOptionFolders.TryGetValue(directory.Name, out var optionSubFolderType); var optionSubFolder = ProcessoptionTypeFolder(directory.FullName, optionSubFolderType, dataTable); if (isFolderToTrack) { optionSubFolders[optionSubFolderType] = optionSubFolder; } } if (dataTable.Rows.Count > 0) { var summary = AsciiTableGenerators.AsciiTableGenerator.CreateAsciiTableFromDataTable(dataTable).ToString(); OptionsSummary.Add(optionFolder.Name, summary); Program.Log(string.Empty); Program.Log(summary); } }
public override void Deserialize(XmlNode rootNode) { base.Deserialize(rootNode); var node = rootNode.SelectSingleNode(@"ProgramSchedule"); if (node != null) { InitProgramSchedule(); ProgramSchedule.Deserialize(node); } node = rootNode.SelectSingleNode(@"WeeklySection"); if (node != null && SelectedSpotType == SpotType.Week) { InitProgramSchedule(); ProgramSchedule.DeserializeSection(node); } node = rootNode.SelectSingleNode(@"MonthlySection"); if (node != null && SelectedSpotType == SpotType.Month) { InitProgramSchedule(); ProgramSchedule.DeserializeSection(node); } node = rootNode.SelectSingleNode(@"DigitalProducts"); if (node != null) { foreach (XmlNode productNode in node.ChildNodes) { var product = new DigitalProduct(); product.Deserialize(productNode); DigitalProducts.Add(product); } } node = rootNode.SelectSingleNode(@"DigitalProductSummary"); if (node != null) { DigitalProductSummary.Deserialize(node); } node = rootNode.SelectSingleNode(@"Snapshots"); if (node != null) { foreach (XmlNode snapshotNode in node.ChildNodes) { var snapshot = new Snapshot.Snapshot(this); snapshot.Deserialize(snapshotNode); Snapshots.Add(snapshot); } } node = rootNode.SelectSingleNode(@"SnapshotSummary"); if (node != null) { SnapshotSummary.Deserialize(node); } node = rootNode.SelectSingleNode(@"Options"); if (node != null) { foreach (XmlNode optionSetNode in node.ChildNodes) { var optionSet = new OptionSet(this); optionSet.Deserialize(optionSetNode); Options.Add(optionSet); } } node = rootNode.SelectSingleNode(@"OptionsSummary"); if (node != null) { OptionsSummary.Deserialize(node); } }