using System.Threading; using System.Threading.Tasks; using ErsatzTV.Core; using ErsatzTV.Core.Interfaces.Repositories; using LanguageExt; using static LanguageExt.Prelude; namespace ErsatzTV.Application.Maintenance.Commands { public class DeleteOrphanedArtworkHandler : MediatR.IRequestHandler> { private readonly IArtworkRepository _artworkRepository; public DeleteOrphanedArtworkHandler(IArtworkRepository artworkRepository) => _artworkRepository = artworkRepository; public Task> Handle(DeleteOrphanedArtwork request, CancellationToken cancellationToken) => _artworkRepository.GetOrphanedArtwork() .Bind(_artworkRepository.Delete) .Map(_ => Right(Unit.Default)); } }