using System.Collections.Generic; using System.Runtime.Serialization; using Sony.Filtr.Utility.Extensions; namespace Sony.Filtr.API.ViewModels { [DataContract] public class AutocompleteViewModel { public AutocompleteViewModel(string artistName, string track) { artistName = char.ToUpper(artistName[0]) + artistName.Substring(1); Label = artistName + " - " + track; Data = new AutocompleteData() { Name = Label, Type = "track", Tracks = new AutocompleteDataTrack() { Artist = artistName, Track = track }.AsEnumerable(), }; } public AutocompleteViewModel(string artistName) { artistName = char.ToUpper(artistName[0]) + artistName.Substring(1); Label = artistName; Data = new AutocompleteData() { Name = artistName, Artists = new string[] { artistName }, Type = "artist", }; } [DataMember(Name = "label", Order = 1)] public string Label { get; set; } [DataMember(Name = "data", Order = 2)] public AutocompleteData Data { get; set; } } [DataContract] public class AutocompleteData { [DataMember(Name = "name", Order = 1)] public string Name { get; set; } [DataMember(Name = "type", Order = 2)] public string Type { get; set; } [DataMember(Name = "artists", Order = 3, EmitDefaultValue=false)] public IEnumerable Artists { get; set; } [DataMember(Name = "tracks", Order = 4, EmitDefaultValue = false)] public IEnumerable Tracks { get; set; } } [DataContract] public class AutocompleteDataTrack { [DataMember(Name="artist", Order=1)] public string Artist { get; set; } [DataMember(Name="track", Order=2)] public string Track { get; set; } } }