Verbesserte Funktionen zur Erstellung von Umschlägen und Aktualisierung von Projekten

Neue DTOs und Befehle zur Erstellung von Umschlägen in CreateEnvelope.cs hinzugefügt. Aktualisierte Projektdateien, um net7.0, net8.0 und net9.0 zu unterstützen. Refactored EnvelopeController für bessere Struktur und Fehlerbehandlung. Einführung einer Methode zur Erstellung von Umschlägen in EnvelopeReceiverController unter Verwendung von IMediator. Allgemeine Verbesserungen der Funktionalität und Kompatibilität.
This commit is contained in:
Developer 02 2025-04-04 15:36:03 +02:00
parent 401d03aac2
commit 261d1b3db9
6 changed files with 100 additions and 45 deletions

View File

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<TargetFrameworks>net7.0;net8.0;net9.0</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

View File

@ -1,7 +1,7 @@
using MediatR;
using System.ComponentModel.DataAnnotations;
namespace EnvelopeGenerator.Application.Envelope.Commands;
namespace EnvelopeGenerator.Application.EnvelopeReceivers.Commands;
#region DTOs
/// <summary>
@ -43,12 +43,12 @@ public record CreateEnvelopeCommand(
[Required] string Title,
[Required] string Message,
[Required] DocumentCreateDto Document,
[Required] IEnumerable<ReceiverGetOrCreateDto> Receivers
[Required] IEnumerable<ReceiverGetOrCreateDto> Receivers,
string Language = "de-DE",
DateTime? ExpiresWhen = null,
DateTime? ExpiresWarningWhen = null,
int ContractType = (int)Common.Constants.ContractType.Contract,
bool TFAEnabled = false,
bool TFAEnabled = false
) : IRequest;
/// <summary>
@ -56,7 +56,7 @@ public record CreateEnvelopeCommand(
/// </summary>
public class CreateEnvelopeCommandHandler : IRequestHandler<CreateEnvelopeCommand>
{
public Task Handle(CreateEnvelopeCommand request, CancellationToken cancellationToken)
public Task<Unit> Handle(CreateEnvelopeCommand request, CancellationToken cancellationToken = default)
{
throw new NotImplementedException();
}

View File

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<TargetFrameworks>net7.0;net8.0;net9.0</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

View File

@ -3,8 +3,8 @@ using EnvelopeGenerator.Application.Contracts.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.GeneratorAPI.Controllers
{
namespace EnvelopeGenerator.GeneratorAPI.Controllers;
[Route("api/[controller]")]
[ApiController]
[Authorize]
@ -21,7 +21,7 @@ namespace EnvelopeGenerator.GeneratorAPI.Controllers
[Authorize]
[HttpGet]
public async Task<IActionResult> GetCurrentAsync(
public async Task<IActionResult> GetAsync(
[FromQuery] int? min_status = null,
[FromQuery] int? max_status = null,
[FromQuery] params int[] ignore_statuses)
@ -49,4 +49,3 @@ namespace EnvelopeGenerator.GeneratorAPI.Controllers
}
}
}
}

View File

@ -1,6 +1,8 @@
using DigitalData.Core.DTO;
using EnvelopeGenerator.Application.Contracts.Services;
using EnvelopeGenerator.Application.EnvelopeReceivers.Commands;
using EnvelopeGenerator.Common.My.Resources;
using MediatR;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
@ -12,12 +14,16 @@ namespace EnvelopeGenerator.GeneratorAPI.Controllers
public class EnvelopeReceiverController : ControllerBase
{
private readonly ILogger<EnvelopeReceiverController> _logger;
private readonly IEnvelopeReceiverService _erService;
public EnvelopeReceiverController(ILogger<EnvelopeReceiverController> logger, IEnvelopeReceiverService envelopeReceiverService)
private readonly IMediator _mediator;
public EnvelopeReceiverController(ILogger<EnvelopeReceiverController> logger, IEnvelopeReceiverService envelopeReceiverService, IMediator mediator)
{
_logger = logger;
_erService = envelopeReceiverService;
_mediator = mediator;
}
[HttpGet]
@ -94,5 +100,55 @@ namespace EnvelopeGenerator.GeneratorAPI.Controllers
return StatusCode(StatusCodes.Status500InternalServerError);
}
}
/// <summary>
/// Datenübertragungsobjekt mit Informationen zu Umschlägen, Empfängern und Unterschriften.
/// </summary>
/// <param name="envelope"></param>
/// <param name="cancellationToken">Token to cancel the operation</param>
/// <returns>HTTP-Antwort</returns>
/// <remarks>
/// Sample request:
///
/// POST /api/envelope
/// {
/// "title": "Vertragsdokument",
/// "message": "Bitte unterschreiben Sie dieses Dokument.",
/// "document": {
/// "dataAsBase64": "dGVzdC1iYXNlNjQtZGF0YQ=="
/// },
/// "receivers": [
/// {
/// "emailAddress": "example@example.com",
/// "signatures": [
/// {
/// "x": 100,
/// "y": 200,
/// "page": 1
/// }
/// ],
/// "name": "Max Mustermann",
/// "phoneNumber": "+49123456789"
/// }
/// ],
/// "language": "de-DE",
/// "expiresWhen": "2025-12-31T23:59:59Z",
/// "expiresWarningWhen": "2025-12-24T23:59:59Z",
/// "contractType": 1,
/// "tfaEnabled": false
/// }
///
/// </remarks>
/// <response code="202">Envelope-Erstellung und Sendeprozessbefehl erfolgreich</response>
/// <response code="400">Wenn ein Fehler im HTTP-Body auftritt</response>
/// <response code="401">Wenn kein autorisierter Token vorhanden ist</response>
/// <response code="500">Es handelt sich um einen unerwarteten Fehler. Die Protokolle sollten überprüft werden.</response>
[Authorize]
[HttpPost]
public async Task<IActionResult> CreateAsync([FromBody] CreateEnvelopeCommand envelope, CancellationToken cancellationToken)
{
await _mediator.Send(envelope, cancellationToken);
return Accepted();
}
}
}

View File

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<TargetFrameworks>net7.0;net8.0;net9.0</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>