Compare commits
2 Commits
6941a3db8d
...
f5dd3cf8be
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f5dd3cf8be | ||
|
|
2c17d440c0 |
@@ -16,8 +16,7 @@
|
|||||||
int AnnotationIndex,
|
int AnnotationIndex,
|
||||||
DateTime AddedWhen,
|
DateTime AddedWhen,
|
||||||
DateTime? ChangedWhen,
|
DateTime? ChangedWhen,
|
||||||
EnvelopeDocumentDto? Document,
|
|
||||||
EnvelopeReceiverDto? Receiver,
|
|
||||||
double Top,
|
double Top,
|
||||||
double Left);
|
double Left
|
||||||
|
);
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,4 @@
|
|||||||
using EnvelopeGenerator.Domain.Entities;
|
namespace EnvelopeGenerator.Application.DTOs
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.DTOs
|
|
||||||
{
|
{
|
||||||
public record EnvelopeDocumentDto
|
public record EnvelopeDocumentDto
|
||||||
(
|
(
|
||||||
@@ -10,6 +8,6 @@ namespace EnvelopeGenerator.Application.DTOs
|
|||||||
string Filepath,
|
string Filepath,
|
||||||
DateTime AddedWhen,
|
DateTime AddedWhen,
|
||||||
string FilenameOriginal,
|
string FilenameOriginal,
|
||||||
IEnumerable<DocumentReceiverElement>? Elements
|
IEnumerable<DocumentReceiverElementDto>? Elements
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -4,5 +4,6 @@
|
|||||||
int Id,
|
int Id,
|
||||||
string EmailAddress,
|
string EmailAddress,
|
||||||
string Signature,
|
string Signature,
|
||||||
DateTime AddedWhen);
|
DateTime AddedWhen,
|
||||||
|
IEnumerable<EnvelopeReceiverDto>? EnvelopeReceivers);
|
||||||
}
|
}
|
||||||
@@ -28,12 +28,12 @@ namespace EnvelopeGenerator.Domain.Entities
|
|||||||
[Required]
|
[Required]
|
||||||
[Column("POSITION_X")]
|
[Column("POSITION_X")]
|
||||||
[DefaultValue(0)]
|
[DefaultValue(0)]
|
||||||
public double X { get; set; }
|
public double PositionX { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
[Column("POSITION_Y")]
|
[Column("POSITION_Y")]
|
||||||
[DefaultValue(0)]
|
[DefaultValue(0)]
|
||||||
public double Y { get; set; }
|
public double PositionY { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
[Column("WIDTH")]
|
[Column("WIDTH")]
|
||||||
@@ -83,9 +83,9 @@ namespace EnvelopeGenerator.Domain.Entities
|
|||||||
public virtual Receiver? Receiver { get; set; }
|
public virtual Receiver? Receiver { get; set; }
|
||||||
|
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public double Top => Math.Round(Y, 5);
|
public double Top => Math.Round(PositionY, 5);
|
||||||
|
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public double Left => Math.Round(X, 5);
|
public double Left => Math.Round(PositionX, 5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -39,7 +39,7 @@ namespace EnvelopeGenerator.Infrastructure.Repositories
|
|||||||
query = query.Where(e => e.Receivers != null && e.Receivers.Any(er => er.Receiver != null && er.Receiver.Signature == signature));
|
query = query.Where(e => e.Receivers != null && e.Receivers.Any(er => er.Receiver != null && er.Receiver.Signature == signature));
|
||||||
|
|
||||||
if (withAll || withDocuments)
|
if (withAll || withDocuments)
|
||||||
if (withDocumentReceiverElement)
|
if (withAll || withDocumentReceiverElement)
|
||||||
query = query.Include(e => e.Documents!).ThenInclude(d => d.Elements);
|
query = query.Include(e => e.Documents!).ThenInclude(d => d.Elements);
|
||||||
else
|
else
|
||||||
query = query.Include(e => e.Documents);
|
query = query.Include(e => e.Documents);
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ namespace EnvelopeGenerator.Web.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("/")]
|
[HttpPost("/")]
|
||||||
public IActionResult DebugEnvelopes([FromForm] string password)
|
public IActionResult DebugEnvelopes([FromForm] string? password)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -44,12 +44,6 @@ namespace EnvelopeGenerator.Web.Controllers
|
|||||||
return View("Index");
|
return View("Index");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (password == null)
|
|
||||||
{
|
|
||||||
ViewData["error"] = "No password supplied!";
|
|
||||||
return View("Index");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (password != passwordFromConfig)
|
if (password != passwordFromConfig)
|
||||||
{
|
{
|
||||||
ViewData["error"] = "Wrong Password!";
|
ViewData["error"] = "Wrong Password!";
|
||||||
@@ -75,15 +69,34 @@ namespace EnvelopeGenerator.Web.Controllers
|
|||||||
{
|
{
|
||||||
var decodedId = envelopeReceiverId.DecodeEnvelopeReceiverId();
|
var decodedId = envelopeReceiverId.DecodeEnvelopeReceiverId();
|
||||||
|
|
||||||
|
_logger.LogInformation($"Envelope UUID: [{decodedId.EnvelopeUuid}]");
|
||||||
|
_logger.LogInformation($"Receiver Signature: [{decodedId.ReceiverSignature}]");
|
||||||
|
|
||||||
var verification = await _envRcvService.VerifyAccessCode(decodedId.EnvelopeUuid, access_code);
|
var verification = await _envRcvService.VerifyAccessCode(decodedId.EnvelopeUuid, access_code);
|
||||||
EnvelopeResponse response = await envelopeOldService.LoadEnvelope(envelopeReceiverId);
|
EnvelopeResponse response = await envelopeOldService.LoadEnvelope(envelopeReceiverId);
|
||||||
|
|
||||||
if (verification.IsSuccess)
|
if (verification.IsSuccess)
|
||||||
{
|
{
|
||||||
var envelope = await _envelopeService.ReadByUuidAsync(uuid: decodedId.EnvelopeUuid, signature: decodedId.ReceiverSignature, withAll:true);
|
if (envelopeOldService.ReceiverAlreadySigned(response.Envelope, response.Receiver.Id) == true)
|
||||||
|
{
|
||||||
|
return Problem(statusCode: 403);
|
||||||
|
}
|
||||||
|
|
||||||
|
var envelope = await _envelopeService.ReadByUuidAsync(uuid: decodedId.EnvelopeUuid, signature: decodedId.ReceiverSignature, withAll: true);
|
||||||
database.Services.actionService.EnterCorrectAccessCode(response.Envelope, response.Receiver); //for history
|
database.Services.actionService.EnterCorrectAccessCode(response.Envelope, response.Receiver); //for history
|
||||||
ViewData["EnvelopeKey"] = envelopeReceiverId;
|
ViewData["EnvelopeKey"] = envelopeReceiverId;
|
||||||
ViewData["EnvelopeResponse"] = response;
|
ViewData["EnvelopeResponse"] = response;
|
||||||
|
ViewData["EnvelopeResponse"] = response;
|
||||||
|
|
||||||
|
if (response.Envelope.Documents.Count() > 0)
|
||||||
|
{
|
||||||
|
var document = await envelopeOldService.GetDocument(response.Envelope.Documents[0].Id, envelopeReceiverId);
|
||||||
|
byte[] bytes = await envelopeOldService.GetDocumentContents(document);
|
||||||
|
ViewData["DocumentBytes"] = bytes;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ViewData["DocumentBytes"] = null;
|
||||||
|
|
||||||
return View("ShowEnvelope", envelope);
|
return View("ShowEnvelope", envelope);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ using EnvelopeGenerator.Application.DTOs;
|
|||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Web.Controllers
|
namespace EnvelopeGenerator.Web.Controllers.Test
|
||||||
{
|
{
|
||||||
public class TestConfigController : BasicCRUDControllerBase<TestConfigController, IConfigService, IConfigRepository, ConfigDto, Config, int>
|
public class TestConfigController : TestControllerBase<TestConfigController, IConfigService, IConfigRepository, ConfigDto, Config, int>
|
||||||
{
|
{
|
||||||
public TestConfigController(ILogger<TestConfigController> logger, IConfigService service) : base(logger, service)
|
public TestConfigController(ILogger<TestConfigController> logger, IConfigService service) : base(logger, service)
|
||||||
{
|
{
|
||||||
17
EnvelopeGenerator.Web/Controllers/Test/TestControllerBase.cs
Normal file
17
EnvelopeGenerator.Web/Controllers/Test/TestControllerBase.cs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
using DigitalData.Core.API;
|
||||||
|
using DigitalData.Core.Contracts.Application;
|
||||||
|
using DigitalData.Core.Contracts.Infrastructure;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace EnvelopeGenerator.Web.Controllers.Test
|
||||||
|
{
|
||||||
|
//[NonController]
|
||||||
|
[ApiController]
|
||||||
|
[Route("api/test/[controller]")]
|
||||||
|
public class TestControllerBase<TOriginalController, TCRUDService, TCRUDRepository, TDto, TEntity, TId> : BasicCRUDControllerBase<TOriginalController, TCRUDService, TCRUDRepository, TDto, TEntity, TId> where TOriginalController : CRUDControllerBase<TOriginalController, TCRUDService, TCRUDRepository, TDto, TDto, TDto, TEntity, TId> where TCRUDService : ICRUDService<TCRUDRepository, TDto, TDto, TDto, TEntity, TId> where TCRUDRepository : ICRUDRepository<TEntity, TId> where TDto : class where TEntity : class
|
||||||
|
{
|
||||||
|
public TestControllerBase(ILogger<TOriginalController> logger, TCRUDService service) : base(logger, service)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,9 +4,9 @@ using EnvelopeGenerator.Application.DTOs;
|
|||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Web.Controllers
|
namespace EnvelopeGenerator.Web.Controllers.Test
|
||||||
{
|
{
|
||||||
public class TestDocumentReceiverElementController : BasicCRUDControllerBase<TestDocumentReceiverElementController, IDocumentReceiverElementService, IDocumentReceiverElementRepository, DocumentReceiverElementDto, DocumentReceiverElement, int>
|
public class TestDocumentReceiverElementController : TestControllerBase<TestDocumentReceiverElementController, IDocumentReceiverElementService, IDocumentReceiverElementRepository, DocumentReceiverElementDto, DocumentReceiverElement, int>
|
||||||
{
|
{
|
||||||
public TestDocumentReceiverElementController(ILogger<TestDocumentReceiverElementController> logger, IDocumentReceiverElementService service) : base(logger, service)
|
public TestDocumentReceiverElementController(ILogger<TestDocumentReceiverElementController> logger, IDocumentReceiverElementService service) : base(logger, service)
|
||||||
{
|
{
|
||||||
@@ -4,9 +4,9 @@ using EnvelopeGenerator.Application.DTOs;
|
|||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Web.Controllers
|
namespace EnvelopeGenerator.Web.Controllers.Test
|
||||||
{
|
{
|
||||||
public class TestDocumentStatusController : BasicCRUDControllerBase<TestDocumentStatusController, IDocumentStatusService, IDocumentStatusRepository, DocumentStatusDto, DocumentStatus, int>
|
public class TestDocumentStatusController : TestControllerBase<TestDocumentStatusController, IDocumentStatusService, IDocumentStatusRepository, DocumentStatusDto, DocumentStatus, int>
|
||||||
{
|
{
|
||||||
public TestDocumentStatusController(ILogger<TestDocumentStatusController> logger, IDocumentStatusService service) : base(logger, service)
|
public TestDocumentStatusController(ILogger<TestDocumentStatusController> logger, IDocumentStatusService service) : base(logger, service)
|
||||||
{
|
{
|
||||||
@@ -1,12 +1,11 @@
|
|||||||
using DigitalData.Core.API;
|
using EnvelopeGenerator.Application.Contracts;
|
||||||
using EnvelopeGenerator.Application.Contracts;
|
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Web.Controllers
|
namespace EnvelopeGenerator.Web.Controllers.Test
|
||||||
{
|
{
|
||||||
public class TestEmailTemplateController : CRUDControllerBase<TestEmailTemplateController, IEmailTemplateService, IEmailTemplateRepository, EmailTemplateDto, EmailTemplateDto, EmailTemplateDto, EmailTemplate, int>
|
public class TestEmailTemplateController : TestControllerBase<TestEmailTemplateController, IEmailTemplateService, IEmailTemplateRepository, EmailTemplateDto, EmailTemplate, int>
|
||||||
{
|
{
|
||||||
public TestEmailTemplateController(ILogger<TestEmailTemplateController> logger, IEmailTemplateService service) : base(logger, service)
|
public TestEmailTemplateController(ILogger<TestEmailTemplateController> logger, IEmailTemplateService service) : base(logger, service)
|
||||||
{
|
{
|
||||||
@@ -4,9 +4,9 @@ using EnvelopeGenerator.Application.DTOs;
|
|||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Web.Controllers
|
namespace EnvelopeGenerator.Web.Controllers.Test
|
||||||
{
|
{
|
||||||
public class TestEnvelopeCertificateController : BasicCRUDControllerBase<TestEnvelopeCertificateController, IEnvelopeCertificateService, IEnvelopeCertificateRepository, EnvelopeCertificateDto, EnvelopeCertificate, int>
|
public class TestEnvelopeCertificateController : TestControllerBase<TestEnvelopeCertificateController, IEnvelopeCertificateService, IEnvelopeCertificateRepository, EnvelopeCertificateDto, EnvelopeCertificate, int>
|
||||||
{
|
{
|
||||||
public TestEnvelopeCertificateController(ILogger<TestEnvelopeCertificateController> logger, IEnvelopeCertificateService service) : base(logger, service)
|
public TestEnvelopeCertificateController(ILogger<TestEnvelopeCertificateController> logger, IEnvelopeCertificateService service) : base(logger, service)
|
||||||
{
|
{
|
||||||
@@ -1,14 +1,13 @@
|
|||||||
using DigitalData.Core.API;
|
using EnvelopeGenerator.Application.Contracts;
|
||||||
using EnvelopeGenerator.Application.Contracts;
|
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
using EnvelopeGenerator.Application.Services;
|
using EnvelopeGenerator.Application.Services;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Web.Controllers
|
namespace EnvelopeGenerator.Web.Controllers.Test
|
||||||
{
|
{
|
||||||
public class TestEnvelopeController : CRUDControllerBase<TestEnvelopeController, IEnvelopeService, IEnvelopeRepository, EnvelopeDto, EnvelopeDto, EnvelopeDto, Envelope, int>
|
public class TestEnvelopeController : TestControllerBase<TestEnvelopeController, IEnvelopeService, IEnvelopeRepository, EnvelopeDto, Envelope, int>
|
||||||
{
|
{
|
||||||
public TestEnvelopeController(ILogger<TestEnvelopeController> logger, IEnvelopeService service) : base(logger, service)
|
public TestEnvelopeController(ILogger<TestEnvelopeController> logger, IEnvelopeService service) : base(logger, service)
|
||||||
{
|
{
|
||||||
@@ -21,7 +20,7 @@ namespace EnvelopeGenerator.Web.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public virtual async Task<IActionResult> GetAll([FromQuery] string? envelopeKey = default, [FromQuery] bool withDocuments = true, [FromQuery] bool withReceivers = true, [FromQuery] bool withHistory = true)
|
public virtual async Task<IActionResult> GetAll([FromQuery] string? envelopeKey = default, [FromQuery] bool withDocuments = false, [FromQuery] bool withReceivers = false, [FromQuery] bool withHistory = false, [FromQuery] bool withDocumentReceiverElement = false, [FromQuery] bool withAll = true)
|
||||||
{
|
{
|
||||||
if(envelopeKey is not null)
|
if(envelopeKey is not null)
|
||||||
{
|
{
|
||||||
@@ -30,7 +29,7 @@ namespace EnvelopeGenerator.Web.Controllers
|
|||||||
var envlopeServiceResult = await _service.ReadByUuidAsync(
|
var envlopeServiceResult = await _service.ReadByUuidAsync(
|
||||||
uuid: decoded.EnvelopeUuid,
|
uuid: decoded.EnvelopeUuid,
|
||||||
signature: decoded.ReceiverSignature,
|
signature: decoded.ReceiverSignature,
|
||||||
withDocuments: withDocuments, withReceivers: withReceivers, withHistory: withHistory);
|
withDocuments: withDocuments, withReceivers: withReceivers, withHistory: withHistory, withDocumentReceiverElement:withDocumentReceiverElement, withAll:withAll);
|
||||||
|
|
||||||
if (envlopeServiceResult.IsSuccess)
|
if (envlopeServiceResult.IsSuccess)
|
||||||
{
|
{
|
||||||
@@ -4,9 +4,9 @@ using EnvelopeGenerator.Application.DTOs;
|
|||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Web.Controllers
|
namespace EnvelopeGenerator.Web.Controllers.Test
|
||||||
{
|
{
|
||||||
public class TestEnvelopeDocumentController : BasicCRUDControllerBase<TestEnvelopeDocumentController, IEnvelopeDocumentService, IEnvelopeDocumentRepository, EnvelopeDocumentDto, EnvelopeDocument, int>
|
public class TestEnvelopeDocumentController : TestControllerBase<TestEnvelopeDocumentController, IEnvelopeDocumentService, IEnvelopeDocumentRepository, EnvelopeDocumentDto, EnvelopeDocument, int>
|
||||||
{
|
{
|
||||||
public TestEnvelopeDocumentController(ILogger<TestEnvelopeDocumentController> logger, IEnvelopeDocumentService service) : base(logger, service)
|
public TestEnvelopeDocumentController(ILogger<TestEnvelopeDocumentController> logger, IEnvelopeDocumentService service) : base(logger, service)
|
||||||
{
|
{
|
||||||
@@ -4,9 +4,9 @@ using EnvelopeGenerator.Application.DTOs;
|
|||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Web.Controllers
|
namespace EnvelopeGenerator.Web.Controllers.Test
|
||||||
{
|
{
|
||||||
public class TestEnvelopeHistoryController : BasicCRUDControllerBase<TestEnvelopeHistoryController, IEnvelopeHistoryService, IEnvelopeHistoryRepository, EnvelopeHistoryDto, EnvelopeHistory, long>
|
public class TestEnvelopeHistoryController : TestControllerBase<TestEnvelopeHistoryController, IEnvelopeHistoryService, IEnvelopeHistoryRepository, EnvelopeHistoryDto, EnvelopeHistory, long>
|
||||||
{
|
{
|
||||||
public TestEnvelopeHistoryController(ILogger<TestEnvelopeHistoryController> logger, IEnvelopeHistoryService service) : base(logger, service)
|
public TestEnvelopeHistoryController(ILogger<TestEnvelopeHistoryController> logger, IEnvelopeHistoryService service) : base(logger, service)
|
||||||
{
|
{
|
||||||
@@ -4,9 +4,9 @@ using EnvelopeGenerator.Application.DTOs;
|
|||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Web.Controllers
|
namespace EnvelopeGenerator.Web.Controllers.Test
|
||||||
{
|
{
|
||||||
public class TestEnvelopeReceiverController : BasicCRUDControllerBase<TestEnvelopeReceiverController, IEnvelopeReceiverService, IEnvelopeReceiverRepository, EnvelopeReceiverDto, EnvelopeReceiver, int>
|
public class TestEnvelopeReceiverController : TestControllerBase<TestEnvelopeReceiverController, IEnvelopeReceiverService, IEnvelopeReceiverRepository, EnvelopeReceiverDto, EnvelopeReceiver, int>
|
||||||
{
|
{
|
||||||
public TestEnvelopeReceiverController(ILogger<TestEnvelopeReceiverController> logger, IEnvelopeReceiverService service) : base(logger, service)
|
public TestEnvelopeReceiverController(ILogger<TestEnvelopeReceiverController> logger, IEnvelopeReceiverService service) : base(logger, service)
|
||||||
{
|
{
|
||||||
@@ -4,9 +4,9 @@ using EnvelopeGenerator.Application.DTOs;
|
|||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Web.Controllers
|
namespace EnvelopeGenerator.Web.Controllers.Test
|
||||||
{
|
{
|
||||||
public class TestEnvelopeTypeController : BasicCRUDControllerBase<TestEnvelopeTypeController, IEnvelopeTypeService, IEnvelopeTypeRepository, EnvelopeTypeDto, EnvelopeType, int>
|
public class TestEnvelopeTypeController : TestControllerBase<TestEnvelopeTypeController, IEnvelopeTypeService, IEnvelopeTypeRepository, EnvelopeTypeDto, EnvelopeType, int>
|
||||||
{
|
{
|
||||||
public TestEnvelopeTypeController(ILogger<TestEnvelopeTypeController> logger, IEnvelopeTypeService service) : base(logger, service)
|
public TestEnvelopeTypeController(ILogger<TestEnvelopeTypeController> logger, IEnvelopeTypeService service) : base(logger, service)
|
||||||
{
|
{
|
||||||
@@ -4,9 +4,9 @@ using EnvelopeGenerator.Application.DTOs;
|
|||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Web.Controllers
|
namespace EnvelopeGenerator.Web.Controllers.Test
|
||||||
{
|
{
|
||||||
public class TestReceiverController : BasicCRUDControllerBase<TestReceiverController, IReceiverService, IReceiverRepository, ReceiverDto, Receiver, int>
|
public class TestReceiverController : TestControllerBase<TestReceiverController, IReceiverService, IReceiverRepository, ReceiverDto, Receiver, int>
|
||||||
{
|
{
|
||||||
public TestReceiverController(ILogger<TestReceiverController> logger, IReceiverService service) : base(logger, service)
|
public TestReceiverController(ILogger<TestReceiverController> logger, IReceiverService service) : base(logger, service)
|
||||||
{
|
{
|
||||||
@@ -4,9 +4,9 @@ using EnvelopeGenerator.Application.DTOs;
|
|||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Web.Controllers
|
namespace EnvelopeGenerator.Web.Controllers.Test
|
||||||
{
|
{
|
||||||
public class TestUserReceiverController : BasicCRUDControllerBase<TestUserReceiverController, IUserReceiverService, IUserReceiverRepository, UserReceiverDto, UserReceiver, int>
|
public class TestUserReceiverController : TestControllerBase<TestUserReceiverController, IUserReceiverService, IUserReceiverRepository, UserReceiverDto, UserReceiver, int>
|
||||||
{
|
{
|
||||||
public TestUserReceiverController(ILogger<TestUserReceiverController> logger, IUserReceiverService service) : base(logger, service)
|
public TestUserReceiverController(ILogger<TestUserReceiverController> logger, IUserReceiverService service) : base(logger, service)
|
||||||
{
|
{
|
||||||
@@ -10,6 +10,7 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using NLog;
|
using NLog;
|
||||||
using Quartz;
|
using Quartz;
|
||||||
using NLog.Web;
|
using NLog.Web;
|
||||||
|
using DigitalData.Core.API;
|
||||||
|
|
||||||
var logger = LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger();
|
var logger = LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger();
|
||||||
logger.Info("Logging initialized!");
|
logger.Info("Logging initialized!");
|
||||||
@@ -27,7 +28,12 @@ try
|
|||||||
builder.Services.AddScoped<EnvelopeOldService>();
|
builder.Services.AddScoped<EnvelopeOldService>();
|
||||||
|
|
||||||
// Add services to the container.
|
// Add services to the container.
|
||||||
builder.Services.AddControllersWithViews().AddJsonOptions(q =>
|
builder.Services.AddControllersWithViews(options =>
|
||||||
|
{
|
||||||
|
options.Conventions.Add(new RemoveIfControllerConvention()
|
||||||
|
.AndIf(c => c.ControllerName.StartsWith("Test"))
|
||||||
|
.AndIf(c => !builder.Configuration.GetValue<bool>("AddTestControllers")));
|
||||||
|
}).AddJsonOptions(q =>
|
||||||
{
|
{
|
||||||
// Prevents serialization error when serializing SvgBitmap in EnvelopeReceiver
|
// Prevents serialization error when serializing SvgBitmap in EnvelopeReceiver
|
||||||
q.JsonSerializerOptions.ReferenceHandler = System.Text.Json.Serialization.ReferenceHandler.IgnoreCycles;
|
q.JsonSerializerOptions.ReferenceHandler = System.Text.Json.Serialization.ReferenceHandler.IgnoreCycles;
|
||||||
|
|||||||
@@ -44,7 +44,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
const collapseNav = () => {
|
const collapseNav = () => {
|
||||||
document.addEventListener('click', function (event) {
|
document.addEventListener('click', function (event) {
|
||||||
@@ -57,23 +56,34 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@{
|
|
||||||
var envelopeResponse = ViewData["EnvelopeResponse"];
|
|
||||||
var settings = new Newtonsoft.Json.JsonSerializerSettings
|
|
||||||
{
|
|
||||||
ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver()
|
|
||||||
};
|
|
||||||
var envelopeResponseJson = Newtonsoft.Json.JsonConvert.SerializeObject(envelopeResponse, settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
var envelopeResponse = @Html.Raw(envelopeResponseJson);
|
|
||||||
console.log(envelopeResponse);
|
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", async () => {
|
|
||||||
const app = new App("#app", "@ViewData["EnvelopeKey"]", envelopeResponse);
|
|
||||||
await app.init();
|
|
||||||
})
|
|
||||||
</script>
|
</script>
|
||||||
|
@if (ViewData["DocumentBytes"] is byte[] documentBytes)
|
||||||
|
{
|
||||||
|
var envelopeResponse = ViewData["EnvelopeResponse"];
|
||||||
|
var settings = new Newtonsoft.Json.JsonSerializerSettings
|
||||||
|
{
|
||||||
|
ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver()
|
||||||
|
};
|
||||||
|
var envelopeResponseJson = Newtonsoft.Json.JsonConvert.SerializeObject(envelopeResponse, settings);
|
||||||
|
|
||||||
|
var documentBase64String = Convert.ToBase64String(documentBytes);
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var base64String = "@Html.Raw(documentBase64String)";
|
||||||
|
var byteCharacters = atob(base64String);
|
||||||
|
var byteNumbers = new Array(byteCharacters.length);
|
||||||
|
for (var i = 0; i < byteCharacters.length; i++) {
|
||||||
|
byteNumbers[i] = byteCharacters.charCodeAt(i);
|
||||||
|
}
|
||||||
|
var byteArray = new Uint8Array(byteNumbers);
|
||||||
|
var documentArrayBuffer = byteArray.buffer;
|
||||||
|
|
||||||
|
var envelopeResponse = @Html.Raw(envelopeResponseJson);
|
||||||
|
document.addEventListener("DOMContentLoaded", async () => {
|
||||||
|
const app = new App("#app", "@ViewData["EnvelopeKey"]", envelopeResponse, documentArrayBuffer);
|
||||||
|
await app.init();
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
}
|
||||||
|
|
||||||
<div id='app' style='background: gray; width: 100vw; height: 100vh; margin: 0 auto;'></div>
|
<div id='app' style='background: gray; width: 100vw; height: 100vh; margin: 0 auto;'></div>
|
||||||
@@ -42,5 +42,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
"AddTestControllers": false
|
||||||
}
|
}
|
||||||
@@ -36,7 +36,6 @@
|
|||||||
const allAnnotations = await this.getAnnotations(instance)
|
const allAnnotations = await this.getAnnotations(instance)
|
||||||
const pageAnnotations = allAnnotations
|
const pageAnnotations = allAnnotations
|
||||||
.map((annotation) => {
|
.map((annotation) => {
|
||||||
console.log(annotation.toJS())
|
|
||||||
return annotation
|
return annotation
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -109,8 +108,6 @@
|
|||||||
const scale = 4
|
const scale = 4
|
||||||
const fontSize = 10
|
const fontSize = 10
|
||||||
|
|
||||||
console.log(receiverSignature)
|
|
||||||
|
|
||||||
canvas.width = width * scale
|
canvas.width = width * scale
|
||||||
canvas.height = height * scale
|
canvas.height = height * scale
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ const ActionType = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class App {
|
class App {
|
||||||
constructor(container, envelopeKey, envelopeResponse) {
|
constructor(container, envelopeKey, envelopeResponse, documentBytes) {
|
||||||
this.container = container
|
this.container = container
|
||||||
this.envelopeKey = envelopeKey
|
this.envelopeKey = envelopeKey
|
||||||
|
|
||||||
@@ -23,6 +23,7 @@ class App {
|
|||||||
this.currentReceiver = null
|
this.currentReceiver = null
|
||||||
this.signatureCount = 0
|
this.signatureCount = 0
|
||||||
this.envelopeResponse = envelopeResponse;
|
this.envelopeResponse = envelopeResponse;
|
||||||
|
this.documentBytes = documentBytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This function will be called from the ShowEnvelope.razor page
|
// This function will be called from the ShowEnvelope.razor page
|
||||||
@@ -47,9 +48,11 @@ class App {
|
|||||||
icon: 'error',
|
icon: 'error',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
console.log(documentResponse.data)
|
||||||
|
console.log(this.documentBytes)
|
||||||
|
|
||||||
const arrayBuffer = documentResponse.data
|
const arrayBuffer = this.documentBytes
|
||||||
|
console.log(arrayBuffer)
|
||||||
// Load PSPDFKit
|
// Load PSPDFKit
|
||||||
this.Instance = await this.UI.loadPSPDFKit(arrayBuffer, this.container)
|
this.Instance = await this.UI.loadPSPDFKit(arrayBuffer, this.container)
|
||||||
this.UI.configurePSPDFKit(this.Instance, this.handleClick.bind(this))
|
this.UI.configurePSPDFKit(this.Instance, this.handleClick.bind(this))
|
||||||
@@ -198,6 +201,7 @@ class App {
|
|||||||
// Export annotation data and save to database
|
// Export annotation data and save to database
|
||||||
try {
|
try {
|
||||||
const json = await this.Instance.exportInstantJSON()
|
const json = await this.Instance.exportInstantJSON()
|
||||||
|
console.log(json)
|
||||||
const postEnvelopeResult = await this.Network.postEnvelope(
|
const postEnvelopeResult = await this.Network.postEnvelope(
|
||||||
this.envelopeKey,
|
this.envelopeKey,
|
||||||
this.currentDocument.id,
|
this.currentDocument.id,
|
||||||
@@ -236,30 +240,11 @@ class App {
|
|||||||
.map(a => a.toJS())
|
.map(a => a.toJS())
|
||||||
.filter(a => a.isSignature)
|
.filter(a => a.isSignature)
|
||||||
|
|
||||||
console.log(annotations.length,"Signatures total!")
|
|
||||||
console.log(filtered.length,"Signatures signed!")
|
|
||||||
|
|
||||||
if (totalSignatures > filtered.length) {
|
if (totalSignatures > filtered.length) {
|
||||||
return false
|
return false
|
||||||
} else {
|
} else {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
/*this.Instance.getFormFields().then(formFields => {
|
|
||||||
formFields.forEach(formField => {
|
|
||||||
console.log(formField.name, formField.toJS());
|
|
||||||
});
|
|
||||||
|
|
||||||
// Filter form fields by type
|
|
||||||
formFields.filter(formField => (
|
|
||||||
formField instanceof PSPDFKit.FormFields.TextFormField
|
|
||||||
));
|
|
||||||
|
|
||||||
// Get the total number of form fields
|
|
||||||
const totalFormFields = formFields.size;
|
|
||||||
|
|
||||||
console.log(totalFormFields)
|
|
||||||
})*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async handleReset(event) {
|
async handleReset(event) {
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
* @param {any} envelopeKey
|
* @param {any} envelopeKey
|
||||||
*/
|
*/
|
||||||
async getEnvelope(envelopeKey) {
|
async getEnvelope(envelopeKey) {
|
||||||
console.log("getEnvelope")
|
|
||||||
return this.getRequest(`/api/envelope/${envelopeKey}`)
|
return this.getRequest(`/api/envelope/${envelopeKey}`)
|
||||||
.then(this.wrapJsonResponse.bind(this))
|
.then(this.wrapJsonResponse.bind(this))
|
||||||
}
|
}
|
||||||
@@ -17,7 +16,6 @@
|
|||||||
* @param {any} json
|
* @param {any} json
|
||||||
*/
|
*/
|
||||||
async postEnvelope(envelopeKey, documentId, json) {
|
async postEnvelope(envelopeKey, documentId, json) {
|
||||||
console.log("postEnvelope")
|
|
||||||
return this.postRequest(`/api/envelope/${envelopeKey}?index=${documentId}`, json)
|
return this.postRequest(`/api/envelope/${envelopeKey}?index=${documentId}`, json)
|
||||||
.then(this.wrapJsonResponse.bind(this))
|
.then(this.wrapJsonResponse.bind(this))
|
||||||
}
|
}
|
||||||
@@ -28,7 +26,6 @@
|
|||||||
* @param {any} documentId
|
* @param {any} documentId
|
||||||
*/
|
*/
|
||||||
async getDocument(envelopeKey, documentId) {
|
async getDocument(envelopeKey, documentId) {
|
||||||
console.log("getDocument", `/api/document/${envelopeKey}?index=${documentId}`)
|
|
||||||
return this.getRequest(`/api/document/${envelopeKey}?index=${documentId}`)
|
return this.getRequest(`/api/document/${envelopeKey}?index=${documentId}`)
|
||||||
.then(this.wrapBinaryResponse.bind(this))
|
.then(this.wrapBinaryResponse.bind(this))
|
||||||
}
|
}
|
||||||
@@ -38,7 +35,6 @@
|
|||||||
* @param {any} envelopeKey
|
* @param {any} envelopeKey
|
||||||
*/
|
*/
|
||||||
async openDocument(envelopeKey) {
|
async openDocument(envelopeKey) {
|
||||||
console.log("openDocument")
|
|
||||||
return this.postRequest(`/api/document/${envelopeKey}`, {})
|
return this.postRequest(`/api/document/${envelopeKey}`, {})
|
||||||
.then(this.wrapJsonResponse.bind(this))
|
.then(this.wrapJsonResponse.bind(this))
|
||||||
}
|
}
|
||||||
@@ -66,7 +62,6 @@
|
|||||||
*/
|
*/
|
||||||
getCSRFToken() {
|
getCSRFToken() {
|
||||||
const token = document.getElementsByName('__RequestVerificationToken')[0].value
|
const token = document.getElementsByName('__RequestVerificationToken')[0].value
|
||||||
console.log(token)
|
|
||||||
return { 'X-XSRF-TOKEN': token }
|
return { 'X-XSRF-TOKEN': token }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,10 +138,6 @@
|
|||||||
async wrapResponse(response, responseHandler) {
|
async wrapResponse(response, responseHandler) {
|
||||||
let wrappedResponse
|
let wrappedResponse
|
||||||
|
|
||||||
console.log("Handling response from", response.url)
|
|
||||||
console.log("Status", response.status)
|
|
||||||
console.log(response)
|
|
||||||
|
|
||||||
if (response.status === 200) {
|
if (response.status === 200) {
|
||||||
const data = await responseHandler(response)
|
const data = await responseHandler(response)
|
||||||
wrappedResponse = new WrappedResponse(data, null)
|
wrappedResponse = new WrappedResponse(data, null)
|
||||||
@@ -157,8 +148,6 @@
|
|||||||
wrappedResponse = new WrappedResponse(null, null)
|
wrappedResponse = new WrappedResponse(null, null)
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("Wrapped response", wrappedResponse)
|
|
||||||
|
|
||||||
return wrappedResponse
|
return wrappedResponse
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,7 +76,6 @@
|
|||||||
className: 'button-reset',
|
className: 'button-reset',
|
||||||
title: 'Zurücksetzen',
|
title: 'Zurücksetzen',
|
||||||
onPress() {
|
onPress() {
|
||||||
console.log('RESET')
|
|
||||||
callback('RESET')
|
callback('RESET')
|
||||||
},
|
},
|
||||||
icon: `<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-arrow-counterclockwise" viewBox="0 0 16 16">
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-arrow-counterclockwise" viewBox="0 0 16 16">
|
||||||
@@ -90,7 +89,6 @@
|
|||||||
className: 'button-reject',
|
className: 'button-reject',
|
||||||
title: 'Ablehnen',
|
title: 'Ablehnen',
|
||||||
onPress() {
|
onPress() {
|
||||||
console.log('REJECT')
|
|
||||||
callback('REJECT')
|
callback('REJECT')
|
||||||
},
|
},
|
||||||
icon: `<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-hand-thumbs-down" viewBox="0 0 16 16">
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-hand-thumbs-down" viewBox="0 0 16 16">
|
||||||
@@ -103,7 +101,6 @@
|
|||||||
className: 'button-finish',
|
className: 'button-finish',
|
||||||
title: 'Abschließen',
|
title: 'Abschließen',
|
||||||
onPress() {
|
onPress() {
|
||||||
console.log('FINISH')
|
|
||||||
callback('FINISH')
|
callback('FINISH')
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -795,7 +795,7 @@ $.extend( $.validator, {
|
|||||||
}
|
}
|
||||||
} catch ( e ) {
|
} catch ( e ) {
|
||||||
if ( this.settings.debug && window.console ) {
|
if ( this.settings.debug && window.console ) {
|
||||||
console.log( "Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.", e );
|
console.error( "Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.", e );
|
||||||
}
|
}
|
||||||
if ( e instanceof TypeError ) {
|
if ( e instanceof TypeError ) {
|
||||||
e.message += ". Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.";
|
e.message += ". Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.";
|
||||||
|
|||||||
Reference in New Issue
Block a user