feat(EnvelopeReceiverReadOnly): Modelldaten und Dokument im Endpunkt sind so eingestellt, dass sie als Bytes geladen werden.
This commit is contained in:
@@ -16,6 +16,7 @@ using EnvelopeGenerator.Web.Models;
|
||||
using EnvelopeGenerator.Application.Resources;
|
||||
using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver;
|
||||
using static EnvelopeGenerator.Common.Constants;
|
||||
using EnvelopeGenerator.Domain.Entities;
|
||||
|
||||
namespace EnvelopeGenerator.Web.Controllers
|
||||
{
|
||||
@@ -51,7 +52,7 @@ namespace EnvelopeGenerator.Web.Controllers
|
||||
{
|
||||
try
|
||||
{
|
||||
envelopeReceiverId = _urlEncoder.Encode(envelopeReceiverId);
|
||||
//envelopeReceiverId = _urlEncoder.Encode(envelopeReceiverId);
|
||||
|
||||
if (!envelopeReceiverId.TryDecode(out var decoded))
|
||||
{
|
||||
@@ -198,7 +199,7 @@ namespace EnvelopeGenerator.Web.Controllers
|
||||
{
|
||||
_logger.LogEnvelopeError(envelopeReceiverId: envelopeReceiverId, message: "No document was found.");
|
||||
return this.ViewDocumentNotFound();
|
||||
}
|
||||
}
|
||||
|
||||
var claims = new List<Claim> {
|
||||
new(ClaimTypes.NameIdentifier, uuid),
|
||||
@@ -304,13 +305,12 @@ namespace EnvelopeGenerator.Web.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
[HttpGet("EnvelopeKey/{readOnlyId}/ReadOnly")]
|
||||
public async Task<IActionResult> EnvelopeReceiverReadOnly(string readOnlyKey)
|
||||
[HttpGet("EnvelopeKey/{readOnlyKey}/ReadOnly")]
|
||||
public async Task<IActionResult> EnvelopeReceiverReadOnly([FromRoute] string readOnlyKey)
|
||||
{
|
||||
try
|
||||
{
|
||||
readOnlyKey = _urlEncoder.Encode(readOnlyKey);
|
||||
//readOnlyKey = _urlEncoder.Encode(readOnlyKey);
|
||||
|
||||
// check if the readOnlyId is valid
|
||||
if (!readOnlyKey.TryDecode(out var decodedKeys) || decodedKeys.GetEncodeType() != EncodeType.EnvelopeReceiverReadOnly)
|
||||
@@ -320,17 +320,43 @@ namespace EnvelopeGenerator.Web.Controllers
|
||||
}
|
||||
|
||||
var readOnlyId = decodedKeys.ParseReadOnlyId();
|
||||
return await _readOnlyService.ReadByIdAsync(readOnlyId).ThenAsync(
|
||||
Success: erro =>
|
||||
var erro_res = await _readOnlyService.ReadByIdAsync(readOnlyId);
|
||||
if (erro_res.IsFailed)
|
||||
{
|
||||
_logger.LogNotice(erro_res.Notices);
|
||||
return this.ViewInnerServiceError();
|
||||
}
|
||||
|
||||
var erro = erro_res.Data;
|
||||
|
||||
return await _envRcvService.ReadByUuidSignatureAsync(uuid: erro.Envelope!.Uuid, erro.Receiver!.Signature).ThenAsync(
|
||||
SuccessAsync: async er =>
|
||||
{
|
||||
var envelopeKey = (er.Envelope!.Uuid, er.Receiver!.Signature).EncodeEnvelopeReceiverId();
|
||||
|
||||
EnvelopeResponse response = await envelopeOldService.LoadEnvelope(envelopeKey);
|
||||
|
||||
if (response.Envelope.Documents.Count > 0)
|
||||
{
|
||||
ViewData["model"] = erro;
|
||||
return View("ShowEnvelope");
|
||||
},
|
||||
Fail: IActionResult (msg, ntc) =>
|
||||
var document = await envelopeOldService.GetDocument(response.Envelope.Documents[0].Id, envelopeKey);
|
||||
byte[] bytes = await envelopeOldService.GetDocumentContents(document);
|
||||
ViewData["EnvelopeKey"] = envelopeKey;
|
||||
ViewData["DocumentBytes"] = bytes;
|
||||
ViewData["IsReadOnly"] = true;
|
||||
ViewData["PSPDFKitLicenseKey"] = _configuration["PSPDFKitLicenseKey"];
|
||||
return View("ShowEnvelope", er);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogNotice(ntc);
|
||||
return this.ViewInnerServiceError();
|
||||
});
|
||||
_logger.LogEnvelopeError(envelopeReceiverId: envelopeKey, message: "No document was found.");
|
||||
return this.ViewDocumentNotFound();
|
||||
}
|
||||
},
|
||||
Fail: (messages, notices) =>
|
||||
{
|
||||
_logger.LogNotice(notices);
|
||||
return this.ViewEnvelopeNotFound();
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user