using System.Collections; namespace EmbyToolbox.Models; /// Правила контекстного меню «Копировать ошибку» и состава текста буфера обмена. public static class ConversionQueueItemErrorCopy { public static bool IsEligibleItem(ConversionQueueItem? item) { return item is not null && string.Equals(item.Status, ConversionQueueStatus.Error, StringComparison.Ordinal) && !string.IsNullOrWhiteSpace(item.ErrorMessage); } public static bool ShouldShowForSelection(IList? selected) { if (selected is not { Count: 1 }) { return false; } return IsEligibleItem(selected[0] as ConversionQueueItem); } /// /// Если есть подробный вывод (ffmpeg stderr, ffprobe stderr и т.д.) — только он; иначе краткий . /// public static string GetClipboardText(ConversionQueueItem item) { var detail = item.ErrorDetails?.Trim(); if (!string.IsNullOrEmpty(detail)) { return detail; } return item.ErrorMessage?.Trim() ?? string.Empty; } }