using System; using System.Collections.Generic; using System.Linq; using PetaPoco; using Sony.Filtr.Contracts.Definitions; namespace Sony.Filtr.Contracts.Entities { [Serializable] [TableName("tblNewReleaseAlbum")] [PrimaryKey("intId", autoIncrement = true)] [ExplicitColumns] public class Release { public const string Version = "8"; [Column("intID")] public int ID { get; set; } public SpotifyLink AlbumLink { get { if (SpotifyLinkUri != null) return new SpotifyLink(SpotifyLinkUri); return null; } set { SpotifyLinkUri = value.Uri; } } [Column("strSpotifyUri")] public string SpotifyLinkUri { get; set; } public SpotifyLink TrackLink { get { if (SpotifyTrackLinkUri != null) return new SpotifyLink(SpotifyTrackLinkUri); return null; } set { SpotifyTrackLinkUri = value.Uri; } } [Column("strSpotifyTrackUri")] public string SpotifyTrackLinkUri { get; set; } [Column("strArtistName")] public string ArtistName { get; set; } [Column("intApplicationId")] public int ApplicationID { get; set; } [Column("strAlbumName")] public string AlbumName { get; set; } [Column("strTrackName")] public string TrackName { get; set; } [Column("strTerritoryCodes")] public string AvailabilityString { get; set; } private IList _availability; public IList Availability { get { if (_availability == null) { if (AvailabilityString != null) _availability = AvailabilityString.Split(','); } return _availability; } set { AvailabilityString = string.Join(",", value); _availability = value; } } [Column("intReleaseType")] public ReleaseType ReleaseType { get; set; } [Column("strImageFilename")] public string ImageFilename { get; set; } [Column("dblEnergy")] public double? Energy { get; set; } [Column("dblHotness")] public double? Hotness { get; set; } [Column("dblDanceability")] public double? Danceability { get; set; } [Column("dblTempo")] public double? Tempo { get; set; } [Column("strArtistUri")] public string ArtistUri { get; set; } [Column("intIndex")] public int Index { get; set; } } }