private async Task <OperationResult <bool> > UpdateLastFMSessionKey(ApplicationUser user, string token) { var lastFmSessionKeyResult = await LastFmHelper.GetSessionKeyForUserToken(token); if (!lastFmSessionKeyResult.IsSuccess) { return(new OperationResult <bool>(false, $"Unable to Get LastFM Session Key For Token [{token}]")); } // Check concurrency stamp if (user.ConcurrencyStamp != user.ConcurrencyStamp) { return new OperationResult <bool> { Errors = new List <Exception> { new Exception("User data is stale.") } } } ; user.LastFMSessionKey = lastFmSessionKeyResult.Data; user.LastUpdated = DateTime.UtcNow; user.ConcurrencyStamp = Guid.NewGuid().ToString(); await DbContext.SaveChangesAsync(); CacheManager.ClearRegion(ApplicationUser.CacheRegionUrn(user.RoadieId)); Logger.LogInformation($"User `{user}` Updated LastFm SessionKey"); return(new OperationResult <bool> { IsSuccess = true, Data = true }); }
private async Task <AudioMetaData> GetFromLastFmIntegration(AudioMetaData metaData) { var artistName = metaData.Artist; var ReleaseName = metaData.Release; if (DoParseFromLastFM) { if (string.IsNullOrEmpty(artistName) && string.IsNullOrEmpty(ReleaseName)) { return(metaData); } var lastFmReleaseTracks = await LastFmHelper.TracksForRelease(artistName, ReleaseName); if (lastFmReleaseTracks != null) { var lastFmReleaseTrack = lastFmReleaseTracks.FirstOrDefault(x => x.TrackNumber == metaData.TrackNumber || x.Title.Equals(metaData.Title, StringComparison.InvariantCultureIgnoreCase)); if (lastFmReleaseTrack != null) { return(MergeAudioData(Configuration, metaData, lastFmReleaseTrack)); } } } return(metaData); }
public UserService(IRoadieSettings configuration, IHttpEncoder httpEncoder, IHttpContext httpContext, data.IRoadieDbContext context, ICacheManager cacheManager, ILogger <ArtistService> logger, UserManager <ApplicationUser> userManager ) : base(configuration, httpEncoder, context, cacheManager, logger, httpContext) { UserManager = userManager; LastFmHelper = new LastFmHelper(Configuration, CacheManager, Logger, context, httpEncoder); ; }
public AdminService(IRoadieSettings configuration, IHttpEncoder httpEncoder, IHttpContext httpContext, data.IRoadieDbContext context, ICacheManager cacheManager, ILogger <ArtistService> logger, IHubContext <ScanActivityHub> scanActivityHub ) : base(configuration, httpEncoder, context, cacheManager, logger, httpContext) { ScanActivityHub = scanActivityHub; EventMessageLogger = new EventMessageLogger(); EventMessageLogger.Messages += EventMessageLogger_Messages; MusicBrainzProvider = new MusicBrainzProvider(configuration, cacheManager, MessageLogger); LastFmHelper = new LastFmHelper(configuration, cacheManager, MessageLogger, context, httpEncoder); FileNameHelper = new FileNameHelper(configuration, cacheManager, MessageLogger); ID3TagsHelper = new ID3TagsHelper(configuration, cacheManager, MessageLogger); ArtistLookupEngine = new ArtistLookupEngine(configuration, httpEncoder, context, cacheManager, MessageLogger); LabelLookupEngine = new LabelLookupEngine(configuration, httpEncoder, context, cacheManager, MessageLogger); ReleaseLookupEngine = new ReleaseLookupEngine(configuration, httpEncoder, context, cacheManager, MessageLogger, ArtistLookupEngine, LabelLookupEngine); ImageFactory = new ImageFactory(configuration, httpEncoder, context, cacheManager, MessageLogger, ArtistLookupEngine, ReleaseLookupEngine); LabelFactory = new LabelFactory(configuration, httpEncoder, context, cacheManager, MessageLogger, ArtistLookupEngine, ReleaseLookupEngine); AudioMetaDataHelper = new AudioMetaDataHelper(configuration, httpEncoder, context, MusicBrainzProvider, LastFmHelper, cacheManager, MessageLogger, ArtistLookupEngine, ImageFactory, FileNameHelper, ID3TagsHelper); ReleaseFactory = new ReleaseFactory(configuration, httpEncoder, context, cacheManager, MessageLogger, ArtistLookupEngine, LabelFactory, AudioMetaDataHelper, ReleaseLookupEngine); ArtistFactory = new ArtistFactory(configuration, httpEncoder, context, cacheManager, MessageLogger, ArtistLookupEngine, ReleaseFactory, ImageFactory, ReleaseLookupEngine, AudioMetaDataHelper); }