AllReady.Providers.ExternalUserInformationProviders.Providers.TwitterExternalUserInformationProvider.GetExternalUserInformation C# (CSharp) Метод

GetExternalUserInformation() публичный Метод

public GetExternalUserInformation ( Microsoft.AspNetCore.Identity.ExternalLoginInfo externalLoginInfo ) : Task
externalLoginInfo Microsoft.AspNetCore.Identity.ExternalLoginInfo
Результат Task
        public async Task<ExternalUserInformation> GetExternalUserInformation(ExternalLoginInfo externalLoginInfo)
        {
            var externalUserInformation = new ExternalUserInformation();

            var userId = externalLoginInfo.Principal.FindFirstValue("urn:twitter:userid");
            var screenName = externalLoginInfo.Principal.FindFirstValue("urn:twitter:screenname");

            var twitterAccount = await twitterRepository.GetTwitterAccount(userId, screenName);

            if (twitterAccount != null && twitterAccount.User != null)
            {
                var twitterUser = twitterAccount.User;
                externalUserInformation.Email = twitterUser.Email;

                if (!string.IsNullOrEmpty(twitterUser.Name))
                {
                    var array = twitterUser.Name.Split(' ');
                    if (array.Length > 1)
                    {
                        externalUserInformation.FirstName = array[0];
                        externalUserInformation.LastName = array[1];
                    }
                }
            }

            return externalUserInformation;
        }
    }

Usage Example

        public async Task ReturnCorrectExternalUserInformationWhenTwitterAccountIsNull()
        {
            var sut = new TwitterExternalUserInformationProvider(Mock.Of<ITwitterRepository>());
            var result = await sut.GetExternalUserInformation(new ExternalLoginInfo(new ClaimsPrincipal(), null, null, null));

            Assert.Null(result.Email);
            Assert.Null(result.FirstName);
            Assert.Null(result.LastName);
        }
All Usage Examples Of AllReady.Providers.ExternalUserInformationProviders.Providers.TwitterExternalUserInformationProvider::GetExternalUserInformation