public void ParseResult(CmsAlbum album) { var ddexFolder = this.GetDDEXFolder(album.AlbumCode); if (!string.IsNullOrEmpty(ddexFolder)) { var ackFilePath = Directory.GetFiles(ddexFolder, "ACK_*"); if (ackFilePath != null && ackFilePath.Any()) { var serializer = new System.Xml.Serialization.XmlSerializer(typeof(AckMessage)); using (var fileStream = System.IO.File.OpenRead(ackFilePath[0])) { var ackMessage = serializer.Deserialize(fileStream) as AckMessage; if (ackMessage != null && ackMessage.AffectedResources != null && ackMessage.AffectedResources.Any()) { foreach (var asset in album.Assets) { var affectedResource = ackMessage.AffectedResources.Where(p => p.ISRC != null && p.ISRC.Equals(asset.ISRC, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault(); if (affectedResource != null) { asset.AssetID = affectedResource.SoundRecordingAssetID; asset.ArtTrackAssetID = affectedResource.ArtTrackAssetID; asset.VideoID = affectedResource.VideoID; //Logger.Instance.Info("Asset ISRC {0}, SR {1}, AT {2}", asset.ISRC, asset.AssetID, asset.ArtTrackAssetID); Console.WriteLine(string.Format("Album {0}, Asset ISRC {1}, SR {2}, AT {3}, Video {4}", album.AlbumCode, asset.ISRC, asset.AssetID, asset.ArtTrackAssetID, asset.VideoID)); } } } } } } }
public void ParseResultCSV(CmsAlbum album) { var csvFolder = this.GetCSVFolderSoundRecording(album.AlbumCode); if (!string.IsNullOrEmpty(csvFolder)) { var reportFilePath = Directory.GetFiles(csvFolder, "report-*"); if (reportFilePath != null && reportFilePath.Any()) { using (var streamReader = System.IO.File.OpenText(reportFilePath[0])) { using (var reader = new CsvHelper.CsvReader(streamReader, System.Threading.Thread.CurrentThread.CurrentCulture)) { reader.Read(); reader.ReadHeader(); while (reader.Read()) { var isrc = reader.GetField("ISRC"); var assetID = reader.GetField("Asset ID"); foreach (var asset in album.Assets) { if (isrc == asset.ISRC) { asset.AssetID = assetID; break; } } } } } } } }
public void SaveAlbum(CmsAlbum cmsAlbum) { //save album image to imageFolder if (!string.IsNullOrEmpty(cmsAlbum.NewAlbumImagePath)) { cmsAlbum.AlbumImage = cmsAlbum.AlbumCode + System.IO.Path.GetExtension(cmsAlbum.NewAlbumImagePath); var albumImageFilePath = System.IO.Path.Combine(_imageFolder, cmsAlbum.AlbumImage); System.IO.File.Copy(cmsAlbum.NewAlbumImagePath, albumImageFilePath, true); } //save mp3 file to trackFolder foreach (var cmsAsset in cmsAlbum.Assets) { if (!string.IsNullOrEmpty(cmsAsset.NewFilePath)) { cmsAsset.Filename = System.IO.Path.GetFileName(cmsAsset.NewFilePath); var trackFolderPath = System.IO.Path.Combine(_trackFolder, cmsAlbum.AlbumCode); System.IO.Directory.CreateDirectory(trackFolderPath); var mediaFilePath = System.IO.Path.Combine(trackFolderPath, cmsAsset.Filename); System.IO.File.Copy(cmsAsset.NewFilePath, mediaFilePath); } } //write album json file var albumFolderPath = System.IO.Path.Combine(_albumFolder, cmsAlbum.AlbumCode); System.IO.Directory.CreateDirectory(albumFolderPath); var albumFilePath = System.IO.Path.Combine(albumFolderPath, cmsAlbum.AlbumCode + ".json"); var settings = new JsonSerializerSettings() { ContractResolver = new NullToEmptyStringResolver(), Formatting = Formatting.Indented }; System.IO.File.WriteAllText(albumFilePath, JsonConvert.SerializeObject(cmsAlbum, settings)); }
public string GetSoundRecordingCSVSubmitStatus(CmsAlbum album) { //check if assets has asset id string status = null; if (!album.Assets.Where(p => string.IsNullOrEmpty(p.AssetID)).Any()) { status = "Success"; } if (album.Assets.Where(p => string.IsNullOrEmpty(p.AssetID)).Any() && album.Assets.Where(p => !string.IsNullOrEmpty(p.AssetID)).Any()) { status = "Partial Success"; } string packageStatus = null; var csvFolder = this.GetCSVFolderSoundRecording(album.AlbumCode); if (!string.IsNullOrEmpty(csvFolder)) { var ackFilePath = Directory.GetFiles(csvFolder, "report-*"); if (ackFilePath != null && ackFilePath.Any()) { packageStatus = "Submitted"; } else if (!string.IsNullOrEmpty(album.AlbumIdentifier)) { var csvFilePath = Directory.GetFiles(csvFolder, album.AlbumIdentifier + ".csv"); if (csvFilePath != null && csvFilePath.Any()) { packageStatus = "Package Generated"; } } } if (string.IsNullOrEmpty(status) && string.IsNullOrEmpty(packageStatus)) { return(null); } else if (!string.IsNullOrEmpty(status) && !string.IsNullOrEmpty(packageStatus)) { return(string.Format("{0}-{1}", status, packageStatus)); } else if (!string.IsNullOrEmpty(status)) { return(status); } else { return(packageStatus); } }
public CmsAlbumVM(CmsAlbum cmsAlbum) { _cmsAlbum = cmsAlbum; Assets = new ObservableCollection <CmsAssetVM>(); if (cmsAlbum.Assets != null) { foreach (var asset in cmsAlbum.Assets) { Assets.Add(new CmsAssetVM(asset)); } } if (!string.IsNullOrEmpty(cmsAlbum.AlbumImage)) { var imagePath = System.IO.Path.Combine(Settings.ImageFolder, cmsAlbum.AlbumImage); this.AlbumImageObj = GetBitmapImge(imagePath); } }
public string GetCompositionSubmitStatus(CmsAlbum album) { var compositionFolder = this.GetCompositionFolder(album.AlbumCode); if (!string.IsNullOrEmpty(compositionFolder)) { var reportFilePath = Directory.GetFiles(compositionFolder, "report-*"); if (reportFilePath != null && reportFilePath.Any()) { return("Submitted"); } if (!string.IsNullOrEmpty(album.AlbumIdentifier)) { var compoisitionFilePath = Directory.GetFiles(compositionFolder, album.AlbumIdentifier + ".csv"); if (compoisitionFilePath != null && compoisitionFilePath.Any()) { return("Package Generated"); } } } return(null); }
public void EditAlbum(CmsAlbum cmsAlbum) { this.Album = new CmsAlbumVM(cmsAlbum); this.Asset = null; this.IsEdit = true; }
public CmsAlbumVM() { _cmsAlbum = new CmsAlbum(); Assets = new ObservableCollection <CmsAssetVM>(); }