public bool TfaSettings(TfaModel model)
        {
            SecurityContext.DemandPermissions(Tenant, SecutiryConstants.EditPortalSettings);

            var result = false;

            MessageAction action;

            switch (model.Type)
            {
            case "sms":
                if (!StudioSmsNotificationSettings.IsVisibleSettings)
                {
                    throw new Exception(Resource.SmsNotAvailable);
                }

                if (!SmsProviderManager.Enabled())
                {
                    throw new MethodAccessException();
                }

                StudioSmsNotificationSettings.Enable = true;
                action = MessageAction.TwoFactorAuthenticationEnabledBySms;

                if (TfaAppAuthSettings.Enable)
                {
                    TfaAppAuthSettings.Enable = false;
                }

                result = true;

                break;

            case "app":
                if (!TfaAppAuthSettings.IsVisibleSettings)
                {
                    throw new Exception(Resource.TfaAppNotAvailable);
                }

                TfaAppAuthSettings.Enable = true;
                action = MessageAction.TwoFactorAuthenticationEnabledByTfaApp;

                if (StudioSmsNotificationSettings.IsVisibleSettings && StudioSmsNotificationSettings.Enable)
                {
                    StudioSmsNotificationSettings.Enable = false;
                }

                result = true;

                break;

            default:
                if (TfaAppAuthSettings.Enable)
                {
                    TfaAppAuthSettings.Enable = false;
                }

                if (StudioSmsNotificationSettings.IsVisibleSettings && StudioSmsNotificationSettings.Enable)
                {
                    StudioSmsNotificationSettings.Enable = false;
                }

                action = MessageAction.TwoFactorAuthenticationDisabled;

                break;
            }

            if (result)
            {
                CookiesManager.ResetTenantCookie(HttpContext);
            }

            MessageService.Send(action);
            return(result);
        }