public static async Task <bool> CompleteLogin(TabCoordinator coordinator, SpeckleAccountForUI accountCandidate, IProgress <MessageEventArgs> loggingProgress) { var messenger = new ProgressMessenger(loggingProgress); var accountName = await SpeckleInterface.SpeckleStreamManager.GetClientName(accountCandidate.ServerUrl, accountCandidate.Token, messenger); if (string.IsNullOrEmpty(accountName)) { return(false); } else { accountCandidate.Update(accountName); } if (accountCandidate != null && accountCandidate.IsValid) { var streamData = await SpeckleInterface.SpeckleStreamManager.GetStreams(accountCandidate.ServerUrl, accountCandidate.Token, messenger); if (streamData == null) { return(false); } coordinator.Account = accountCandidate; coordinator.ServerStreamList.StreamListItems.Clear(); foreach (var sd in streamData) { coordinator.ServerStreamList.StreamListItems.Add(new StreamListItem(sd.StreamId, sd.Name)); } //This is used to generate URLs for objects and add them to the error context stored in error messages (generated by kits) in the log GSA.App.LocalSettings.ServerAddress = coordinator.Account.ServerUrl; loggingProgress.Report(new MessageEventArgs(MessageIntent.Display, MessageLevel.Information, "Logged into account at: " + coordinator.Account.ServerUrl)); return(true); } else { return(false); } }
public static async Task <bool> GetStreamList(TabCoordinator coordinator, SpeckleAccountForUI account, IProgress <MessageEventArgs> loggingProgress) { return(await CompleteLogin(coordinator, account, loggingProgress)); }