/// <summary> /// Login to a SpeckleServer /// </summary> private void Login(object sender, RoutedEventArgs e) { var signInWindow = new SpecklePopup.SignInWindow(true); var helper = new System.Windows.Interop.WindowInteropHelper(signInWindow) { Owner = new System.Windows.Interop.WindowInteropHelper(this).Handle }; this.IsEnabled = false; signInWindow.ShowDialog(); this.IsEnabled = true; if (signInWindow.AccountListBox.SelectedIndex != -1) { var account = signInWindow.accounts[signInWindow.AccountListBox.SelectedIndex]; EmailAddress = account.Email; RestApi = account.RestApi; ApiToken = account.Token; (SenderTab.Content as Grid).IsEnabled = FileOpened && LoggedIn; (ReceiverTab.Content as Grid).IsEnabled = FileOpened && LoggedIn; UpdateClientLists(); Status.AddMessage("Logged in to account at: " + RestApi); } else { Status.AddError("Failed to log in"); } }
public virtual void ShowAccountsPopup( ) { Window.Dispatcher.Invoke(() => { var signInWindow = new SpecklePopup.SignInWindow(); var helper = new System.Windows.Interop.WindowInteropHelper(signInWindow); helper.Owner = new System.Windows.Interop.WindowInteropHelper(Window).Handle; signInWindow.ShowDialog(); DispatchStoreActionUi("getAccounts"); }); }
public override void AddedToDocument(GH_Document document) { base.AddedToDocument(document); Document = this.OnPingDocument(); if (Client == null) { Account account = null; try { account = LocalContext.GetDefaultAccount(); } catch (Exception err) { } if (account == null) { var signInWindow = new SpecklePopup.SignInWindow(true); var helper = new System.Windows.Interop.WindowInteropHelper(signInWindow); helper.Owner = Rhino.RhinoApp.MainWindowHandle(); signInWindow.ShowDialog(); if (signInWindow.AccountListBox.SelectedIndex != -1) { account = signInWindow.accounts[signInWindow.AccountListBox.SelectedIndex]; } else { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Account selection failed."); return; } } RestApi = account.RestApi; AuthToken = account.Token; } StreamIdChanger = new System.Timers.Timer(1000); StreamIdChanger.Enabled = false; StreamIdChanger.AutoReset = false; StreamIdChanger.Elapsed += ChangeStreamId; }
public override void AddedToDocument(GH_Document document) { base.AddedToDocument(document); Document = OnPingDocument(); if (Client == null) { Locked = true; NickName = "Initialising"; Account account = null; try { account = LocalContext.GetDefaultAccount(); RestApi = account.RestApi; Client = new SpeckleApiClient(account.RestApi); Client.IntializeSender(account.Token, Document.DisplayName, "Grasshopper", Document.DocumentID.ToString()).ContinueWith(task => { Rhino.RhinoApp.InvokeOnUiThread(ExpireComponentAction); }); } catch (Exception err) { } if (account == null) { var signInWindow = new SpecklePopup.SignInWindow(true); var helper = new System.Windows.Interop.WindowInteropHelper(signInWindow); helper.Owner = Rhino.RhinoApp.MainWindowHandle(); signInWindow.ShowDialog(); if (signInWindow.AccountListBox.SelectedIndex != -1) { account = signInWindow.accounts[signInWindow.AccountListBox.SelectedIndex]; RestApi = account.RestApi; Client = new SpeckleApiClient(account.RestApi); Client.IntializeSender(account.Token, Document.DisplayName, "Grasshopper", Document.DocumentID.ToString()).ContinueWith(task => { Rhino.RhinoApp.InvokeOnUiThread(ExpireComponentAction); }); } else { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Account selection failed."); return; } } } else { } Client.OnReady += (sender, e) => { StreamId = Client.StreamId; if (!WasSerialised) { Locked = false; NickName = "Anonymous Stream"; } ////this.UpdateMetadata(); Rhino.RhinoApp.InvokeOnUiThread(ExpireComponentAction); }; Client.OnWsMessage += OnWsMessage; Client.OnLogData += (sender, e) => { Log += DateTime.Now.ToString("dd:HH:mm:ss ") + e.EventData + "\n"; }; Client.OnError += (sender, e) => { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, e.EventName + ": " + e.EventData); Log += DateTime.Now.ToString("dd:HH:mm:ss ") + e.EventData + "\n"; }; ExpireComponentAction = () => ExpireSolution(true); ObjectChanged += (sender, e) => UpdateMetadata(); foreach (var param in Params.Input) { param.ObjectChanged += (sender, e) => UpdateMetadata(); } MetadataSender = new System.Timers.Timer(1000) { AutoReset = false, Enabled = false }; MetadataSender.Elapsed += MetadataSender_Elapsed; DataSender = new System.Timers.Timer(2000) { AutoReset = false, Enabled = false }; DataSender.Elapsed += DataSender_Elapsed; ObjectCache = new Dictionary <string, SpeckleObject>(); Grasshopper.Instances.DocumentServer.DocumentRemoved += DocumentServer_DocumentRemoved; }
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { if (Client == null) { Account account = null; try { RestApi = account.RestApi; Client = new SpeckleApiClient(account.RestApi); Client.IntializeSender(account.Token, "docName", "Revit_Datasmith", "").ContinueWith(task => { }); } catch (Exception err) { } if (account == null) { var signInWindow = new SpecklePopup.SignInWindow(true); signInWindow.ShowDialog(); if (signInWindow.AccountListBox.SelectedIndex != -1) { account = signInWindow.accounts[signInWindow.AccountListBox.SelectedIndex]; RestApi = account.RestApi; Client = new SpeckleApiClient(account.RestApi); Client.IntializeSender(account.Token, "docName", "Revit_Datasmith", "").ContinueWith(task => { }); } else { return(Result.Cancelled); } } } else { } Client.OnReady += (sender, e) => { StreamId = Client.StreamId; }; MetadataSender = new System.Timers.Timer(1000) { AutoReset = false, Enabled = false }; MetadataSender.Elapsed += MetadataSender_Elapsed; DataSender = new System.Timers.Timer(2000) { AutoReset = false, Enabled = false }; DataSender.Elapsed += DataSender_Elapsed; ObjectCache = new Dictionary <string, SpeckleObject>(); // Original datasmith form. Need to remove form. DatasmithRevitCommand dmrc = new DatasmithRevitCommand(); dmrc.SpeckleCommand = this; dmrc.Execute(commandData, ref message, elements); //ForceUpdateData(); return(Result.Succeeded); }