using Microsoft.AspNetCore.Identity; using Roadie.Library; using Roadie.Library.Identity; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace Roadie.Api.Services { public interface IAdminService { Task> DeleteArtist(ApplicationUser user, Guid artistId, bool deleteFolder); Task> DeleteArtistReleases(ApplicationUser user, Guid artistId, bool doDeleteFiles = false); Task> DeleteArtistSecondaryImage(ApplicationUser user, Guid artistId, int index); Task> DeleteGenre(ApplicationUser user, Guid genreId); Task> DeleteLabel(ApplicationUser user, Guid labelId); Task> DeleteRelease(ApplicationUser user, Guid releaseId, bool? doDeleteFiles); Task> DeleteReleaseSecondaryImage(ApplicationUser user, Guid releaseId, int index); Task> DeleteTracks(ApplicationUser user, IEnumerable trackIds, bool? doDeleteFile); Task> DeleteUser(ApplicationUser applicationUser, Guid id); Task> DoInitialSetup(ApplicationUser user, UserManager userManager); Task>>> MissingCollectionReleases(ApplicationUser user); void PerformStartUpTasks(); Task> ScanAllCollections(ApplicationUser user, bool isReadOnly = false, bool doPurgeFirst = false); Task> ScanArtist(ApplicationUser user, Guid artistId, bool isReadOnly = false); Task> ScanArtists(ApplicationUser user, IEnumerable artistIds, bool isReadOnly = false); Task> ScanCollection(ApplicationUser user, Guid collectionId, bool isReadOnly = false, bool doPurgeFirst = false, bool doUpdateRanks = true); Task> ScanInboundFolder(ApplicationUser user, bool isReadOnly = false); Task> ScanLibraryFolder(ApplicationUser user, bool isReadOnly = false); Task> ScanRelease(ApplicationUser user, Guid releaseIds, bool isReadOnly = false, bool wasDoneForInvalidTrackPlay = false); Task> ScanReleases(ApplicationUser user, IEnumerable releaseId, bool isReadOnly = false, bool wasDoneForInvalidTrackPlay = false); Task> UpdateInviteTokenUsed(Guid? tokenId); Task> ValidateInviteToken(Guid? tokenId); } }