From 893c27d4c3716ab8307eb950376f291fec1d528b Mon Sep 17 00:00:00 2001 From: Nicolas Constant Date: Mon, 4 Jan 2021 21:45:48 -0500 Subject: [PATCH] fix clean-up check on unfollow, fix #24 --- .../BusinessUseCases/ProcessUnfollowUser.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/BirdsiteLive.Domain/BusinessUseCases/ProcessUnfollowUser.cs b/src/BirdsiteLive.Domain/BusinessUseCases/ProcessUnfollowUser.cs index 4d5483a..a8a53b4 100644 --- a/src/BirdsiteLive.Domain/BusinessUseCases/ProcessUnfollowUser.cs +++ b/src/BirdsiteLive.Domain/BusinessUseCases/ProcessUnfollowUser.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Linq; +using System.Threading.Tasks; using BirdsiteLive.DAL.Contracts; namespace BirdsiteLive.Domain.BusinessUseCases @@ -38,8 +39,16 @@ namespace BirdsiteLive.Domain.BusinessUseCases if (follower.FollowingsSyncStatus.ContainsKey(twitterUserId)) follower.FollowingsSyncStatus.Remove(twitterUserId); - // Save Follower - await _followerDal.UpdateFollowerAsync(follower); + // 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); } } } \ No newline at end of file