private static string ExpireText(this TwoFactorDuration duration) { switch (duration) { case TwoFactorDuration.EveryLogin: return("now"); case TwoFactorDuration.Forever: return("never"); default: return($"{(int) duration}_days"); } }
private static string DurationToText(TwoFactorDuration duration) { switch (duration) { case TwoFactorDuration.EveryLogin: return("never"); case TwoFactorDuration.Forever: return("forever"); default: return($"{(int) duration} days"); } }
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); }