using CommandDotNet; using EnvelopeGenerator.Application.Contracts.Services; using EnvelopeGenerator.Application.Documents.Queries.Read; using MediatR; using System.Reflection; using System.Text.Json; namespace EnvelopeGenerator.Terminal; public class CommandManager(IEnvelopeReceiverService envelopeReceiverService, IMediator mediator) { private static JsonSerializerOptions Options = new () { WriteIndented = true // <-- Bu satır okunabilir JSON için önemli }; [DefaultCommand] public void Execute([Option(Description = "print envelope generator termianal version.")] bool version) { if(version) Console.WriteLine($"v{Assembly.GetExecutingAssembly().GetName().Version}"); } [Subcommand] public IEnvelopeReceiverService EnvelopeReceiver => envelopeReceiverService; [Command] public async Task ReadDocument(IConsole console, int? id = null, int? envelopeId = null) { ReadDocumentQuery query = new(id, envelopeId); var document = await mediator.Send(query); console.WriteLine(JsonSerializer.Serialize(document, Options)); } }