private int CompareEntries(FranchiseEntry left, FranchiseEntry right) { if (left.ParentFranchise.IsStrictDescendantOf(right.ParentFranchise)) { return(left.ParentFranchise.GetAllAncestors() .Where(a => a.Entry != null) .First(a => a.Entry !.ParentFranchise.Id == right.ParentFranchise.Id) .Entry ! .SequenceNumber .CompareTo(right.SequenceNumber)); } if (right.ParentFranchise.IsStrictDescendantOf(left.ParentFranchise)) { return(left.SequenceNumber.CompareTo( right.ParentFranchise.GetAllAncestors() .Where(a => a.Entry != null) .First(a => a.Entry !.ParentFranchise.Id == left.ParentFranchise.Id) .Entry ! .SequenceNumber)); } return(this.Compare( new FranchiseListItem(left.ParentFranchise), new FranchiseListItem(right.ParentFranchise))); }
public FranchiseAddableItemViewModel(FranchiseEntry entry) { this.Entry = entry; this.Title = entry.GetTitle()?.Name ?? String.Empty; this.OriginalTitle = entry.GetOriginalTitle()?.Name ?? String.Empty; this.Year = entry.GetYears(); this.Tag = entry.Movie != null ? nameof(Movie) : entry.Series != null?nameof(Series) : nameof(Franchise); }
public static Title?GetOriginalTitle(this FranchiseEntry entry) => entry.Movie?.OriginalTitle ?? entry.Series?.OriginalTitle ?? entry.Franchise !.GetOriginalTitle();
public static ListItem ToListItem(this FranchiseEntry entry) => entry.Movie != null ? new MovieListItem(entry.Movie) : entry.Series != null ? (ListItem) new SeriesListItem(entry.Series) : new FranchiseListItem(entry.Franchise !);
public static string GetYears(this FranchiseEntry entry) => entry.Movie != null ? entry.Movie.Year.ToString() : entry.Series != null ? entry.Series.GetYears() : entry.Franchise !.GetYears();
public static int GetEndYear(this FranchiseEntry entry) => entry.Movie?.Year ?? entry.Series?.EndYear ?? entry.Franchise !.GetEndYear();