Example #1
0
        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
            });
        }
Example #2
0
        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);
        }
Example #3
0
 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);
     ;
 }
Example #4
0
        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);
        }