Example #1
0
        public override OperationResult <AudioMetaData> Process(AudioMetaData metaData)
        {
            var result = new OperationResult <AudioMetaData>();
            var metaDatasForFilesInFolder = GetAudioMetaDatasForDirectory(metaData.FileInfo.Directory);

            metaData.TrackNumber       = (metaData.TrackNumber ?? 0) > 0 ? metaData.TrackNumber : ID3TagsHelper.DetermineTrackNumber(metaData.FileInfo.Name);
            metaData.TotalTrackNumbers = ID3TagsHelper.DetermineTotalTrackNumbers(metaData.Filename) ?? metaDatasForFilesInFolder.Count();
            metaData.Disc           = ID3TagsHelper.DetermineDiscNumber(metaData);
            metaData.TotalDiscCount = ID3TagsHelper.DetermineTotalDiscNumbers(metaDatasForFilesInFolder);
            result.Data             = metaData;
            result.IsSuccess        = true;
            return(result);
        }
Example #2
0
        public void ReadTotalTrackNumbersFromM3u_Should_Be_Fourteen()
        {
            var cuesDir   = @"C:\roadie_dev_root\test_cue_and_playlists\m3u4";
            var directory = new DirectoryInfo(cuesDir);

            if (directory.Exists)
            {
                foreach (var file in Directory.GetFiles(cuesDir))
                {
                    var t = ID3TagsHelper.DetermineTotalTrackNumbers(file);
                    Assert.Equal(14, t.Value);
                }
            }
            else
            {
                Assert.True(true);
            }
        }
Example #3
0
        public void ReadTotalTrackNumbersFromSfvShouldBeEleven()
        {
            var sfvDir    = @"C:\roadie_dev_root\test_cue_and_playlists\sfv1";
            var directory = new DirectoryInfo(sfvDir);

            if (directory.Exists)
            {
                foreach (var file in Directory.GetFiles(sfvDir))
                {
                    var t = ID3TagsHelper.DetermineTotalTrackNumbers(file);
                    Assert.Equal(11, t.Value);
                }
            }
            else
            {
                Assert.True(true);
            }
        }
Example #4
0
        public override OperationResult <IEnumerable <AudioMetaData> > Process(IEnumerable <AudioMetaData> metaDatas)
        {
            var result             = new OperationResult <IEnumerable <AudioMetaData> >();
            var totalNumberOfMedia = ID3TagsHelper.DetermineTotalDiscNumbers(metaDatas);
            var folders            = metaDatas.GroupBy(x => x.FileInfo.DirectoryName);

            foreach (var folder in folders)
            {
                short looper = 0;
                foreach (var metaData in folder)
                {
                    looper++;
                    metaData.TrackNumber       = looper;
                    metaData.TotalTrackNumbers = ID3TagsHelper.DetermineTotalTrackNumbers(metaData.Filename) ?? folder.Count();
                    metaData.Disk           = ID3TagsHelper.DetermineDiscNumber(metaData);
                    metaData.TotalDiscCount = totalNumberOfMedia;
                }
            }
            result.Data      = metaDatas;
            result.IsSuccess = true;
            return(result);
        }