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); } }
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()); }
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); }