public override async Task ExecuteCoreWithResultAsync()

in SfB Trusted Application/Job/GetAnonTokenJob.cs [18:56]


        public override async Task<T> ExecuteCoreWithResultAsync<T>()
        {
            AnonymousToken result = null;
            Logger.Instance.Information(string.Format("[GetAnonTokenJob] stared: LoggingContext: {0}", LoggingContext.JobId));

            try
            {
                GetAnonTokenInput getAnonTokenInput = this.JobInput as GetAnonTokenInput;
                if (getAnonTokenInput == null)
                {
                    throw new InvalidOperationException("Failed to get valid GetAnonTokenInput instance");
                }

                var tokenResources = await AzureApplication.ApplicationEndpoint.Application.GetAnonApplicationTokenForMeetingAsync(getAnonTokenInput.MeetingUrl, getAnonTokenInput.AllowedOrigins, getAnonTokenInput.ApplicationSessionId, LoggingContext).ConfigureAwait(false);

                if (tokenResources != null)
                {
                    result = new AnonymousToken
                    {
                        DiscoverUri = tokenResources.AnonymousApplicationsDiscoverUri.ToString(),
                        ExpireTime = tokenResources.AuthTokenExpiryTime,
                        Token = tokenResources.AuthToken,
                        TenantEndpointId = AzureApplication.ApplicationEndpoint.ApplicationEndpointId.ToString()
                    };
                }
            }
            catch (CapabilityNotAvailableException ex)
            {
                Logger.Instance.Error("Failed to get anon token.", ex);
                throw;
            }
            catch (RemotePlatformServiceException ex)
            {
                Logger.Instance.Error("Failed to get anon token.", ex);
                throw;
            }

            return result as T;
        }