Esempio n. 1
0
 private static void Restore(OptionSubFolder optionSubFolder)
 {
     if (InteractiveConsole.PreProcessing.Restore(optionSubFolder, out var log))
     {
         Program.Log(log);
     }
 }
Esempio n. 2
0
        public void ProcessXMLFile(OptionSubFolder optionSubFolder)
        {
            var content = File.ReadAllText(optionSubFolder.XMLFile.FullName);

            optionSubFolder.Contents = content;
            lock (_lock2)
            {
                if (!Duplicates.ContainsKey(content))
                {
                    Duplicates.Add(content, optionSubFolder.XMLFile.FullName);
                }
                else
                {
                    optionSubFolder.IsDuplicate = true;
                }
            }
            optionSubFolder.XMLTags.Clear();
            foreach (var regex in Settings.RegexMatch)
            {
                var capture = Regex.Match(content, regex.Key, RegexOptions.IgnoreCase);
                if (capture.Success)
                {
                    optionSubFolder.XMLTags.Add(capture.Value, capture.Groups[2].Value.Equals(regex.Value, StringComparison.InvariantCultureIgnoreCase));
                }
            }
        }
Esempio n. 3
0
        public bool Unlock(OptionSubFolder optionSubFolder, out string log)
        {
            log = null;
            if (optionSubFolder.XMLTags.Count == 0 || optionSubFolder.XMLTags.All(x => x.Value))
            {
                //No Tags or already unlocked
                return(false);
            }

            foreach (var regex in Settings.RegexMatch)
            {
                optionSubFolder.Contents = Regex.Replace(optionSubFolder.Contents, regex.Key, $"$1{regex.Value}$3", RegexOptions.IgnoreCase);
            }

            var oldPath = optionSubFolder.XMLFile.FullName;

            if (!File.Exists($"{optionSubFolder.XMLFile.FullName}.bak"))
            {
                optionSubFolder.XMLFile.MoveTo($"{optionSubFolder.XMLFile.FullName}.bak");
            }
            File.WriteAllText(oldPath, optionSubFolder.Contents);
            optionSubFolder.XMLFile = new FileInfo(oldPath);
            log = $"Unlocked File {oldPath}";
            foreach (var xmlTag in optionSubFolder.XMLTags.Keys.ToArray())
            {
                optionSubFolder.XMLTags[xmlTag] = !optionSubFolder.XMLTags[xmlTag];
            }
            return(true);
        }
Esempio n. 4
0
        public bool Restore(OptionSubFolder optionSubFolder, out string log)
        {
            log = null;
            var oldPath = $"{optionSubFolder.XMLFile.FullName}.bak";

            if (!File.Exists(oldPath))
            {
                return(false);
            }
            var path = optionSubFolder.XMLFile.FullName;

            File.Delete(optionSubFolder.XMLFile.FullName);

            var oldFile = new FileInfo(oldPath);

            oldFile.MoveTo(path);
            optionSubFolder.XMLFile = new FileInfo(path);
            ProcessXMLFile(optionSubFolder);
            log = $"Restored File {optionSubFolder.XMLFile.FullName}";
            return(true);
        }
Esempio n. 5
0
        private List <OptionSubFolder> ProcessoptionTypeFolder(string optionSubFolderPath, OptionSubFolderType optionSubFolderType, DataTable dataTable)
        {
            var optionSubFolders           = new List <OptionSubFolder>();
            var directory                  = new DirectoryInfo(optionSubFolderPath);
            var optionSubFolderDirectories = directory.GetDirectories();

            Parallel.ForEach(optionSubFolderDirectories, (optionSubFolderDirectory) =>
            {
                var optionSubFolder           = new OptionSubFolder();
                optionSubFolder.DirectoryInfo = optionSubFolderDirectory;
                optionSubFolder.OptionType    = optionSubFolderType;
                var path    = Path.Combine(optionSubFolderDirectory.FullName, $"{directory.Name}.xml");
                var xmlFile = new FileInfo(path);
                if (!xmlFile.Exists)
                {
                    Program.LogError($"      Missing XML File from {path}");
                    return;
                }

                optionSubFolder.XMLFile = xmlFile;
                ProcessXMLFile(optionSubFolder);
                optionSubFolder.ParentDirectory = directory;
                lock (_lock)
                {
                    optionSubFolders.Add(optionSubFolder);
                }
            });

            var row = dataTable.NewRow();

            row["Path"]      = directory.Name;
            row["Files"]     = optionSubFolders.Count();
            row["Unlocked"]  = $"{optionSubFolders.Where(x => x.XMLTags.Any()).Count(x => x.XMLTags.Values.All(y => y))}/{optionSubFolders.Where(x => x.XMLTags.Any()).Count()}";
            row["Duplicate"] = optionSubFolders.Count(x => x.IsDuplicate);
            dataTable.Rows.Add(row);

            return(optionSubFolders.ToList());
        }