static string ExecuteOptions(string engine, string key, string user, string oldpass, string newpassbase, Dictionary<string, string> options)
        {
            Engine eng = Engine.NONE;
            string newpass;
            switch (engine)
            {
                case "fb":
                    eng = Engine.FACEBOOK;
                    break;
                case "smf":
                    eng = Engine.SMF;
                    break;
                case "win":
                    eng = Engine.WINDOWS;
                    break;
                case "twitter":
                    eng = Engine.TWITTER;
                    break;
            }

            TOTP t = new TOTP(key);
            using (AccountManagementEngine aeng = new AccountManagementEngine())
            {
                foreach (KeyValuePair<string, string> opt in options)
                {
                    aeng.AddData(opt.Key, opt.Value);
                }
                newpass = newpassbase + t.now().ToString("D6");
                aeng.ChangePassword(eng, user, oldpass, newpass);
            }
            return newpass;
        }
        static void Main(string[] args)
        {
            var totp = new OTPNet.TOTP("R3A7PZLCUQIJFUGX");

            var code = totp.now();

            Console.WriteLine(code);
        }
    public static SqlString sfBobGetToken()
    {
        // Put your code here
        var totp = new OTPNet.TOTP("R3A7PZLCUQIJFUGX");

        var code = totp.now();

        return new SqlString(code.ToString());
    }
 static void Main(string[] args)
 {
     TOTP t = new TOTP(args[0]);
     Console.WriteLine("Your OTP = " + t.now().ToString("D6"));
 }