Files
Libation/Source/LibationFileManager/Templates/SeriesDto.cs
Jo-Be-Co 812e0c3b60 Format details on fields specified in format. Introduce by colon.
Use dictionaries for field access and sorting.

Added sorting to series lists.
2026-03-22 13:55:25 +01:00

28 lines
831 B
C#

using System;
using System.Collections.Generic;
using FileManager.NamingTemplate;
namespace LibationFileManager.Templates;
public record SeriesDto(string? Name, string? Number, string AudibleSeriesId) : IFormattable
{
public SeriesOrder Order { get; } = SeriesOrder.Parse(Number);
public static readonly Dictionary<string, Func<SeriesDto, object?>> FormatReplacements = new(StringComparer.OrdinalIgnoreCase)
{
{ "#", dto => dto.Order },
{ "N", dto => dto.Name },
{ "ID", dto => dto.AudibleSeriesId }
};
public override string? ToString() => Name?.Trim();
public string ToString(string? format, IFormatProvider? provider)
{
if (string.IsNullOrWhiteSpace(format))
return ToString() ?? string.Empty;
return CommonFormatters.TemplateStringFormatter(this, format, provider, FormatReplacements).Trim();
}
}