- SQL-SELECT-Anweisungen in Dokumenten aktualisiert, um alle Spalten abzurufen.

- Prioritätsbehandlung für document_path_dmz in EnvelopeService.LoadEnvelopes hinzugefügt.
- CRUD-Operationen in EnvlopeDocument und ConfigurationFile Services/Repositories unter Verwendung von WebCoreModules implementiert.
- Verschiedene Dateimethoden in [spezifischen Orten oder Klassen, falls zutreffend] auf async umgestellt.
This commit is contained in:
Developer 02
2024-03-14 12:46:38 +01:00
parent a2b0682a77
commit 6f59906a7e
37 changed files with 624 additions and 93 deletions

View File

@@ -2,7 +2,6 @@
using EnvelopeGenerator.Common;
using EnvelopeGenerator.Web.Services;
using Microsoft.AspNetCore.Mvc;
using static EnvelopeGenerator.Web.Constants;
namespace EnvelopeGenerator.Web.Controllers
{
@@ -27,7 +26,7 @@ namespace EnvelopeGenerator.Web.Controllers
return Problem(
statusCode: 500,
detail: e.Message,
type: ErrorType.ServerError.ToString());
type: "ServerError");
}
}
}

View File

@@ -0,0 +1,15 @@
using DigitalData.Core.API;
using EnvelopeGenerator.Application.Contracts;
using EnvelopeGenerator.Application.DTOs;
using EnvelopeGenerator.Domain.Entities;
using EnvelopeGenerator.Infrastructure.Contracts;
namespace EnvelopeGenerator.Web.Controllers
{
public class ConfigTestController : CRUDControllerBase<ConfigTestController, IConfigService, IConfigRepository, ConfigDto, ConfigDto, ConfigDto, Config, int>
{
public ConfigTestController(ILogger<ConfigTestController> logger, IConfigService service) : base(logger, service)
{
}
}
}

View File

