Пример #1
0
        private static string ExpireText(this TwoFactorDuration duration)
        {
            switch (duration)
            {
            case TwoFactorDuration.EveryLogin: return("now");

            case TwoFactorDuration.Forever: return("never");

            default: return($"{(int) duration}_days");
            }
        }
Пример #2
0
        private static string DurationToText(TwoFactorDuration duration)
        {
            switch (duration)
            {
            case TwoFactorDuration.EveryLogin:
                return("never");

            case TwoFactorDuration.Forever:
                return("forever");

            default:
                return($"{(int) duration} days");
            }
        }
Пример #3
0
        private static bool TryParseTextToDuration(string text, out TwoFactorDuration duration)
        {
            text = text.Trim().ToLowerInvariant();
            switch (text)
            {
            case "never":
                duration = TwoFactorDuration.EveryLogin;
                return(true);

            case "forever":
                duration = TwoFactorDuration.Forever;
                return(true);

            default:
                var idx = text.IndexOf(' ');
                if (idx > 0)
                {
                    text = text.Substring(0, idx);
                }

                if (int.TryParse(text, out var days))
                {
                    foreach (var d in Enum.GetValues(typeof(TwoFactorDuration)).OfType <TwoFactorDuration>())
                    {
                        if ((int)d == days)
                        {
                            duration = d;
                            return(true);
                        }
                    }
                }

                break;
            }

            duration = TwoFactorDuration.EveryLogin;
            return(false);
        }