private static RandomizerMode ParseInputMode(
            string prompt,
            RandomizerMode fallback)
        {
_loop:
            Console.WriteLine(prompt);
            var input = Console.ReadLine();

            if (String.IsNullOrEmpty(input))
            {
                return(fallback);
            }

            if (Enum.TryParse(input, true, out RandomizerMode result))
            {
                return(result);
            }

            if (GrayscaleRegex.IsMatch(input))
            {
                return(RandomizerMode.Grayscale);
            }

            if (NegativeRegex.IsMatch(input))
            {
                return(RandomizerMode.Negative);
            }

            Console.WriteLine(Resources.StatusInvalidInput);
            goto _loop;
        }
        public void Randomize(RandomizerMode randomizerMode)
        {
            switch (randomizerMode)
            {
            case RandomizerMode.None:
                break;

            case RandomizerMode.Default:
                MaseyaRandomize();
                break;

            case RandomizerMode.Grayscale:
                Grayscale();
                break;

            case RandomizerMode.Negative:
                Invert();
                break;

            case RandomizerMode.Puke:
                Puke();
                break;

            case RandomizerMode.Blackout:
                Blackout();
                break;

            default:
                throw new InvalidEnumArgumentException(
                          nameof(randomizerMode),
                          (int)randomizerMode,
                          typeof(RandomizerMode));
            }
        }