@@ -2,6 +2,7 @@
using EnvelopeGenerator.Common;
using EnvelopeGenerator.Web.Services;
using static EnvelopeGenerator.Common.Constants;
using EnvelopeGenerator.Application.Contracts;
namespace EnvelopeGenerator.Web.Controllers
{
@@ -9,16 +10,18 @@ namespace EnvelopeGenerator.Web.Controllers
{
private readonly EnvelopeService envelopeService;
private readonly ActionService? actionService;
private readonly IEnvelopeDocumentService _envDocService;
public DocumentController(DatabaseService database, LoggingService logging, EnvelopeService envelope) : base(database, logging)
public DocumentController(DatabaseService database, LoggingService logging, EnvelopeService envelope, IEnvelopeDocumentService envDocService) : base(database, logging)
{
envelopeService = envelope;
actionService = database.Services?.actionService;
_envDocService = envDocService;
}
[HttpGet]
[Route("api/document/{envelopeKey}")]
public async Task<IActionResult> Get(string envelopeKey)
public async Task<IActionResult> Get([FromRoute] string envelopeKey, [FromQuery] int index)
{
try
{
@@ -26,11 +29,11 @@ namespace EnvelopeGenerator.Web.Controllers
// Validate Envelope Key and load envelope
envelopeService.EnsureValidEnvelopeKey(envelopeKey);
EnvelopeResponse response = envelopeService.LoadEnvelope(envelopeKey);
EnvelopeResponse response = await envelopeService.LoadEnvelope(envelopeKey);
// Load document info
var Request = ControllerContext.HttpContext.Request;
var document = envelopeService.GetDocument(Request, envelopeKey);
var document = await envelopeService.GetDocument(Request, envelopeKey);
// Load the document from disk
var bytes = await envelopeService.GetDocumentContents(document);
@@ -46,7 +49,7 @@ namespace EnvelopeGenerator.Web.Controllers
[HttpPost]
[Route("api/document/{envelopeKey}")]
public IActionResult Open(string envelopeKey)
public async Task<IActionResult> Open(string envelopeKey)
{
try
{
@@ -54,7 +57,7 @@ namespace EnvelopeGenerator.Web.Controllers
// Validate Envelope Key and load envelope
envelopeService.EnsureValidEnvelopeKey(envelopeKey);
EnvelopeResponse response = envelopeService.LoadEnvelope(envelopeKey);
EnvelopeResponse response = await envelopeService.LoadEnvelope(envelopeKey);
actionService.OpenEnvelope(response.Envelope, response.Receiver);

View File

@@ -17,7 +17,7 @@ namespace EnvelopeGenerator.Web.Controllers
[HttpGet]
[Route("api/envelope/{envelopeKey}")]
public IActionResult Get(string envelopeKey)
public async Task<IActionResult> Get(string envelopeKey)
{
try
{
@@ -25,7 +25,7 @@ namespace EnvelopeGenerator.Web.Controllers
// Validate Envelope Key and load envelope
envelopeService.EnsureValidEnvelopeKey(envelopeKey);
EnvelopeResponse response = envelopeService.LoadEnvelope(envelopeKey);
EnvelopeResponse response = await envelopeService.LoadEnvelope(envelopeKey);
if (envelopeService.ReceiverAlreadySigned(response.Envelope, response.Receiver.Id) == true)
{
@@ -51,7 +51,7 @@ namespace EnvelopeGenerator.Web.Controllers
// Validate Envelope Key and load envelope
envelopeService.EnsureValidEnvelopeKey(envelopeKey);
EnvelopeResponse response = envelopeService.LoadEnvelope(envelopeKey);
EnvelopeResponse response = await envelopeService.LoadEnvelope(envelopeKey);
// Again check if receiver has already signed
if (envelopeService.ReceiverAlreadySigned(response.Envelope, response.Receiver.Id) == true)

View File

@@ -0,0 +1,15 @@
using DigitalData.Core.API;
using EnvelopeGenerator.Application.Contracts;
using EnvelopeGenerator.Application.DTOs;
using EnvelopeGenerator.Domain.Entities;
using EnvelopeGenerator.Infrastructure.Contracts;
namespace EnvelopeGenerator.Web.Controllers
{
public class EnvelopeDocumentTestController : CRUDControllerBase<EnvelopeDocumentTestController, IEnvelopeDocumentService, IEnvelopeDocumentRepository, EnvelopeDocumentDto, EnvelopeDocumentDto, EnvelopeDocumentDto, EnvelopeDocument, int>
{
public EnvelopeDocumentTestController(ILogger<EnvelopeDocumentTestController> logger, IEnvelopeDocumentService service) : base(logger, service)
{
}
}
}

View File

@@ -70,11 +70,10 @@ namespace EnvelopeGenerator.Web.Controllers
}
[HttpGet]
[Route("/EnvelopeKey/{EnvelopeReceiverId}")]
public IActionResult ShowEnvelope()
[Route("/EnvelopeKey/{envelopeReceiverId}")]
public async Task<IActionResult> ShowEnvelope([FromRoute] string envelopeReceiverId)
{
string envelopeKey = (string)HttpContext.Request.RouteValues["EnvelopeReceiverId"];
EnvelopeResponse response = _envelopeService.LoadEnvelope(envelopeKey);
EnvelopeResponse response = await _envelopeService.LoadEnvelope(envelopeReceiverId);
if (response.Envelope.UseAccessCode)
{
@@ -87,61 +86,46 @@ namespace EnvelopeGenerator.Web.Controllers
bool result = database.Services.emailService.SendDocumentAccessCodeReceivedEmail(response.Envelope, response.Receiver);
}
return Redirect($"/EnvelopeKey/{envelopeKey}/Locked");
return Redirect($"/EnvelopeKey/{envelopeReceiverId}/Locked");
}
else
{
ViewData["EnvelopeKey"] = envelopeKey;
ViewData["EnvelopeKey"] = envelopeReceiverId;
return View();
}
}
[HttpPost]
[Route("/EnvelopeKey/{EnvelopeReceiverId}/Locked")]
public IActionResult ShowEnvelopePost()
[Route("/EnvelopeKey/{envelopeReceiverId}/Locked")]
public async Task<IActionResult> ShowEnvelopePost([FromRoute] string envelopeReceiverId, [FromForm] string access_code)
{
string envelopeKey = (string)HttpContext.Request.RouteValues["EnvelopeReceiverId"];
StringValues accessCodeFromForm = HttpContext.Request.Form["access_code"];
if (accessCodeFromForm.Count == 0)
{
return Redirect($"/EnvelopeKey/{envelopeKey}/Locked");
}
if (accessCodeFromForm.Count > 1)
{
return Redirect($"/EnvelopeKey/{envelopeKey}/Locked");
}
EnvelopeResponse response = _envelopeService.LoadEnvelope(envelopeKey);
EnvelopeResponse response = await _envelopeService.LoadEnvelope(envelopeReceiverId);
string accessCode = response.Receiver.AccessCode;
if (string.IsNullOrEmpty(accessCodeFromForm[0]))
if (string.IsNullOrEmpty(access_code))
{
return Redirect($"/EnvelopeKey/{envelopeKey}/Locked");
return Redirect($"/EnvelopeKey/{envelopeReceiverId}/Locked");
}
if (accessCode.Equals(accessCodeFromForm[0], StringComparison.Ordinal))
if (accessCode.Equals(access_code, StringComparison.Ordinal))
{
bool actionResult = database.Services.actionService.EnterCorrectAccessCode(response.Envelope, response.Receiver);
ViewData["EnvelopeKey"] = envelopeKey;
ViewData["EnvelopeKey"] = envelopeReceiverId;
return View("ShowEnvelope");
}
else
{
bool actionResult = database.Services.actionService.EnterIncorrectAccessCode(response.Envelope, response.Receiver);
return Redirect($"/EnvelopeKey/{envelopeKey}/Locked");
return Redirect($"/EnvelopeKey/{envelopeReceiverId}/Locked");
}
}
[HttpGet]
[Route("/EnvelopeKey/{EnvelopeReceiverId}/Locked")]
public IActionResult EnvelopeLocked()
[Route("/EnvelopeKey/{envelopeReceiverId}/Locked")]
public IActionResult EnvelopeLocked([FromRoute] string envelopeReceiverId)
{
ViewData["EnvelopeKey"] = HttpContext.Request.RouteValues["EnvelopeReceiverId"];
ViewData["EnvelopeKey"] = envelopeReceiverId;
return View();
}