예제 #1
0
        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);
            }
        }
예제 #2
0
 public static async Task <bool> GetStreamList(TabCoordinator coordinator, SpeckleAccountForUI account, IProgress <MessageEventArgs> loggingProgress)
 {
     return(await CompleteLogin(coordinator, account, loggingProgress));
 }