Exemplo n.º 1
0
        public async Task <long> GetExternalUserIdAsync(int userId, SocialNetType socialType)
        {
            var user = await _context.UsersDb.FindAsync(userId);

            if (user == null)
            {
                return(0);
            }
            switch (socialType)
            {
            case SocialNetType.Facebook:
                return(user.FacebookId);

            case SocialNetType.Vk:
                return(user.VkId);

            case SocialNetType.Twiter:
            case SocialNetType.GooglePlus:
            case SocialNetType.Telegram:
            case SocialNetType.Badoo:
            case SocialNetType.Nothing:
            default:
                return(0);
            }
        }
Exemplo n.º 2
0
        public async Task <UserDto> GetUserByExternalUserIdAsync(int externalUserId, SocialNetType socialType)
        {
            UserDb user;

            switch (socialType)
            {
            case SocialNetType.Facebook:
                user = await _context.UsersDb.AsNoTracking().FirstOrDefaultAsync(x => x.FacebookId == externalUserId);

                break;

            case SocialNetType.Vk:
                user = await _context.UsersDb.AsNoTracking().FirstOrDefaultAsync(x => x.VkId == externalUserId);

                break;

            case SocialNetType.Nothing:
            case SocialNetType.Twiter:
            case SocialNetType.GooglePlus:
            case SocialNetType.Telegram:
            case SocialNetType.Badoo:
            default:
                user = null;
                break;
            }
            return(user?.ToUserDto());
        }
Exemplo n.º 3
0
        public async Task <bool> AddOrChangeExternalUserIdAsync(int userId, int externalUserId, SocialNetType socialType,
                                                                string externalToken)
        {
            var user = await _context.UsersDb.FindAsync(userId);

            if (user == null)
            {
                return(false);
            }
            switch (socialType)
            {
            case SocialNetType.Facebook:
                user.FacebookId    = externalUserId;
                user.FacebookToken = externalToken;
                break;

            case SocialNetType.Vk:
                user.VkId    = externalUserId;
                user.VkToken = externalToken;
                break;

            case SocialNetType.Nothing:
            case SocialNetType.Twiter:
            case SocialNetType.GooglePlus:
            case SocialNetType.Telegram:
            case SocialNetType.Badoo:
            default:
                return(false);
            }

            _context.Entry(user).State = EntityState.Modified;
            return(await _context.SaveChangesAsync() > 0);
        }