IList<Package> Split(Package p) { var partTracks = p.Tracks .Partition(track => new FileInfo(track.PenAudioFile).Length, MaxGmeSize) .ToList(); return partTracks.Select((tracks, partIndex) => { var title = String.Format("{0} - Part {1} of {2}", p.Title, partIndex, partTracks.Count); return new Package(new ProductIdProvider()) { Tracks = tracks.ToArray(), Title = title, FileName = PathUtil.GetValidFileName(title) }; }).ToList(); }
public PackageDirectoryStructure(string rootDirectory, Package package) { this.rootDirectory = rootDirectory; this.package = package; }
public static Package CreateFromInputPaths(IEnumerable<string> inputPaths) { var albumReader = new AlbumReader(); var audioFiles = albumReader.GetAudioFiles(inputPaths); var package = new Package(new ProductIdProvider()) { Tracks = albumReader.GetTracks(audioFiles) }; var artists = package.Tracks.SelectMany(track => track.Artists).Distinct(); package.Title = String.Join(", ", artists); return package; }
public Document() { package = new Package(new ProductIdProvider()); }