@using JSMR.Application.VoiceWorks.Queries.Search @using JSMR.Domain.Enums @using JSMR.UI.Blazor.Components.Chips @using JSMR.UI.Blazor.Enums @using JSMR.UI.Blazor.Filters @using JSMR.UI.Blazor.Services @using System.Globalization @using Microsoft.AspNetCore.WebUtilities
@* @Product.Maker *@ @* *@ @Product.Maker @if (Product.OriginalCircle is not null) { @Product.OriginalCircle.Name } @foreach (var creator in Product.Creators) { @* @creator.Name *@ @* *@ @creator.Name } @foreach (string supportedLanguage in Product.SupportedLanguages) { @GetSupportedLanguageDescription(supportedLanguage) } @if (Product.OriginalProductId is not null) { Translation } @if (Product.Rating == AgeRating.AllAges) { All Ages } else if (Product.Rating == AgeRating.R15) { R-15 } @if (Product.HasTrial || Product.HasChobit) { Trial } @if (Product.Favorite) { Favorite }
@Product.Description
@foreach (var tag in Product.Tags) { @*
@tag.Name
*@ }
@*
@foreach (var tag in Product.Tags) { }
*@
@GetReleaseDateText(Product)
@((Product.WishlistCount ?? 0).ToString("n0"))
@if (Product.SalesDate is not null) {
@((Product.Downloads ?? 0).ToString("n0"))
} @*
*@
@if (Product.IsValid != true) { } @if (Product.OriginalProductId is not null) { } @if (Product.Favorite) { } @if (Product.HasTrial || Product.HasChobit) { }
@code { [Parameter] public required VoiceWorkSearchResult Product { get; set; } private string GetCardClasses(VoiceWorkSearchResult voiceWork) { List classNames = ["j-card", "j-voice-work-card"]; if (voiceWork.Status == (byte)VoiceWorkStatus.NewRelease) { classNames.Add("type-sale"); } else if (voiceWork.Status == (byte)VoiceWorkStatus.NewAndUpcoming) { classNames.Add("type-new"); } return string.Join(" ", classNames); } private string GetReleaseDateText(VoiceWorkSearchResult voiceWork) { if (voiceWork.SalesDate.HasValue) { return voiceWork.SalesDate.Value.ToString("MMMM d, yyyy", CultureInfo.CurrentCulture); } if (voiceWork.PlannedReleaseDate.HasValue) { return voiceWork.PlannedReleaseDate.Value.ToString("MMMM d, yyyy", CultureInfo.CurrentCulture); } if (voiceWork.ExpectedDate.HasValue) { string part = voiceWork.ExpectedDate.Value.Day switch { 21 => "Late", 11 => "Middle", _ => "Early" }; return $"{part} {voiceWork.ExpectedDate.Value.ToString("MMMM yyyy")}"; } return "Unknown"; } private string GetFlagClassSuffix(VoiceWorkSearchResult voiceWork) { switch (voiceWork.SubtitleLanguage) { case 1: return "us"; case 2: return "cn"; case 3: return "kr"; default: return "jp"; } } private string GetSupportedLanguageDescription(string code) { switch (code) { case "JPN": return "Japanese"; case "ENG": return "English"; case "CHI_HANS": return "Chinese (Simplified)"; case "CHI_HANT": return "Chinese (Traditional)"; case "KO_KR": return "Korean"; default: return code; } } }