/// <summary>
        /// Copies all wallpapers into one folder. This is useful when another program (like windows backgrounds) need one folder.
        /// </summary>
        public static void Merge()
        {
            ClearAndPrintHeadline();
            Console.WriteLine("Working...");
            var info = WallpaperManager.Merge();

            ClearAndPrintHeadline();
            Console.WriteLine($"Deleted {info.Item1} Images");
            Console.WriteLine($"Copied {info.Item2} Images");
            PressAnyKeyToContinue();
        }
        /// <summary>
        /// Starts the sorting in process for new wallpapers located in the working directory.
        /// </summary>
        private static void SortInNamedWorkingWallpapers()
        {
            ClearAndPrintHeadline();
            var newWallpapers = WallpaperManager.SortInNamedWorkingWallpapers();

            Console.WriteLine($"Added and moved {newWallpapers.Count} wallpaper.\n");
            WallpaperManager.CleanWorkingDirectory();
            Console.WriteLine("Cleaned sorting directory.");
            foreach (var currentWallpaper in newWallpapers)
            {
                Console.WriteLine(currentWallpaper.ToString());
            }
            PressAnyKeyToContinue();
        }
        /// <summary>
        /// Finds and moves original wallpapers that have no edited version and therefor have no purpose.
        /// </summary>
        private static void SortOutOrignals()
        {
            ClearAndPrintHeadline();
            var movedFiles = WallpaperManager.SortOutOrignals();

            if (movedFiles.Count > 0)
            {
                foreach (var currentFile in movedFiles)
                {
                    Console.WriteLine($"{currentFile.Directory.Name}/{currentFile.Name} was moved.");
                }
            }
            else
            {
                Console.WriteLine("No lonely original wallpaper found.");
            }
            PressAnyKeyToContinue();
        }
        /// <summary>
        /// Scans or rescans all wallpapers and their originals.
        /// </summary>
        /// <param name="firstScan">Indicates whether it is the first scan or not. This determines if exiting data is deleted before scanning or not.</param>
        public static void Scan(bool firstScan = false)
        {
            ClearAndPrintHeadline();
            if (firstScan)
            {
                Console.WriteLine("Initiation Process...\n");
            }
            else
            {
                Console.WriteLine("Deleting existing information...");
                WallpaperManager.Reset();
                Console.WriteLine("Rescanning...\n");
            }
            Console.WriteLine($"Looking for wallpapers in {WallpaperManager.WallpaperDirectory.FullName}");
            Console.WriteLine($"Looking for original versions in {WallpaperManager.OriginalWallpaperDirectory.FullName}");
            WallpaperManager.FullScan();
            Console.WriteLine($"Found {WallpaperManager.Wallpapers.Count} wallpapers and {WallpaperManager.Wallpapers.Count - Wallpaper.TotalCountWithoutOriginal} originals.");

            PressAnyKeyToContinue();
        }
 /// <summary>
 /// Goes through all index numbers, checks if they are in order without a number missing and fixes them when necessary.
 /// </summary>
 private static void FixAllIndexes()
 {
     ClearAndPrintHeadline();
     WallpaperManager.FixAllIndexes();
     PressAnyKeyToContinue();
 }