public static IObservable <Uri> GetTrackAddressAsync(TrackContract track) { var remoteTrackUrl = new Uri(track.TrackUrl, UriKind.Absolute); var localFileName = "Track-" + track.Id + Path.GetExtension(track.TrackUrl); var localFullPath = "Audio/" + localFileName; if (Storage.Exists(localFullPath)) { return(Observable.Return(new Uri(localFullPath, UriKind.Relative))); } ////return Downloader.GetAndSaveFile(remoteTrackUrl, localFullPath).Select(_ => new Uri(localFullPath, UriKind.Relative)); return(Observable.Return(remoteTrackUrl)); }
public void Load(TrackContract track, bool censor) { if (track == null) { return; } this.title = (track.Name ?? string.Empty).Trim(); this.artist = (track.Artist ?? string.Empty).Trim(); this.Id = track.Id; const string Pattern = @"\((.|\n)*?\)"; var simplifiedArtistName = Regex.Replace(this.artist, Pattern, string.Empty); var simplifiedTrackName = Regex.Replace(this.title, Pattern, string.Empty); this.NavigationUrl = new Uri("music://zune?" + simplifiedArtistName + " " + simplifiedTrackName, UriKind.Absolute); this.IsFavourite = track.IsFavourite; }
/// <summary> /// Initializes a new instance of the TrackViewModel class. /// </summary> /// <param name="track"> /// </param> public TrackViewModel(TrackContract track, bool censor) : this() { this.Load(track, censor); }