using ExcelTableImporter.Models.ExcelModels; namespace ExcelTableImporter.Commands; public interface ICommand { string HelpText { get; } string UsageText { get; } } public interface ICommandHandler { void Handle(); } public abstract class AnimeLibraryCommandHandlerBase(AnimeLibrary library, T command) : ICommandHandler where T : ICommand { protected readonly AnimeLibrary Library = library; public void Handle() { try { Handle(command); } catch (Exception ex) { Console.WriteLine(ex.Message); } } protected abstract void Handle(T command); }