public void VerifyTwoFactorCode(
         VerifyTwoFactorCodeViewModel model,
         ModelMethodContext context)
        {
            if (!context.ModelState.IsValid) return;

             var result = TwoFactorSignIn(
            model.Provider, model.Code,
            isPersistent: false, rememberBrowser: model.RememberBrowser);

             switch (result)
             {
            case SignInStatus.Success:
               RedirectToLocal();
               return;
            case SignInStatus.LockedOut:
               StateController.Navigate("AccountLocked");
               return;
            default:
               context.ModelState.AddModelError("Code", "Invalid Code");
               break;
             }
        }
        public VerifyTwoFactorCodeViewModel GetVerifyTwoFactorCode()
        {
            var model = new VerifyTwoFactorCodeViewModel
             {
            Provider = StateContext.Data[ProviderNameKey] as string
             };

             var code = StateContext.Data[CodeKey] as string;
             if (code != null)
             {
            model.IsDemo = true;
            model.DemoCode = code;
             }

             return model;
        }