cloutier--bird.makeup/src/BirdsiteLive.Moderation/Actions/RemoveFollowerAction.cs

34 lines
1.1 KiB
C#
Raw Normal View History

2021-12-13 20:43:57 -05:00
using System.Threading.Tasks;
using BirdsiteLive.DAL.Models;
2021-12-13 20:43:57 -05:00
using BirdsiteLive.Domain.BusinessUseCases;
namespace BirdsiteLive.Moderation.Actions
{
public interface IRemoveFollowerAction
{
Task ProcessAsync(Follower follower);
}
public class RemoveFollowerAction : IRemoveFollowerAction
{
2021-02-14 01:51:54 -05:00
private readonly IRejectAllFollowingsAction _rejectAllFollowingsAction;
2021-12-13 20:43:57 -05:00
private readonly IProcessDeleteUser _processDeleteUser;
#region Ctor
2021-12-13 20:43:57 -05:00
public RemoveFollowerAction(IRejectAllFollowingsAction rejectAllFollowingsAction, IProcessDeleteUser processDeleteUser)
{
2021-02-14 01:51:54 -05:00
_rejectAllFollowingsAction = rejectAllFollowingsAction;
2021-12-13 20:43:57 -05:00
_processDeleteUser = processDeleteUser;
}
#endregion
public async Task ProcessAsync(Follower follower)
{
// Perform undo following to user instance
2021-02-14 01:51:54 -05:00
await _rejectAllFollowingsAction.ProcessAsync(follower);
// Remove twitter users if no more followers
2021-12-13 20:43:57 -05:00
await _processDeleteUser.ExecuteAsync(follower);
}
}
}