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)));
}
}
}