/// <summary>
        /// Mapps UserProfile fields
        /// </summary>
        /// <param name="facebookInfo">FacebookInfoModel</param>
        /// <returns>UserProfile</returns>
        public static UserProfile Provider(FacebookInfoModel facebookInfo)
        {
            if (facebookInfo == null)
            {
                return(null);
            }

            return(new UserProfile()
            {
                Id = facebookInfo.Id,
                FirstName = facebookInfo.FirstName,
                LastName = facebookInfo.LastName,
                Name = facebookInfo.FullName,
                Email = facebookInfo.Email,
                Photo = facebookInfo?.Pricture?.Data?.Url,
                AdditionalInformation = facebookInfo.AdditionalInformation
            });
        }
        private async Task <UserProfile> GetProfileFromAccessTokenAsync(FacebookTokensModel tokensModel)
        {
            string fields = ReformScopeToFields.Transform(tokensModel.Scope);

            string url = facebookProperties.GetProfileLink + tokensModel.AccessToken +
                         "&fields=first_name,last_name,name,gender,location,picture" + fields;

            var response = await _httpClient.GetAsync(url);

            try
            {
                response.EnsureSuccessStatusCode();
            } catch (HttpRequestException)
            {
                return(null);
            }

            string facebookInfoJson = await response.Content.ReadAsStringAsync();

            FacebookInfoModel facebookInfo = JsonSerializer.Deserialize <FacebookInfoModel>(facebookInfoJson);

            return(FacebookUserProfileInfoProvider.Provider(facebookInfo));
        }