public static ActionResult CancelDialog( Session session ) { using ( TaskDialog dialog = new TaskDialog() ) { // Launch the dialog and get result. Thread thread = new Thread( (ThreadStart) delegate { dialog.ShowCancellation( session["_CancelDlgTitle"], session["_CancelDlgText"] ); } ); thread.SetApartmentState( ApartmentState.STA ); thread.Start(); thread.Join(); if ( dialog.Result == TaskDialog.TaskDialogResult.Yes ) session["_UserWantsOut"] = "1"; else session["_UserWantsOut"] = "0"; return ActionResult.UserExit; } }
public static ActionResult ValidateCredentials( Session session ) { // Encrypt token. if ( session["REGISTRAR_TOKEN"].Length > 0 && !session["REGISTRAR_TOKEN"].StartsWith("ENCRYPTED:") ) { session["REGISTRAR_TOKEN"] = "ENCRYPTED:" + Convert.ToBase64String( ProtectedData.Protect( Encoding.ASCII.GetBytes( session["REGISTRAR_TOKEN"] ), null, DataProtectionScope.LocalMachine ) ); } // Validate dialog fields. try { if ( session["REGISTRAR_REGISTRAR"].Length == 0 ) throw new QueryAPIException( 103 ); using ( IQueryAPI api = QueryAPIIndex.I.Factory( session["REGISTRAR_REGISTRAR"] ) ) { // Testing for Error98 in the above using statement. api.Credentials( session["REGISTRAR_USER"], session["REGISTRAR_TOKEN"].Replace( "ENCRYPTED:", "" ), session["REGISTRAR_DOMAIN"] ); if ( api.UserLength == 0 ) throw new QueryAPIException( 100 ); if ( api.TokenLength == 0 ) throw new QueryAPIException( 101 ); if ( api.DomainLength == 0 ) throw new QueryAPIException( 102 ); } } catch ( QueryAPIException err ) { using ( TaskDialog dialog = new TaskDialog() ) { // Launch the dialog and get result. Thread thread = new Thread( (ThreadStart) delegate { dialog.ShowError( Strings.ErrorDialogTitle, err.RMessage + "\n" ); } ); thread.SetApartmentState( ApartmentState.STA ); thread.Start(); thread.Join(); session["_RegistrarValidated"] = "0"; return ActionResult.NotExecuted; } } // Validate with status dialog. using ( IQueryAPI api = QueryAPIIndex.I.Factory( session["REGISTRAR_REGISTRAR"] ) ) using ( StatusDialog dialog = new StatusDialog( api ) ) { // Pass credentials to class instance. api.Credentials( session["REGISTRAR_USER"], session["REGISTRAR_TOKEN"].Replace( "ENCRYPTED:", "" ), session["REGISTRAR_DOMAIN"] ); // Launch the dialog and get result. Thread thread = new Thread( (ThreadStart) delegate { dialog.Show(); } ); thread.SetApartmentState( ApartmentState.STA ); thread.Start(); thread.Join(); if ( dialog.Result == TaskDialog.TaskDialogResult.Ok ) { session["_RegistrarValidated"] = "1"; return ActionResult.Success; } else { session["_RegistrarValidated"] = "0"; return ActionResult.NotExecuted; } } }