using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Runtime.Serialization; using Sony.Core.Data; using MusicMatch.PlaylistGeneration; using MusicMatch.Core.Data; namespace SonyMusic.Web.ViewModels { [DataContract] public class PersonaSubstituteViewModel { public PersonaSubstituteViewModel(Sony.Core.Data.Persona p) { ID = p.ID.ToString(); Name = p.Name; Template = Enum.GetName(typeof(PersonaTemplate), p.Template); Recommendations = new Recommendation(); if (p.Artists != null) Recommendations.Artists = p.Artists.Select(a=> new ArtistRecommendation(a)); if (p.Genres != null) Recommendations.Genres = p.Genres.Select(g=> new GenreMatchViewModel(g)); if (p.PromotedTracks != null) Recommendations.Tracks = p.PromotedTracks.Select(t => new TrackRecommendation(t, new SimilarArtistMatch(SpotifonyManager.Instance.GetArtist(t.ArtistName), 100))); } [DataMember(Name = "id", Order = 1)] public string ID { get; set; } [DataMember(Name = "name", Order = 2)] public string Name { get; set; } [DataMember(Name = "template", Order = 3)] public string Template { get; set; } //[DataMember(Name = "score", Order = 3)] //public int Score { get; set; } [DataMember(Name = "recommendations", Order=4)] public Recommendation Recommendations { get; set; } } }