diff --git a/EnvelopeGenerator.Application/Documents/Queries/Read/ReadDocumentQueryHandler.cs b/EnvelopeGenerator.Application/Documents/Queries/Read/ReadDocumentQueryHandler.cs index b6e7d636..f27cfa1a 100644 --- a/EnvelopeGenerator.Application/Documents/Queries/Read/ReadDocumentQueryHandler.cs +++ b/EnvelopeGenerator.Application/Documents/Queries/Read/ReadDocumentQueryHandler.cs @@ -1,5 +1,4 @@ using DigitalData.Core.Abstractions.Infrastructure; -using EnvelopeGenerator.Application.Contracts.Repositories; using EnvelopeGenerator.Domain.Entities; using MediatR; diff --git a/EnvelopeGenerator.Application/EnvelopeGenerator.Application.csproj b/EnvelopeGenerator.Application/EnvelopeGenerator.Application.csproj index c1eebe8f..f032eed8 100644 --- a/EnvelopeGenerator.Application/EnvelopeGenerator.Application.csproj +++ b/EnvelopeGenerator.Application/EnvelopeGenerator.Application.csproj @@ -18,8 +18,9 @@ - + + diff --git a/EnvelopeGenerator.Application/Extensions/DIExtensions.cs b/EnvelopeGenerator.Application/Extensions/DIExtensions.cs index 37579d98..7ae3869b 100644 --- a/EnvelopeGenerator.Application/Extensions/DIExtensions.cs +++ b/EnvelopeGenerator.Application/Extensions/DIExtensions.cs @@ -8,11 +8,21 @@ using Microsoft.Extensions.DependencyInjection.Extensions; using DigitalData.Core.Client; using QRCoder; using EnvelopeGenerator.Application.Contracts.Services; +using System.Reflection; namespace EnvelopeGenerator.Application.Extensions; +/// +/// Extensions method for dependency injection +/// public static class DIExtensions { + /// + /// Adds all required services for envelope generator application + /// + /// + /// + /// public static IServiceCollection AddEnvelopeGeneratorServices(this IServiceCollection services, IConfiguration config) { //Inject CRUD Service and repositoriesad @@ -47,6 +57,11 @@ public static class DIExtensions services.TryAddSingleton(); services.TryAddSingleton(); + services.AddMediatR(cfg => + { + cfg.RegisterServicesFromAssembly(Assembly.GetExecutingAssembly()); + }); + return services; } } \ No newline at end of file diff --git a/EnvelopeGenerator.Terminal/CommandManager.cs b/EnvelopeGenerator.Terminal/CommandManager.cs index 44e1d473..4d558e59 100644 --- a/EnvelopeGenerator.Terminal/CommandManager.cs +++ b/EnvelopeGenerator.Terminal/CommandManager.cs @@ -1,11 +1,19 @@ 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) +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) { @@ -15,4 +23,12 @@ public class CommandManager(IEnvelopeReceiverService envelopeReceiverService) [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)); + } } diff --git a/EnvelopeGenerator.Terminal/EnvelopeGenerator.Terminal.csproj b/EnvelopeGenerator.Terminal/EnvelopeGenerator.Terminal.csproj index 323f96d0..0fc313f8 100644 --- a/EnvelopeGenerator.Terminal/EnvelopeGenerator.Terminal.csproj +++ b/EnvelopeGenerator.Terminal/EnvelopeGenerator.Terminal.csproj @@ -5,8 +5,6 @@ net8.0 enable enable - true - true