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);
            }
        }
Exemple #2
0
        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);
            }
        }