using System; using System.Linq; namespace RMuseum.Models.Ganjoor.ViewModels { /// /// Ganjoor Poem related music track model /// public class PoemMusicTrackViewModel { /// /// id /// public int Id { get; set; } /// /// poem id /// a public int PoemId { get; set; } /// /// track type /// public PoemMusicTrackType TrackType { get; set; } /// /// artist name /// public string ArtistName { get; set; } /// /// artist url /// public string ArtistUrl { get; set; } /// /// album name /// public string AlbumName { get; set; } /// /// album url /// public string AlbumUrl { get; set; } /// /// track name /// public string TrackName { get; set; } /// /// track url /// public string TrackUrl { get; set; } /// /// description /// public string Description { get; set; } /// /// broken link /// public bool BrokenLink { get; set; } /// /// golha id /// public int GolhaTrackId { get; set; } /// /// approved /// public bool Approved { get; set; } /// /// instead of deleting rejected songs keep track of them /// public bool Rejected { get; set; } /// /// rejection cause /// public string RejectionCause { get; set; } /// /// Suggested by user id (only filled for review) /// public Guid? SuggestedById { get; set; } /// /// Suggested by user name (only filled for review) /// public string SuggestedByNickName { get; set; } /// /// to string /// /// public override string ToString() { // album is optional for user supplied links, so empty parts are dropped rather than // rendered as an empty » » segment var parts = TrackType == PoemMusicTrackType.Golha ? new[] { AlbumName, TrackName } : new[] { ArtistName, AlbumName, TrackName }; return string.Join(" » ", parts.Where(p => !string.IsNullOrWhiteSpace(p))); } } }