Esempio n. 1
0
        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);
            }
        }