Browse Source

use season number as season placeholder

pull/26/head
Jason Dove 6 years ago
parent
commit
3965634e61
  1. 3
      ErsatzTV.Application/MediaCards/Mapper.cs
  2. 2
      ErsatzTV.Application/MediaCards/TelevisionSeasonCardViewModel.cs
  3. 7
      ErsatzTV/Pages/TelevisionSeasons.razor
  4. 8
      ErsatzTV/Shared/MediaCard.razor

3
ErsatzTV.Application/MediaCards/Mapper.cs

@ -18,7 +18,8 @@ namespace ErsatzTV.Application.MediaCards @@ -18,7 +18,8 @@ namespace ErsatzTV.Application.MediaCards
GetSeasonName(televisionSeason.Number),
string.Empty,
GetSeasonName(televisionSeason.Number),
televisionSeason.Poster);
televisionSeason.Poster,
televisionSeason.Number == 0 ? "S" : televisionSeason.Number.ToString());
internal static MovieCardViewModel ProjectToViewModel(MovieMediaItem movie) =>
new(

2
ErsatzTV.Application/MediaCards/TelevisionSeasonCardViewModel.cs

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
namespace ErsatzTV.Application.MediaCards
{
public record TelevisionSeasonCardViewModel
(int TelevisionSeasonId, string Title, string Subtitle, string SortTitle, string Poster) : MediaCardViewModel(
(int TelevisionSeasonId, string Title, string Subtitle, string SortTitle, string Poster, string Placeholder) : MediaCardViewModel(
Title,
Subtitle,
SortTitle,

7
ErsatzTV/Pages/TelevisionSeasons.razor

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
@page "/media/tv/shows/{ShowId:int}"
@using static LanguageExt.Prelude
@using ErsatzTV.Application.Television
@using ErsatzTV.Application.Television.Queries
@using ErsatzTV.Application.MediaCards
@ -30,7 +31,7 @@ @@ -30,7 +31,7 @@
<MudContainer MaxWidth="MaxWidth.Large" Class="media-card-grid">
@foreach (TelevisionSeasonCardViewModel card in _data.Cards)
{
<MediaCard Data="@card" Link="@($"/media/tv/shows/{ShowId}/seasons/{card.TelevisionSeasonId}")" DataRefreshed="@(() => RefreshData())"/>
<MediaCard Data="@card" CustomPlaceholder="@SeasonPlaceholder" Link="@($"/media/tv/shows/{ShowId}/seasons/{card.TelevisionSeasonId}")" DataRefreshed="@(() => RefreshData())"/>
}
</MudContainer>
@ -56,4 +57,8 @@ @@ -56,4 +57,8 @@
_data = await Mediator.Send(new GetTelevisionSeasonCards(ShowId, _pageNumber, _pageSize));
}
private string SeasonPlaceholder(string sortTitle) =>
Optional(_data.Cards.SingleOrDefault(d => d.SortTitle == sortTitle))
.Match(vm => vm.Placeholder, () => sortTitle.Substring(0, 1).ToUpperInvariant());
}

8
ErsatzTV/Shared/MediaCard.razor

@ -45,9 +45,17 @@ @@ -45,9 +45,17 @@
[Parameter]
public EventCallback<Unit> DataRefreshed { get; set; }
[Parameter]
public Func<string, string> CustomPlaceholder { get; set; }
private string Placeholder(string sortTitle)
{
if (CustomPlaceholder != null)
{
return CustomPlaceholder(sortTitle);
}
string first = sortTitle.Substring(0, 1).ToUpperInvariant();
return int.TryParse(first, out _) ? "#" : first;
}

Loading…
Cancel
Save