diff --git a/EnvelopeGenerator.Application/EnvelopeReports/ReadEnvelopeReportQuery.cs b/EnvelopeGenerator.Application/EnvelopeReports/ReadEnvelopeReportQuery.cs
index 254fae87..e61ac78d 100644
--- a/EnvelopeGenerator.Application/EnvelopeReports/ReadEnvelopeReportQuery.cs
+++ b/EnvelopeGenerator.Application/EnvelopeReports/ReadEnvelopeReportQuery.cs
@@ -1,9 +1,15 @@
-using EnvelopeGenerator.Domain.Entities;
+using AutoMapper;
+using DigitalData.Core.Abstraction.Application.Repository;
+using DigitalData.Core.Exceptions;
+using EnvelopeGenerator.Domain.Entities;
using MediatR;
+using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
+using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace EnvelopeGenerator.Application.EnvelopeReports;
@@ -11,4 +17,56 @@ namespace EnvelopeGenerator.Application.EnvelopeReports;
///
///
///
-public record ReadEnvelopeReportQuery(int EnvelopeId) : IRequest;
\ No newline at end of file
+public record ReadEnvelopeReportQuery(int EnvelopeId) : IRequest>
+{
+ ///
+ ///
+ ///
+ [JsonIgnore]
+ [NotMapped]
+ public bool ThrowIfNotFound { get; init; } = true;
+};
+
+///
+///
+///
+public class ReadEnvelopeReportQueryHandler : IRequestHandler>
+{
+ ///
+ ///
+ ///
+ private readonly IRepository _repo;
+
+ ///
+ ///
+ ///
+ private readonly IMapper _mapper;
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public ReadEnvelopeReportQueryHandler(IRepository repo, IMapper mapper)
+ {
+ _repo = repo;
+ _mapper = mapper;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public async Task> Handle(ReadEnvelopeReportQuery request, CancellationToken cancel = default)
+ {
+ var reports = await _repo.Where(r => r.EnvelopeId == request.EnvelopeId).ToListAsync(cancel);
+ var reportDtos = _mapper.Map>(reports);
+
+ if(request.ThrowIfNotFound && !reportDtos.Any())
+ throw new NotFoundException($"EnvelopeReport with EnvelopeId '{request.EnvelopeId}' was not found.");
+
+ return reportDtos;
+ }
+}
\ No newline at end of file