public async Task ExecuteAsync(string followerUsername, string followerDomain, string twitterUsername, string followerInbox, string sharedInbox, string followerActorId) { // Get Follower and Twitter Users var follower = await _followerDal.GetFollowerAsync(followerUsername, followerDomain); if (follower == null) { await _followerDal.CreateFollowerAsync(followerUsername, followerDomain, followerInbox, sharedInbox, followerActorId); follower = await _followerDal.GetFollowerAsync(followerUsername, followerDomain); } var twitterUser = await _twitterUserDal.GetTwitterUserAsync(twitterUsername); if (twitterUser == null) { await _twitterUserDal.CreateTwitterUserAsync(twitterUsername, -1); twitterUser = await _twitterUserDal.GetTwitterUserAsync(twitterUsername); } // Update Follower var twitterUserId = twitterUser.Id; if (!follower.Followings.Contains(twitterUserId)) { follower.Followings.Add(twitterUserId); } if (!follower.FollowingsSyncStatus.ContainsKey(twitterUserId)) { follower.FollowingsSyncStatus.Add(twitterUserId, -1); } // Save Follower await _followerDal.UpdateFollowerAsync(follower); }
public async Task ExecuteAsync(string followerUsername, string followerDomain, string twitterUsername) { // Get Follower and Twitter Users var follower = await _followerDal.GetFollowerAsync(followerUsername, followerDomain); if (follower == null) { return; } var twitterUser = await _twitterUserDal.GetTwitterUserAsync(twitterUsername); if (twitterUser == null) { return; } // Update Follower var twitterUserId = twitterUser.Id; if (follower.Followings.Contains(twitterUserId)) { follower.Followings.Remove(twitterUserId); } if (follower.FollowingsSyncStatus.ContainsKey(twitterUserId)) { follower.FollowingsSyncStatus.Remove(twitterUserId); } // Save or delete Follower if (follower.Followings.Any()) { await _followerDal.UpdateFollowerAsync(follower); } else { await _followerDal.DeleteFollowerAsync(followerUsername, followerDomain); } // Check if TwitterUser has still followers var followers = await _followerDal.GetFollowersAsync(twitterUser.Id); if (!followers.Any()) { await _twitterUserDal.DeleteTwitterUserAsync(twitterUsername); } }