/// <summary>
        /// Converts OAuth2 result to Teams token result.
        /// </summary>
        /// <param name="source">Source result.</param>
        /// <param name="refreshedAt"><see cref="DateTime"/> when the token refreshed.</param>
        /// <returns><see cref="TeamsResult{TTeamsObject}"/> to get result.</returns>
        private static TeamsResult <TokenInfo> convert(TeamsResult <Oauth2TokenInternalInfo> source, DateTime refreshedAt)
        {
            var result = new TeamsResult <TokenInfo>();

            source.CopyInfoTo(result);


            var tokenInfo = new TokenInfo();

            var data = source.Data;

            if (result.IsSuccessStatus)
            {
                tokenInfo.RefreshedAt = refreshedAt;

                tokenInfo.AccessToken = data.AccessToken;

                if (data.ExpiresIn.HasValue)
                {
                    tokenInfo.AccessTokenExpiresIn = TimeSpan.FromSeconds(data.ExpiresIn.Value);
                    tokenInfo.AccessTokenExpiresAt = refreshedAt + tokenInfo.AccessTokenExpiresIn;
                }

                tokenInfo.RefreshToken = data.RefreshToken;

                if (data.RefreshTokenExpiresIn.HasValue)
                {
                    tokenInfo.RefreshTokenExpiresIn = TimeSpan.FromSeconds(data.RefreshTokenExpiresIn.Value);
                    tokenInfo.RefreshTokenExpiresAt = refreshedAt + tokenInfo.RefreshTokenExpiresIn;
                }
            }

            if (data.HasExtensionData)
            {
                tokenInfo.JsonExtensionData = data.JsonExtensionData;
            }

            tokenInfo.HasValues = data.HasValues;

            result.Data = tokenInfo;

            return(result);
        }
Exemple #2
0
        /// <summary>
        /// Converts Guest Issuer token result to Teams token result.
        /// </summary>
        /// <param name="source">Source result.</param>
        /// <param name="refreshedAt"><see cref="DateTime"/> when the token refreshed.</param>
        /// <param name="guestUserId">Guest user id.</param>
        /// <param name="displayName">Guest user display name.</param>
        /// <returns><see cref="TeamsResult{TTeamsObject}"/> to get result.</returns>
        private static TeamsResult <GuestUserInfo> convert(TeamsResult <GuestTokenInternalInfo> source, DateTime refreshedAt, string guestUserId, string displayName)
        {
            var result = new TeamsResult <GuestUserInfo>();

            source.CopyInfoTo(result);


            var guestUserInfo = new GuestUserInfo();

            var data = source.Data;

            if (result.IsSuccessStatus)
            {
                guestUserInfo.UserId      = guestUserId;
                guestUserInfo.DisplayName = displayName;

                guestUserInfo.RefreshedAt = refreshedAt;

                guestUserInfo.AccessToken = data.Token;

                if (data.ExpiresIn.HasValue)
                {
                    guestUserInfo.AccessTokenExpiresIn = TimeSpan.FromSeconds(data.ExpiresIn.Value);
                    guestUserInfo.AccessTokenExpiresAt = refreshedAt + guestUserInfo.AccessTokenExpiresIn;
                }
            }

            if (data.HasExtensionData)
            {
                guestUserInfo.JsonExtensionData = data.JsonExtensionData;
            }

            guestUserInfo.HasValues = data.HasValues;

            result.Data = guestUserInfo;

            return(result);
        }