Exemple #1
0
        public async Task <UserDto> GetUserViaExternalSocialNet(long externalUserId, string email, string externalToken,
                                                                long expiresIn, SocialType socialType)
        {
            Logger.LogInformation($"{nameof(ExternalAuthService)}.{nameof(GetUserViaExternalSocialNet)}.Start Via email from mobile");
            NormalizedSocialUserData socialUserData;

            switch (socialType)
            {
            case SocialType.Vk:
                socialUserData = await VkService.GetUserInfoAsync(externalUserId, email, externalToken, expiresIn);

                break;

            case SocialType.Facebook:
            case SocialType.Twiter:
            case SocialType.GooglePlus:
            case SocialType.Telegram:
            case SocialType.Badoo:
            case SocialType.Nothing:
            default: throw new Exception($"We do not support mobile logging via {socialType}.");
            }

            var result = await ExternalUserProcessing(socialUserData, socialType);

            Logger.LogInformation($"{nameof(ExternalAuthService)}.{nameof(GetUserViaExternalSocialNet)}.End Via email from mobile");
            return(result);
        }
Exemple #2
0
        public async Task <UserDto> GetUserViaExternalSocialNet(string code, SocialType socialType, bool isTest = false)
        {
            Logger.LogInformation($"{nameof(ExternalAuthService)}.{nameof(GetUserViaExternalSocialNet)}.Start via code from web client");
            NormalizedSocialUserData socialUserData;

            switch (socialType)
            {
            //socialUserData = await _fbService.GetUserInfoAsync(code);
            //break;
            case SocialType.Vk:
                socialUserData = await VkService.GetUserInfoAsync(code, isTest);

                break;

            case SocialType.Facebook:
            case SocialType.Twiter:
            case SocialType.GooglePlus:
            case SocialType.Telegram:
            case SocialType.Badoo:
            case SocialType.Nothing:
            default: throw new Exception($"We do not support logging via {socialType}.");
            }
            var result = await ExternalUserProcessing(socialUserData, socialType);

            Logger.LogInformation($"{nameof(ExternalAuthService)}.{nameof(GetUserViaExternalSocialNet)}.End via code from web client");
            return(result);
        }
        public async Task <bool> AddUserSocialAsync(int userId, string code, SocialType socialType)
        {
            Logger.LogInformation($"{nameof(AccountService)}.{nameof(AddUserSocialAsync)}.Start");
            NormalizedSocialUserData user;

            switch (socialType)
            {
            case SocialType.Facebook:
                user = await FbService.GetUserInfoAsync(code);

                break;

            case SocialType.Vk:
                user = await VkService.GetUserInfoAsync(code);

                break;

            case SocialType.Twiter:
            case SocialType.GooglePlus:
            case SocialType.Telegram:
            case SocialType.Badoo:
            case SocialType.Nothing:
            default: throw new Exception("We do not support this social network.");
            }
            var social = new SocialEntity
            {
                InternalId    = userId,
                ExternalId    = user.ExternalId,
                SocialType    = socialType,
                Email         = user.ExternalEmail,
                ExternalToken = user.ExternalToken,
                ExpiresIn     = user.ExpiresIn
            };

            if (!await Db.Users.AddUserSocialAsync(social))
            {
                return(false);
            }

            var userInfo = await Db.UsersInfo.FindUserInfoAsync(userId, userId);

            if (userInfo.OriginalAvatarUrl.IsNullOrEmpty() ||
                MediaConverter.IsStandardBackground(userInfo.OriginalAvatarUrl) && !user.OriginalPhotoUrl.IsNullOrEmpty())
            {
                userInfo.OriginalAvatarUrl = await UploadAvatarUrlOrGetStandard(user.OriginalPhotoUrl);
            }

            var updateUser = new UpdateUserInfoDto
            {
                UserId      = userInfo.UserId,
                FristName   = userInfo.FirstName,
                LastName    = userInfo.LastName,
                BirthDate   = userInfo.BirthDate,
                SexType     = userInfo.SexType,
                City        = userInfo.City,
                Description = userInfo.Description
            };

            try
            {
                await UpdateUserInfoAsync(updateUser);
            }
            catch (Exception e)
            {
                Logger.LogError(e, $"{nameof(AccountService)}.{nameof(AddUserSocialAsync)} Error");
            }
            Logger.LogInformation($"{nameof(AccountService)}.{nameof(AddUserSocialAsync)}.End");
            return(true);
        }