Compare commits
250 Commits
9620cb7189
...
customer/C
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dd7454d38e | ||
|
|
f7c3ed280a | ||
|
|
9ffeb7afe8 | ||
|
|
a83994af43 | ||
|
|
8345034fcd | ||
|
|
a763d3c353 | ||
|
|
5ba5d2755b | ||
|
|
8629599f86 | ||
|
|
d166ae5a8b | ||
|
|
145d139e3a | ||
|
|
d3ce34ee31 | ||
|
|
fd61d4431f | ||
|
|
93417d1b37 | ||
|
|
ca3ea36a83 | ||
|
|
c59d9bbf57 | ||
|
|
0cf1cd10c0 | ||
|
|
1da73d1754 | ||
|
|
24037f8366 | ||
|
|
91b891513f | ||
|
|
e7d1f1574f | ||
|
|
80a3a26af8 | ||
|
|
9905ea5a12 | ||
|
|
a7a77cd491 | ||
|
|
f795b1447f | ||
|
|
e5e12bfb61 | ||
|
|
6a8baf08ed | ||
|
|
10ac34a9f7 | ||
|
|
72af1cc2a2 | ||
|
|
cd32ae2a35 | ||
|
|
ddc0c9c6f3 | ||
|
|
489c2a2a9f | ||
|
|
320e81719b | ||
|
|
66a8471f05 | ||
|
|
c7a4ef4722 | ||
|
|
1673ea81df | ||
|
|
306956a7be | ||
|
|
bfe3d38ecc | ||
|
|
6e5bb58f65 | ||
|
|
b96c6c10f8 | ||
|
|
afedfdd596 | ||
|
|
3a7099feb4 | ||
|
|
c704d222f0 | ||
|
|
83ce528e2f | ||
|
|
9cc15f9beb | ||
|
|
d323244157 | ||
|
|
56d35c65bb | ||
|
|
15eabfc834 | ||
|
|
11e8c46e44 | ||
|
|
a14bd78415 | ||
|
|
609f7d09fc | ||
|
|
4c21cb4ba7 | ||
|
|
00ebf45605 | ||
|
|
387777972b | ||
|
|
b7569982ff | ||
|
|
d6be88b61d | ||
|
|
8e454a0419 | ||
|
|
f8932e14c0 | ||
|
|
812bf9b25a | ||
|
|
0d591d5350 | ||
|
|
c9712af73e | ||
|
|
da483706b1 | ||
|
|
4b600cb190 | ||
|
|
25a56a22fa | ||
|
|
4e81f0949c | ||
|
|
18e79cf516 | ||
|
|
fad0a6070c | ||
|
|
755fcfeef2 | ||
|
|
40739b598b | ||
|
|
9782503d1d | ||
|
|
35ced9b9ad | ||
|
|
9b28c0a1d1 | ||
|
|
fd19c5be58 | ||
|
|
58b13e233c | ||
|
|
ce55066208 | ||
|
|
7d582d2422 | ||
|
|
fe1d553a8d | ||
|
|
99c05a44f5 | ||
|
|
678360953d | ||
|
|
9867e81220 | ||
|
|
49cfc3c044 | ||
|
|
43ae15b71c | ||
|
|
1c2df71e0f | ||
|
|
a806ec27db | ||
|
|
14bd2e22fc | ||
|
|
f94728bf67 | ||
|
|
caeaf1774e | ||
|
|
1388b40a6b | ||
|
|
e44d5f644c | ||
|
|
fe9fd3024e | ||
|
|
b664e35b11 | ||
|
|
a77a31121f | ||
|
|
381de6b554 | ||
|
|
13bd727b3e | ||
|
|
9021291aef | ||
|
|
8bd7ab13d0 | ||
|
|
8eefd94569 | ||
|
|
b3b2baf0e4 | ||
|
|
836380048a | ||
|
|
f105aaa567 | ||
|
|
6238d66ca2 | ||
|
|
7e325a7eb6 | ||
|
|
c91446c5ac | ||
| eaf4cd773d | |||
| 8950482bac | |||
|
|
b615446274 | ||
|
|
f276735b5c | ||
|
|
31aa5829f6 | ||
| 27a5538229 | |||
| 322fb2fd7e | |||
| 8e33094806 | |||
| 54b246f8e4 | |||
|
|
5c51ea679e | ||
|
|
e264a10a36 | ||
| 2f8aed8640 | |||
| 29eac347c3 | |||
|
|
dd6ab13e6e | ||
|
|
d94d9f045e | ||
|
|
12bfcb1f25 | ||
|
|
63613f2073 | ||
|
|
1c11a0e8f0 | ||
|
|
d376065246 | ||
|
|
4166dfde4b | ||
|
|
1bc43a5a77 | ||
|
|
33f4c6e489 | ||
|
|
a4b880f1d2 | ||
| a7f38eafb2 | |||
| 67a8506a37 | |||
|
|
ecec1e1206 | ||
|
|
854ed45abd | ||
|
|
c0cece62af | ||
|
|
408969d6dd | ||
|
|
9e019c0b69 | ||
|
|
2f4ffac9c4 | ||
|
|
6464a591a8 | ||
|
|
56df8234c7 | ||
|
|
95958f2a1d | ||
|
|
39cc257466 | ||
|
|
c4a66ee5bb | ||
|
|
cc3f6efbd7 | ||
|
|
c0a6103eb2 | ||
|
|
79bb454fd1 | ||
|
|
fc91a451f6 | ||
|
|
1efd241ab0 | ||
|
|
e8ff922726 | ||
|
|
8f3e72ae8b | ||
|
|
9279f8e79a | ||
|
|
1b2a316e5f | ||
|
|
36d305a1e8 | ||
|
|
963a36acfa | ||
|
|
30ee71eaf5 | ||
|
|
5f161d81f2 | ||
|
|
4d040959a5 | ||
|
|
5846a7433c | ||
|
|
2f41a993ee | ||
|
|
eac7454989 | ||
|
|
8c767a73b4 | ||
|
|
9e33fc1d96 | ||
|
|
23bf7579f6 | ||
|
|
13b9394073 | ||
|
|
af27163b08 | ||
|
|
155726a6b0 | ||
|
|
9f8142a5d6 | ||
|
|
0f97c325cf | ||
|
|
7961fcbf0f | ||
|
|
a1d251d705 | ||
|
|
07ad18eccb | ||
|
|
bf23fceb6b | ||
|
|
2dc860b923 | ||
|
|
9b2c5d9ca5 | ||
|
|
76bfb895a9 | ||
|
|
38aa6a6217 | ||
|
|
0268756cf9 | ||
|
|
f509cc8b3b | ||
|
|
290a1dd522 | ||
|
|
2c147f44b7 | ||
|
|
3fd2f90f65 | ||
|
|
d077a66796 | ||
|
|
f16a8bcdb9 | ||
|
|
33f161a5fe | ||
|
|
7697939d7e | ||
|
|
34b3c46720 | ||
|
|
65618e5df9 | ||
|
|
8d5493969f | ||
|
|
0818b8d606 | ||
|
|
047c4d09e8 | ||
|
|
26f2e157c6 | ||
|
|
f26f400937 | ||
|
|
0e4cfc452f | ||
|
|
95b80a650c | ||
|
|
f4dd17fca9 | ||
|
|
e4aed5309e | ||
|
|
c31f081208 | ||
| 76d4151182 | |||
| df2537bf29 | |||
| 5ca4c04669 | |||
| 297ecfab7b | |||
| 48db26931c | |||
|
|
21934928c2 | ||
|
|
21e8a86a99 | ||
|
|
0228e82c63 | ||
|
|
50247517b9 | ||
|
|
1357b714cf | ||
|
|
88da8e4ace | ||
|
|
89290c03f9 | ||
|
|
3b27260b14 | ||
|
|
9fa5827b09 | ||
|
|
3448c17d8b | ||
|
|
48ec83161d | ||
|
|
cc63b24947 | ||
|
|
c3db8d0d00 | ||
|
|
037ebfbe5c | ||
|
|
42258cbbb8 | ||
|
|
4c96274084 | ||
|
|
b594ddb646 | ||
|
|
b60ae62779 | ||
|
|
7863e861c7 | ||
|
|
2014f6149d | ||
|
|
60afdc23da | ||
|
|
90ac81c576 | ||
|
|
8d6d483c5d | ||
|
|
824bf6fb82 | ||
|
|
0c6fd2efe3 | ||
|
|
1f4cf54406 | ||
|
|
a6635f4a20 | ||
|
|
ed25482cee | ||
|
|
1664b5739e | ||
|
|
0ef9d3c49e | ||
|
|
86bdb233c2 | ||
|
|
bc6972bcfb | ||
|
|
2e66129485 | ||
|
|
81220ac9b4 | ||
|
|
d7252ce888 | ||
|
|
ba723bdddb | ||
|
|
68714c2937 | ||
|
|
cf9286e4c3 | ||
|
|
87a766a2e8 | ||
|
|
674d753735 | ||
|
|
c688a42e45 | ||
|
|
db83f25d57 | ||
|
|
ef6e921451 | ||
|
|
dd18094deb | ||
|
|
4f61f1b6cb | ||
|
|
efcd254749 | ||
|
|
357866ea44 | ||
|
|
d8617093ce | ||
|
|
b19cccdc34 | ||
|
|
79aa6f4cb3 | ||
|
|
a285a0b9c2 | ||
|
|
84442410a5 | ||
|
|
22a3ec914d |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -360,4 +360,6 @@ MigrationBackup/
|
|||||||
.ionide/
|
.ionide/
|
||||||
|
|
||||||
# Fody - auto-generated XML schema
|
# Fody - auto-generated XML schema
|
||||||
FodyWeavers.xsd
|
FodyWeavers.xsd
|
||||||
|
/EnvelopeGenerator.Web/.config/dotnet-tools.json
|
||||||
|
/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/.vscode
|
||||||
|
|||||||
@@ -1,15 +1,17 @@
|
|||||||
using DigitalData.Core.Contracts.Application;
|
using DigitalData.Core.Abstractions.Application;
|
||||||
using DigitalData.Core.DTO;
|
using DigitalData.Core.DTO;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Contracts
|
namespace EnvelopeGenerator.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IConfigService : IBasicCRUDService<IConfigRepository, ConfigDto, Config, int>
|
public interface IConfigService : IBasicCRUDService<ConfigDto, Config, int>
|
||||||
{
|
{
|
||||||
Task<DataResult<ConfigDto>> ReadFirstAsync();
|
Task<DataResult<ConfigDto>> ReadFirstAsync();
|
||||||
|
|
||||||
async Task<DataResult<ConfigDto>> ReadDefaultAsync() => await ReadFirstAsync();
|
Task<ConfigDto> ReadDefaultAsync();
|
||||||
}
|
|
||||||
|
Task<string> ReadDefaultSignatureHost();
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,10 @@
|
|||||||
using DigitalData.Core.Contracts.Application;
|
using DigitalData.Core.Abstractions.Application;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Contracts
|
namespace EnvelopeGenerator.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IDocumentReceiverElementService : IBasicCRUDService<IDocumentReceiverElementRepository, DocumentReceiverElementDto, DocumentReceiverElement, int>
|
public interface IDocumentReceiverElementService : IBasicCRUDService<DocumentReceiverElementDto, DocumentReceiverElement, int>
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,9 @@
|
|||||||
using DigitalData.Core.Contracts.Application;
|
using DigitalData.Core.Abstractions.Application;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Contracts
|
namespace EnvelopeGenerator.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IDocumentStatusService : IBasicCRUDService<IDocumentStatusRepository, DocumentStatusDto, DocumentStatus, int>
|
public interface IDocumentStatusService : IBasicCRUDService<DocumentStatusDto, DocumentStatus, int>
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
using DigitalData.Core.Contracts.Application;
|
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Contracts
|
|
||||||
{
|
|
||||||
public interface IEmailOutService : IBasicCRUDService<IEmailOutRepository, EmailOutDto, EmailOut, int>
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
using DigitalData.Core.Contracts.Application;
|
using DigitalData.Core.Abstractions.Application;
|
||||||
|
using DigitalData.Core.DTO;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using static EnvelopeGenerator.Common.Constants;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Contracts
|
namespace EnvelopeGenerator.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IEmailTemplateService : IBasicCRUDService<IEmailTemplateRepository, EmailTemplateDto, EmailTemplate, int>
|
public interface IEmailTemplateService : IBasicCRUDService<EmailTemplateDto, EmailTemplate, int>
|
||||||
{
|
{
|
||||||
|
Task<DataResult<EmailTemplateDto>> ReadByNameAsync(EmailTemplateType type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,10 @@
|
|||||||
using DigitalData.Core.Contracts.Application;
|
using DigitalData.Core.Abstractions.Application;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Contracts
|
namespace EnvelopeGenerator.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IEnvelopeCertificateService : IBasicCRUDService<IEnvelopeCertificateRepository, EnvelopeCertificateDto, EnvelopeCertificate, int>
|
public interface IEnvelopeCertificateService : IBasicCRUDService<EnvelopeCertificateDto, EnvelopeCertificate, int>
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,10 @@
|
|||||||
using DigitalData.Core.Contracts.Application;
|
using DigitalData.Core.Abstractions.Application;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Contracts
|
namespace EnvelopeGenerator.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IEnvelopeDocumentService : IBasicCRUDService<IEnvelopeDocumentRepository, EnvelopeDocumentDto, EnvelopeDocument, int>
|
public interface IEnvelopeDocumentService : IBasicCRUDService<EnvelopeDocumentDto, EnvelopeDocument, int>
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,15 +1,29 @@
|
|||||||
using DigitalData.Core.Contracts.Application;
|
using DigitalData.Core.Abstractions.Application;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using DigitalData.Core.DTO;
|
||||||
|
using EnvelopeGenerator.Application.DTOs.EnvelopeHistory;
|
||||||
|
using EnvelopeGenerator.Application.DTOs.Receiver;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
using static EnvelopeGenerator.Common.Constants;
|
using static EnvelopeGenerator.Common.Constants;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Contracts
|
namespace EnvelopeGenerator.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IEnvelopeHistoryService : IBasicCRUDService<IEnvelopeHistoryRepository, EnvelopeHistoryDto, EnvelopeHistory, long>
|
public interface IEnvelopeHistoryService : ICRUDService<EnvelopeHistoryCreateDto, EnvelopeHistoryDto, EnvelopeHistoryDto, EnvelopeHistory, long>
|
||||||
{
|
{
|
||||||
Task<int> CountAsync(int? envelopeId = null, string? userReference = null, int? status = null);
|
Task<int> CountAsync(int? envelopeId = null, string? userReference = null, int? status = null);
|
||||||
|
|
||||||
Task<bool> AccessCodeAlreadyRequested(int envelopeId, string userReference);
|
Task<bool> AccessCodeAlreadyRequested(int envelopeId, string userReference);
|
||||||
|
|
||||||
|
Task<bool> IsSigned(int envelopeId, string userReference);
|
||||||
|
|
||||||
|
Task<bool> IsRejected(int envelopeId, string? userReference = null);
|
||||||
|
|
||||||
|
Task<IEnumerable<EnvelopeHistoryDto>> ReadAsync(int? envelopeId = null, string? userReference = null, ReferenceType? referenceType = null, int? status = null, bool withSender = false, bool withReceiver = false);
|
||||||
|
|
||||||
|
Task<IEnumerable<EnvelopeHistoryDto>> ReadRejectedAsync(int envelopeId, string? userReference = null);
|
||||||
|
|
||||||
|
Task<IEnumerable<ReceiverReadDto>> ReadRejectingReceivers(int envelopeId);
|
||||||
|
|
||||||
|
Task<DataResult<long>> RecordAsync(int envelopeId, string userReference, EnvelopeStatus status, string? comment = null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
using DigitalData.Core.DTO;
|
||||||
|
using DigitalData.EmailProfilerDispatcher.Abstraction.Contracts;
|
||||||
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
|
using EnvelopeGenerator.Common;
|
||||||
|
|
||||||
|
namespace EnvelopeGenerator.Application.Contracts
|
||||||
|
{
|
||||||
|
public interface IEnvelopeMailService : IEmailOutService
|
||||||
|
{
|
||||||
|
Task<DataResult<int>> SendAsync(EnvelopeReceiverDto envelopeReceiverDto, Constants.EmailTemplateType tempType);
|
||||||
|
Task<DataResult<int>> SendAccessCodeAsync(EnvelopeReceiverDto envelopeReceiverDto);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,12 +1,11 @@
|
|||||||
using DigitalData.Core.Contracts.Application;
|
using DigitalData.Core.Abstractions.Application;
|
||||||
using DigitalData.Core.DTO;
|
using DigitalData.Core.DTO;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Contracts
|
namespace EnvelopeGenerator.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IEnvelopeReceiverService : IBasicCRUDService<IEnvelopeReceiverRepository, EnvelopeReceiverDto, EnvelopeReceiver, int>
|
public interface IEnvelopeReceiverService : IBasicCRUDService<EnvelopeReceiverDto, EnvelopeReceiver, object>
|
||||||
{
|
{
|
||||||
|
|
||||||
Task<DataResult<IEnumerable<EnvelopeReceiverDto>>> ReadByUuidAsync(string uuid, bool withEnvelope = true, bool withReceiver = false);
|
Task<DataResult<IEnumerable<EnvelopeReceiverDto>>> ReadByUuidAsync(string uuid, bool withEnvelope = true, bool withReceiver = false);
|
||||||
@@ -17,10 +16,14 @@ namespace EnvelopeGenerator.Application.Contracts
|
|||||||
|
|
||||||
Task<DataResult<EnvelopeReceiverDto>> ReadByEnvelopeReceiverIdAsync(string envelopeReceiverId, bool withEnvelope = true, bool withReceiver = true);
|
Task<DataResult<EnvelopeReceiverDto>> ReadByEnvelopeReceiverIdAsync(string envelopeReceiverId, bool withEnvelope = true, bool withReceiver = true);
|
||||||
|
|
||||||
Task<DataResult<bool>> VerifyAccessCodeAsync(string uuid, string signature, string accessCode);
|
Task<DataResult<string>> ReadAccessCodeByIdAsync(int envelopeId, int receiverId);
|
||||||
|
|
||||||
|
Task<DataResult<bool>> VerifyAccessCodeAsync(string uuid, string signature, string accessCode);
|
||||||
|
|
||||||
Task<DataResult<bool>> VerifyAccessCodeAsync(string envelopeReceiverId, string accessCode);
|
Task<DataResult<bool>> VerifyAccessCodeAsync(string envelopeReceiverId, string accessCode);
|
||||||
|
|
||||||
Task<DataResult<bool>> IsExisting(string envelopeReceiverId);
|
Task<DataResult<bool>> IsExisting(string envelopeReceiverId);
|
||||||
|
|
||||||
|
Task<DataResult<IEnumerable<EnvelopeReceiverDto>>> ReadByUsernameAsync(string username, int? min_status = null, int? max_status = null, params int[] ignore_statuses);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
using DigitalData.Core.Contracts.Application;
|
using DigitalData.Core.Abstractions.Application;
|
||||||
using DigitalData.Core.DTO;
|
using DigitalData.Core.DTO;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
@@ -6,7 +6,7 @@ using EnvelopeGenerator.Infrastructure.Contracts;
|
|||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Contracts
|
namespace EnvelopeGenerator.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IEnvelopeService : IBasicCRUDService<IEnvelopeRepository, EnvelopeDto, Envelope, int>
|
public interface IEnvelopeService : IBasicCRUDService<EnvelopeDto, Envelope, int>
|
||||||
{
|
{
|
||||||
Task<DataResult<IEnumerable<EnvelopeDto>>> ReadAllWithAsync(bool documents = false, bool history = false, bool documentReceiverElement = false);
|
Task<DataResult<IEnumerable<EnvelopeDto>>> ReadAllWithAsync(bool documents = false, bool history = false, bool documentReceiverElement = false);
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
using DigitalData.Core.Contracts.Application;
|
using DigitalData.Core.Abstractions.Application;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Contracts
|
namespace EnvelopeGenerator.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IEnvelopeTypeService : IBasicCRUDService<IEnvelopeTypeRepository, EnvelopeTypeDto, EnvelopeType, int>
|
public interface IEnvelopeTypeService : IBasicCRUDService<EnvelopeTypeDto, EnvelopeType, int>
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,14 @@
|
|||||||
using DigitalData.Core.Contracts.Application;
|
using DigitalData.Core.Abstractions.Application;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using DigitalData.Core.DTO;
|
||||||
|
using EnvelopeGenerator.Application.DTOs.Receiver;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Contracts
|
namespace EnvelopeGenerator.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IReceiverService : IBasicCRUDService<IReceiverRepository, ReceiverDto, Receiver, int>
|
public interface IReceiverService : ICRUDService<ReceiverCreateDto, ReceiverReadDto, ReceiverUpdateDto, Receiver, int>
|
||||||
{
|
{
|
||||||
|
public Task<DataResult<ReceiverReadDto>> ReadByAsync(string? emailAddress = null, string? signature = null);
|
||||||
|
|
||||||
|
public Task<Result> DeleteByAsync(string? emailAddress = null, string? signature = null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
using DigitalData.Core.Contracts.Application;
|
using DigitalData.Core.Abstractions.Application;
|
||||||
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.Application.Contracts
|
namespace EnvelopeGenerator.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IUserReceiverService : IBasicCRUDService<IUserReceiverRepository, UserReceiverDto, UserReceiver, int>
|
public interface IUserReceiverService : IBasicCRUDService<UserReceiverDto, UserReceiver, int>
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
57
EnvelopeGenerator.Application/DIExtensions.cs
Normal file
57
EnvelopeGenerator.Application/DIExtensions.cs
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
using DigitalData.UserManager.Application.MappingProfiles;
|
||||||
|
using EnvelopeGenerator.Application.Contracts;
|
||||||
|
using EnvelopeGenerator.Application.MappingProfiles;
|
||||||
|
using EnvelopeGenerator.Application.Services;
|
||||||
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
|
using EnvelopeGenerator.Infrastructure.Repositories;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace EnvelopeGenerator.Application
|
||||||
|
{
|
||||||
|
public static class DIExtensions
|
||||||
|
{
|
||||||
|
public static IServiceCollection AddEnvelopeGenerator(this IServiceCollection services)
|
||||||
|
{
|
||||||
|
//Inject CRUD Service and repositoriesad
|
||||||
|
services.AddScoped<IConfigRepository, ConfigRepository>();
|
||||||
|
services.AddScoped<IDocumentReceiverElementRepository, DocumentReceiverElementRepository>();
|
||||||
|
services.AddScoped<IEnvelopeDocumentRepository, EnvelopeDocumentRepository>();
|
||||||
|
services.AddScoped<IConfigRepository, ConfigRepository>();
|
||||||
|
services.AddScoped<IDocumentReceiverElementRepository, DocumentReceiverElementRepository>();
|
||||||
|
services.AddScoped<IDocumentStatusRepository, DocumentStatusRepository>();
|
||||||
|
services.AddScoped<IEmailTemplateRepository, EmailTemplateRepository>();
|
||||||
|
services.AddScoped<IEnvelopeRepository, EnvelopeRepository>();
|
||||||
|
services.AddScoped<IEnvelopeCertificateRepository, EnvelopeCertificateRepository>();
|
||||||
|
services.AddScoped<IEnvelopeDocumentRepository, EnvelopeDocumentRepository>();
|
||||||
|
services.AddScoped<IEnvelopeHistoryRepository, EnvelopeHistoryRepository>();
|
||||||
|
services.AddScoped<IEnvelopeReceiverRepository, EnvelopeReceiverRepository>();
|
||||||
|
services.AddScoped<IEnvelopeTypeRepository, EnvelopeTypeRepository>();
|
||||||
|
services.AddScoped<IReceiverRepository, ReceiverRepository>();
|
||||||
|
services.AddScoped<IUserReceiverRepository, UserReceiverRepository>();
|
||||||
|
services.AddScoped<IConfigService, ConfigService>();
|
||||||
|
services.AddScoped<IDocumentReceiverElementService, DocumentReceiverElementService>();
|
||||||
|
services.AddScoped<IEnvelopeDocumentService, EnvelopeDocumentService>();
|
||||||
|
services.AddScoped<IEnvelopeHistoryService, EnvelopeHistoryService>();
|
||||||
|
services.AddScoped<IDocumentStatusService, DocumentStatusService>();
|
||||||
|
services.AddScoped<IEmailTemplateService, EmailTemplateService>();
|
||||||
|
services.AddScoped<IEnvelopeService, EnvelopeService>();
|
||||||
|
services.AddScoped<IEnvelopeCertificateService, EnvelopeCertificateService>();
|
||||||
|
services.AddScoped<IEnvelopeDocumentService, EnvelopeDocumentService>();
|
||||||
|
services.AddScoped<IEnvelopeReceiverService, EnvelopeReceiverService>();
|
||||||
|
services.AddScoped<IEnvelopeTypeService, EnvelopeTypeService>();
|
||||||
|
services.AddScoped<IReceiverService, ReceiverService>();
|
||||||
|
services.AddScoped<IUserReceiverService, UserReceiverService>();
|
||||||
|
|
||||||
|
//Auto mapping profiles
|
||||||
|
services.AddAutoMapper(typeof(BasicDtoMappingProfile).Assembly);
|
||||||
|
services.AddAutoMapper(typeof(UserMappingProfile).Assembly);
|
||||||
|
|
||||||
|
return services;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,8 +5,8 @@
|
|||||||
int DocumentId,
|
int DocumentId,
|
||||||
int ReceiverId,
|
int ReceiverId,
|
||||||
int ElementType,
|
int ElementType,
|
||||||
double PositionX,
|
double X,
|
||||||
double PositionY,
|
double Y,
|
||||||
double Width,
|
double Width,
|
||||||
double Height,
|
double Height,
|
||||||
int Page,
|
int Page,
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
namespace EnvelopeGenerator.Application.DTOs
|
|
||||||
{
|
|
||||||
public record EmailOutDto(
|
|
||||||
int Guid,
|
|
||||||
int ReminderTypeId,
|
|
||||||
int SendingProfile,
|
|
||||||
int ReferenceId,
|
|
||||||
string? ReferenceString,
|
|
||||||
int? EntityId,
|
|
||||||
int WfId,
|
|
||||||
string? WfReference,
|
|
||||||
string EmailAdress,
|
|
||||||
string EmailSubj,
|
|
||||||
string EmailBody,
|
|
||||||
string? EmailAttmt1,
|
|
||||||
DateTime? EmailSent,
|
|
||||||
string? Comment,
|
|
||||||
string AddedWho,
|
|
||||||
DateTime? AddedWhen,
|
|
||||||
string? ChangedWho,
|
|
||||||
DateTime? ChangedWhen,
|
|
||||||
DateTime? ErrorTimestamp,
|
|
||||||
string? ErrorMsg
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -4,10 +4,7 @@
|
|||||||
(
|
(
|
||||||
int Id,
|
int Id,
|
||||||
int EnvelopeId,
|
int EnvelopeId,
|
||||||
string Filename,
|
|
||||||
string Filepath,
|
|
||||||
DateTime AddedWhen,
|
DateTime AddedWhen,
|
||||||
string FilenameOriginal,
|
|
||||||
IEnumerable<DocumentReceiverElementDto>? Elements
|
IEnumerable<DocumentReceiverElementDto>? Elements
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1,38 +1,66 @@
|
|||||||
using DigitalData.UserManager.Domain.Entities;
|
using DigitalData.EmailProfilerDispatcher.Abstraction.Attributes;
|
||||||
|
using DigitalData.UserManager.Application.DTOs.User;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.DTOs
|
namespace EnvelopeGenerator.Application.DTOs
|
||||||
{
|
{
|
||||||
public record EnvelopeDto(
|
public record EnvelopeDto()
|
||||||
int Id,
|
{
|
||||||
int UserId,
|
public int Id { get; set; }
|
||||||
int Status,
|
|
||||||
string Uuid,
|
public int UserId { get; set; }
|
||||||
string Message,
|
|
||||||
DateTime? ExpiresWhen,
|
public int Status { get; set; }
|
||||||
DateTime? ExpiresWarningWhen,
|
|
||||||
DateTime AddedWhen,
|
public string StatusName { get; set; }
|
||||||
DateTime? ChangedWhen,
|
|
||||||
string Title,
|
public string Uuid { get; set; }
|
||||||
int? ContractType,
|
|
||||||
string Language,
|
[TemplatePlaceholder("[MESSAGE]")]
|
||||||
bool? SendReminderEmails,
|
public string Message { get; set; }
|
||||||
int? FirstReminderDays,
|
public DateTime? ExpiresWhen { get; set; }
|
||||||
int? ReminderIntervalDays,
|
public DateTime? ExpiresWarningWhen { get; set; }
|
||||||
int? EnvelopeTypeId,
|
public DateTime AddedWhen { get; set; }
|
||||||
int? CertificationType,
|
public DateTime? ChangedWhen { get; set; }
|
||||||
bool? UseAccessCode,
|
|
||||||
int? FinalEmailToCreator,
|
[TemplatePlaceholder("[DOCUMENT_TITLE]")]
|
||||||
int? FinalEmailToReceivers,
|
public string Title { get; set; }
|
||||||
int? ExpiresWhenDays,
|
|
||||||
int? ExpiresWarningWhenDays,
|
public int? ContractType { get; set; }
|
||||||
bool DmzMoved,
|
|
||||||
User? User,
|
public string Language { get; set; }
|
||||||
EnvelopeType? EnvelopeType,
|
|
||||||
string? EnvelopeTypeTitle,
|
public bool? SendReminderEmails { get; set; }
|
||||||
bool IsAlreadySent,
|
|
||||||
string? StatusTranslated,
|
public int? FirstReminderDays { get; set; }
|
||||||
string? ContractTypeTranslated,
|
|
||||||
IEnumerable<EnvelopeDocumentDto>? Documents,
|
public int? ReminderIntervalDays { get; set; }
|
||||||
IEnumerable<EnvelopeHistoryDto>? History);
|
|
||||||
|
public int? EnvelopeTypeId { get; set; }
|
||||||
|
|
||||||
|
public int? CertificationType { get; set; }
|
||||||
|
|
||||||
|
public bool? UseAccessCode { get; set; }
|
||||||
|
|
||||||
|
public int? FinalEmailToCreator { get; set; }
|
||||||
|
|
||||||
|
public int? FinalEmailToReceivers { get; set; }
|
||||||
|
|
||||||
|
public int? ExpiresWhenDays { get; set; }
|
||||||
|
|
||||||
|
public int? ExpiresWarningWhenDays { get; set; }
|
||||||
|
|
||||||
|
public bool DmzMoved { get; set; }
|
||||||
|
public UserReadDto? User { get; set; }
|
||||||
|
public EnvelopeType? EnvelopeType { get; set; }
|
||||||
|
|
||||||
|
public string? EnvelopeTypeTitle { get; set; }
|
||||||
|
|
||||||
|
public bool IsAlreadySent { get; set; }
|
||||||
|
|
||||||
|
public string? StatusTranslated { get; set; }
|
||||||
|
|
||||||
|
public string? ContractTypeTranslated { get; set; }
|
||||||
|
public IEnumerable<EnvelopeDocumentDto>? Documents { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
namespace EnvelopeGenerator.Application.DTOs.EnvelopeHistory
|
||||||
|
{
|
||||||
|
public record EnvelopeHistoryCreateDto(
|
||||||
|
int EnvelopeId,
|
||||||
|
string UserReference,
|
||||||
|
int Status,
|
||||||
|
DateTime? ActionDate,
|
||||||
|
string? Comment = null);
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
using DigitalData.Core.DTO;
|
||||||
|
using DigitalData.UserManager.Application.DTOs.User;
|
||||||
|
using EnvelopeGenerator.Application.DTOs.Receiver;
|
||||||
|
using static EnvelopeGenerator.Common.Constants;
|
||||||
|
|
||||||
|
namespace EnvelopeGenerator.Application.DTOs.EnvelopeHistory
|
||||||
|
{
|
||||||
|
public record EnvelopeHistoryDto(
|
||||||
|
long Id,
|
||||||
|
int EnvelopeId,
|
||||||
|
string UserReference,
|
||||||
|
int Status,
|
||||||
|
DateTime AddedWhen,
|
||||||
|
DateTime? ActionDate,
|
||||||
|
UserCreateDto? Sender,
|
||||||
|
ReceiverReadDto? Receiver,
|
||||||
|
ReferenceType ReferenceType,
|
||||||
|
string? Comment = null) : BaseDTO<long>(Id);
|
||||||
|
}
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
namespace EnvelopeGenerator.Application.DTOs
|
|
||||||
{
|
|
||||||
public record EnvelopeHistoryDto(
|
|
||||||
long Id,
|
|
||||||
int EnvelopeId,
|
|
||||||
string UserReference,
|
|
||||||
int Status,
|
|
||||||
DateTime AddedWhen,
|
|
||||||
DateTime? ActionDate);
|
|
||||||
}
|
|
||||||
@@ -1,17 +1,31 @@
|
|||||||
using EnvelopeGenerator.Domain.Entities;
|
using DigitalData.EmailProfilerDispatcher.Abstraction.Attributes;
|
||||||
|
using EnvelopeGenerator.Application.DTOs.Receiver;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.DTOs
|
namespace EnvelopeGenerator.Application.DTOs
|
||||||
{
|
{
|
||||||
public record EnvelopeReceiverDto(
|
public record EnvelopeReceiverDto()
|
||||||
int EnvelopeId,
|
{
|
||||||
int ReceiverId,
|
public int EnvelopeId { get; set; }
|
||||||
int Sequence,
|
|
||||||
string? Name,
|
public int ReceiverId { get; set; }
|
||||||
string? JobTitle,
|
|
||||||
string? CompanyName,
|
public int Sequence { get; set; }
|
||||||
string? PrivateMessage,
|
|
||||||
DateTime AddedWhen,
|
[TemplatePlaceholder("[NAME_RECEIVER]")]
|
||||||
DateTime? ChangedWhen,
|
public string? Name { get; set; }
|
||||||
EnvelopeDto? Envelope,
|
|
||||||
ReceiverDto? Receiver);
|
public string? JobTitle { get; set; }
|
||||||
|
|
||||||
|
public string? CompanyName { get; set; }
|
||||||
|
|
||||||
|
public string? PrivateMessage { get; set; }
|
||||||
|
|
||||||
|
public DateTime AddedWhen { get; set; }
|
||||||
|
|
||||||
|
public DateTime? ChangedWhen { get; set; }
|
||||||
|
|
||||||
|
public EnvelopeDto? Envelope { get; set; }
|
||||||
|
|
||||||
|
public ReceiverReadDto? Receiver { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.Security.Cryptography;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace EnvelopeGenerator.Application.DTOs.Receiver
|
||||||
|
{
|
||||||
|
public record ReceiverCreateDto([EmailAddress] string EmailAddress)
|
||||||
|
{
|
||||||
|
public string Signature => sha256HexOfMail.Value;
|
||||||
|
|
||||||
|
private readonly Lazy<string> sha256HexOfMail = new(() =>
|
||||||
|
{
|
||||||
|
var bytes_arr = Encoding.UTF8.GetBytes(EmailAddress.ToUpper());
|
||||||
|
var hash_arr = SHA256.HashData(bytes_arr);
|
||||||
|
var hexa_str = BitConverter.ToString(hash_arr);
|
||||||
|
return hexa_str.Replace("-", string.Empty);
|
||||||
|
});
|
||||||
|
|
||||||
|
public DateTime AddedWhen { get; } = DateTime.Now;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
using DigitalData.Core.DTO;
|
||||||
|
|
||||||
|
namespace EnvelopeGenerator.Application.DTOs.Receiver
|
||||||
|
{
|
||||||
|
public record ReceiverReadDto(
|
||||||
|
int Id,
|
||||||
|
string EmailAddress,
|
||||||
|
string Signature,
|
||||||
|
DateTime AddedWhen
|
||||||
|
) : BaseDTO<int>(Id);
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
namespace EnvelopeGenerator.Application.DTOs.Receiver
|
||||||
|
{
|
||||||
|
public record ReceiverUpdateDto();
|
||||||
|
}
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
namespace EnvelopeGenerator.Application.DTOs
|
|
||||||
{
|
|
||||||
public record ReceiverDto(
|
|
||||||
int Id,
|
|
||||||
string EmailAddress,
|
|
||||||
string Signature,
|
|
||||||
DateTime AddedWhen
|
|
||||||
);
|
|
||||||
}
|
|
||||||
13
EnvelopeGenerator.Application/DispatcherConfig.cs
Normal file
13
EnvelopeGenerator.Application/DispatcherConfig.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
namespace EnvelopeGenerator.Application
|
||||||
|
{
|
||||||
|
public class DispatcherConfig
|
||||||
|
{
|
||||||
|
public int SendingProfile { get; init; } = 1;
|
||||||
|
|
||||||
|
public string AddedWho { get; init; } = "DDEnvelopGenerator";
|
||||||
|
|
||||||
|
public int ReminderTypeId { get; init; } = 202377;
|
||||||
|
|
||||||
|
public string EmailAttmt1 { get; init; } = string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,9 +6,19 @@
|
|||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Remove="Resources\Model.Designer.vb" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="AutoMapper" Version="13.0.1" />
|
<PackageReference Include="AutoMapper" Version="13.0.1" />
|
||||||
|
<PackageReference Include="DigitalData.Core.Abstractions" Version="1.0.1.1" />
|
||||||
|
<PackageReference Include="DigitalData.Core.Application" Version="1.0.0" />
|
||||||
|
<PackageReference Include="DigitalData.Core.DTO" Version="1.0.0" />
|
||||||
|
<PackageReference Include="DigitalData.EmailProfilerDispatcher" Version="1.0.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="7.0.18" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="7.0.18" />
|
||||||
|
<PackageReference Include="UserManager.Application" Version="1.0.0" />
|
||||||
|
<PackageReference Include="UserManager.Infrastructure" Version="1.0.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -16,37 +26,28 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="DigitalData.Core.Application">
|
<Compile Update="Resources\Model.Designer.cs">
|
||||||
<HintPath>..\..\WebCoreModules\DigitalData.Core.Application\bin\Debug\net7.0\DigitalData.Core.Application.dll</HintPath>
|
<DesignTime>True</DesignTime>
|
||||||
</Reference>
|
<AutoGen>True</AutoGen>
|
||||||
<Reference Include="DigitalData.Core.Contracts">
|
<DependentUpon>Model.resx</DependentUpon>
|
||||||
<HintPath>..\..\WebCoreModules\DigitalData.Core.Application\bin\Debug\net7.0\DigitalData.Core.Contracts.dll</HintPath>
|
</Compile>
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.Core.DTO">
|
|
||||||
<HintPath>..\..\WebCoreModules\DigitalData.Core.Application\bin\Debug\net7.0\DigitalData.Core.DTO.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.Core.Infrastructure">
|
|
||||||
<HintPath>..\..\WebUserManager\DigitalData.UserManager.Application\bin\Debug\net7.0\DigitalData.Core.Infrastructure.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.UserManager.Application">
|
|
||||||
<HintPath>..\..\WebUserManager\DigitalData.UserManager.Application\bin\Debug\net7.0\DigitalData.UserManager.Application.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.UserManager.Domain">
|
|
||||||
<HintPath>..\..\WebUserManager\DigitalData.UserManager.Domain\bin\Debug\net7.0\DigitalData.UserManager.Domain.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.UserManager.Infrastructure">
|
|
||||||
<HintPath>..\..\WebUserManager\DigitalData.UserManager.Application\bin\Debug\net7.0\DigitalData.UserManager.Infrastructure.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Update="Resources\Resource.de_DE.resx">
|
<EmbeddedResource Update="Resources\Model.en.resx">
|
||||||
|
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||||
|
<LastGenOutput>Model.en.Designer.vb</LastGenOutput>
|
||||||
|
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Update="Resources\Model.resx">
|
||||||
|
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||||
|
<LastGenOutput>Model.Designer.cs</LastGenOutput>
|
||||||
|
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Update="Resources\Resource.de-DE.resx">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Update="Resources\Resource.en_US.resx">
|
<EmbeddedResource Update="Resources\Resource.en-US.resx">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Update="Resources\Resource.resx">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -1,22 +1,127 @@
|
|||||||
using EnvelopeGenerator.Application.Services;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application
|
namespace EnvelopeGenerator.Application
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Provides extension methods for decoding and extracting information from an envelope receiver ID.
|
||||||
|
/// </summary>
|
||||||
public static class EnvelopeGeneratorExtensions
|
public static class EnvelopeGeneratorExtensions
|
||||||
{
|
{
|
||||||
public static void LogEnvelopeError(this ILogger logger, string envelopeEeceiverId, Exception? exception = null, string? message = null, params object?[] args)
|
/// <summary>
|
||||||
|
/// Validates whether a given string is a correctly formatted Base-64 encoded string.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// This method checks the string for proper Base-64 formatting, which includes validating
|
||||||
|
/// the length of the string (must be divisible by 4). It also checks each character to ensure
|
||||||
|
/// it belongs to the Base-64 character set (A-Z, a-z, 0-9, '+', '/', and '=' for padding).
|
||||||
|
/// The method ensures that padding characters ('=') only appear at the end of the string and
|
||||||
|
/// are in a valid configuration (either one '=' at the end if the string's length % 4 is 3,
|
||||||
|
/// or two '==' if the length % 4 is 2).
|
||||||
|
/// </remarks>
|
||||||
|
/// <param name="input">The Base-64 encoded string to validate.</param>
|
||||||
|
/// <returns>
|
||||||
|
/// <c>true</c> if the string is a valid Base-64 encoded string; otherwise, <c>false</c>.
|
||||||
|
/// </returns>
|
||||||
|
/// <example>
|
||||||
|
/// <code>
|
||||||
|
/// string testString = "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnk=";
|
||||||
|
/// bool isValid = IsValidBase64String(testString);
|
||||||
|
/// Console.WriteLine(isValid); // Output: true
|
||||||
|
/// </code>
|
||||||
|
/// </example>
|
||||||
|
public static bool IsBase64String(this string input)
|
||||||
{
|
{
|
||||||
var sb = new StringBuilder(envelopeEeceiverId.DecodeEnvelopeReceiverId().ToTitle());
|
// Check if the string is null or empty
|
||||||
|
if (string.IsNullOrEmpty(input))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace valid base-64 padding
|
||||||
|
input = input.Trim();
|
||||||
|
int mod4 = input.Length % 4;
|
||||||
|
if (mod4 > 0)
|
||||||
|
{
|
||||||
|
// Base-64 string lengths should be divisible by 4
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check each character to ensure it is valid base-64
|
||||||
|
foreach (char c in input)
|
||||||
|
{
|
||||||
|
if (!char.IsLetterOrDigit(c) && c != '+' && c != '/' && c != '=')
|
||||||
|
{
|
||||||
|
// Invalid character detected
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure no invalid padding scenarios exist
|
||||||
|
if (input.EndsWith("==") && (input.Length % 4 == 0) ||
|
||||||
|
input.EndsWith("=") && (input.Length % 4 == 3))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return input.IndexOf('=') == -1; // No padding allowed except at the end
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Decodes the envelope receiver ID and extracts the envelope UUID and receiver signature.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="envelopeReceiverId">The base64 encoded string containing the envelope UUID and receiver signature.</param>
|
||||||
|
/// <returns>A tuple containing the envelope UUID and receiver signature.</returns>
|
||||||
|
public static (string? EnvelopeUuid, string? ReceiverSignature) DecodeEnvelopeReceiverId(this string envelopeReceiverId)
|
||||||
|
{
|
||||||
|
if (!envelopeReceiverId.IsBase64String())
|
||||||
|
{
|
||||||
|
return (null, null);
|
||||||
|
}
|
||||||
|
byte[] bytes = Convert.FromBase64String(envelopeReceiverId);
|
||||||
|
string decodedString = System.Text.Encoding.UTF8.GetString(bytes);
|
||||||
|
string[] parts = decodedString.Split(new string[] { "::" }, StringSplitOptions.None);
|
||||||
|
|
||||||
|
if (parts.Length > 1)
|
||||||
|
return (EnvelopeUuid: parts[0], ReceiverSignature: parts[1]);
|
||||||
|
else
|
||||||
|
return (string.Empty, string.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the envelope UUID from the decoded envelope receiver ID.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="envelopeReceiverId">The base64 encoded string to decode.</param>
|
||||||
|
/// <returns>The envelope UUID.</returns>
|
||||||
|
public static string? GetEnvelopeUuid(this string envelopeReceiverId) => envelopeReceiverId.DecodeEnvelopeReceiverId().EnvelopeUuid;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the receiver signature from the decoded envelope receiver ID.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="envelopeReceiverId">The base64 encoded string to decode.</param>
|
||||||
|
/// <returns>The receiver signature.</returns>
|
||||||
|
public static string? GetReceiverSignature(this string envelopeReceiverId) => envelopeReceiverId.DecodeEnvelopeReceiverId().ReceiverSignature;
|
||||||
|
|
||||||
|
public static string EncodeEnvelopeReceiverId(this (string envelopeUuid, string receiverSignature) input)
|
||||||
|
{
|
||||||
|
string combinedString = $"{input.envelopeUuid}::{input.receiverSignature}";
|
||||||
|
byte[] bytes = Encoding.UTF8.GetBytes(combinedString);
|
||||||
|
string base64String = Convert.ToBase64String(bytes);
|
||||||
|
|
||||||
|
return base64String;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void LogEnvelopeError(this ILogger logger, string envelopeReceiverId, Exception? exception = null, string? message = null, params object?[] args)
|
||||||
|
{
|
||||||
|
var sb = new StringBuilder().AppendLine(envelopeReceiverId.DecodeEnvelopeReceiverId().ToTitle());
|
||||||
|
|
||||||
if (message is not null)
|
if (message is not null)
|
||||||
sb.AppendLine().Append(message);
|
sb.AppendLine(message);
|
||||||
|
|
||||||
if(exception is null)
|
if(exception is null)
|
||||||
logger.Log(LogLevel.Error, sb.ToString(), args);
|
logger.Log(LogLevel.Error, sb.ToString(), args);
|
||||||
else
|
else
|
||||||
logger.Log(LogLevel.Error, exception, sb.ToString(), args);
|
logger.Log(LogLevel.Error, exception, sb.AppendLine(exception.Message).ToString(), args);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void LogEnvelopeError(this ILogger logger, string? uuid, string? signature = null, Exception? exception = null, string? message = null, params object?[] args)
|
public static void LogEnvelopeError(this ILogger logger, string? uuid, string? signature = null, Exception? exception = null, string? message = null, params object?[] args)
|
||||||
@@ -37,7 +142,7 @@ namespace EnvelopeGenerator.Application
|
|||||||
|
|
||||||
public static string ToTitle(this (string? UUID, string? Signature) envelopeReceiverTuple)
|
public static string ToTitle(this (string? UUID, string? Signature) envelopeReceiverTuple)
|
||||||
{
|
{
|
||||||
return $"UUID is {envelopeReceiverTuple.UUID} and \n signature is {envelopeReceiverTuple.Signature}";
|
return $"UUID is {envelopeReceiverTuple.UUID} and signature is {envelopeReceiverTuple.Signature}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,16 +2,18 @@
|
|||||||
{
|
{
|
||||||
public static class Key
|
public static class Key
|
||||||
{
|
{
|
||||||
public static readonly string EnvelopeNotFound = "EnvelopeNotFound";
|
public static readonly string InnerServiceError = nameof(InnerServiceError);
|
||||||
public static readonly string EnvelopeReceiverNotFound = "EnvelopeReceiverNotFound";
|
public static readonly string EnvelopeNotFound = nameof(EnvelopeNotFound);
|
||||||
public static readonly string AccessCodeNull = "AccessCodeNull";
|
public static readonly string EnvelopeReceiverNotFound = nameof(EnvelopeReceiverNotFound);
|
||||||
public static readonly string WrongAccessCode = "WrongAccessCode";
|
public static readonly string AccessCodeNull = nameof(AccessCodeNull);
|
||||||
public static readonly string DataIntegrityIssue = "DataIntegrityIssue";
|
public static readonly string WrongAccessCode = nameof(WrongAccessCode);
|
||||||
public static readonly string SecurityBreachOrDataIntegrity = "SecurityBreachOrDataIntegrity";
|
public static readonly string DataIntegrityIssue = nameof(DataIntegrityIssue);
|
||||||
public static readonly string PossibleDataIntegrityIssue = "PossibleDataIntegrityIssue";
|
public static readonly string SecurityBreachOrDataIntegrity = nameof(SecurityBreachOrDataIntegrity);
|
||||||
public static readonly string SecurityBreach = "SecurityBreach";
|
public static readonly string PossibleDataIntegrityIssue = nameof(PossibleDataIntegrityIssue);
|
||||||
public static readonly string PossibleSecurityBreach = "PossibleSecurityBreach";
|
public static readonly string SecurityBreach = nameof(SecurityBreach);
|
||||||
public static readonly string WrongEnvelopeReceiverId = "WrongEnvelopeReceiverId";
|
public static readonly string PossibleSecurityBreach = nameof(PossibleSecurityBreach);
|
||||||
public static readonly string EnvelopeOrReceiverNonexists = "EnvelopeOrReceiverNonexists";
|
public static readonly string WrongEnvelopeReceiverId = nameof(WrongEnvelopeReceiverId);
|
||||||
|
public static readonly string EnvelopeOrReceiverNonexists = nameof(EnvelopeOrReceiverNonexists);
|
||||||
|
public static readonly string Default = nameof(Default);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
using AutoMapper;
|
using AutoMapper;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
|
using EnvelopeGenerator.Application.DTOs.EnvelopeHistory;
|
||||||
|
using EnvelopeGenerator.Application.DTOs.Receiver;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.MappingProfiles
|
namespace EnvelopeGenerator.Application.MappingProfiles
|
||||||
@@ -17,11 +19,13 @@ namespace EnvelopeGenerator.Application.MappingProfiles
|
|||||||
CreateMap<EnvelopeCertificate, EnvelopeCertificateDto>();
|
CreateMap<EnvelopeCertificate, EnvelopeCertificateDto>();
|
||||||
CreateMap<EnvelopeDocument, EnvelopeDocumentDto>();
|
CreateMap<EnvelopeDocument, EnvelopeDocumentDto>();
|
||||||
CreateMap<EnvelopeHistory, EnvelopeHistoryDto>();
|
CreateMap<EnvelopeHistory, EnvelopeHistoryDto>();
|
||||||
|
CreateMap<EnvelopeHistory, EnvelopeHistoryCreateDto>();
|
||||||
CreateMap<EnvelopeReceiver, EnvelopeReceiverDto>();
|
CreateMap<EnvelopeReceiver, EnvelopeReceiverDto>();
|
||||||
CreateMap<EnvelopeType, EnvelopeTypeDto>();
|
CreateMap<EnvelopeType, EnvelopeTypeDto>();
|
||||||
CreateMap<Receiver, ReceiverDto>();
|
CreateMap<Receiver, ReceiverReadDto>();
|
||||||
|
CreateMap<Receiver, ReceiverCreateDto>();
|
||||||
|
CreateMap<Receiver, ReceiverUpdateDto>();
|
||||||
CreateMap<UserReceiver, UserReceiverDto>();
|
CreateMap<UserReceiver, UserReceiverDto>();
|
||||||
CreateMap<EmailOut, EmailOutDto>();
|
|
||||||
|
|
||||||
// DTO to Entity mappings
|
// DTO to Entity mappings
|
||||||
CreateMap<ConfigDto, Config>();
|
CreateMap<ConfigDto, Config>();
|
||||||
@@ -32,11 +36,13 @@ namespace EnvelopeGenerator.Application.MappingProfiles
|
|||||||
CreateMap<EnvelopeCertificateDto, EnvelopeCertificate>();
|
CreateMap<EnvelopeCertificateDto, EnvelopeCertificate>();
|
||||||
CreateMap<EnvelopeDocumentDto, EnvelopeDocument>();
|
CreateMap<EnvelopeDocumentDto, EnvelopeDocument>();
|
||||||
CreateMap<EnvelopeHistoryDto, EnvelopeHistory>();
|
CreateMap<EnvelopeHistoryDto, EnvelopeHistory>();
|
||||||
|
CreateMap<EnvelopeHistoryCreateDto, EnvelopeHistory>();
|
||||||
CreateMap<EnvelopeReceiverDto, EnvelopeReceiver>();
|
CreateMap<EnvelopeReceiverDto, EnvelopeReceiver>();
|
||||||
CreateMap<EnvelopeTypeDto, EnvelopeType>();
|
CreateMap<EnvelopeTypeDto, EnvelopeType>();
|
||||||
CreateMap<ReceiverDto, Receiver>();
|
CreateMap<ReceiverReadDto, Receiver>();
|
||||||
|
CreateMap<ReceiverCreateDto, Receiver>();
|
||||||
|
CreateMap<ReceiverUpdateDto, Receiver>();
|
||||||
CreateMap<UserReceiverDto, UserReceiver>();
|
CreateMap<UserReceiverDto, UserReceiver>();
|
||||||
CreateMap<EmailOutDto, EmailOut>();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -117,7 +117,103 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<data name="and" xml:space="preserve">
|
||||||
|
<value>und</value>
|
||||||
|
</data>
|
||||||
|
<data name="Back" xml:space="preserve">
|
||||||
|
<value>Zurück</value>
|
||||||
|
</data>
|
||||||
|
<data name="Complete" xml:space="preserve">
|
||||||
|
<value>Abschließen</value>
|
||||||
|
</data>
|
||||||
|
<data name="Confirmation" xml:space="preserve">
|
||||||
|
<value>Bestätigung</value>
|
||||||
|
</data>
|
||||||
|
<data name="de-DE" xml:space="preserve">
|
||||||
|
<value>Deutch</value>
|
||||||
|
</data>
|
||||||
|
<data name="DocProtected" xml:space="preserve">
|
||||||
|
<value>Dokument geschützt</value>
|
||||||
|
</data>
|
||||||
|
<data name="DocRejected" xml:space="preserve">
|
||||||
|
<value>Dokument abgelehnt</value>
|
||||||
|
</data>
|
||||||
|
<data name="DocSigned" xml:space="preserve">
|
||||||
|
<value>Dokument unterschrieben</value>
|
||||||
|
</data>
|
||||||
|
<data name="en-US" xml:space="preserve">
|
||||||
|
<value>Englisch</value>
|
||||||
|
</data>
|
||||||
|
<data name="EnvelopeInfo1" xml:space="preserve">
|
||||||
|
<value>Sie müssen {0} Vorgang unterzeichen. <span class="highlight highlight-envelope-info-1">Bitte prüfen Sie die Seite {1}</span>.</value>
|
||||||
|
</data>
|
||||||
|
<data name="EnvelopeInfo2" xml:space="preserve">
|
||||||
|
<value>Erstellt am {0} von {1}. Sie können den Absender über <span class="highlight highlight-envelope-info-2"><a class="mail-link" href="mailto:{2}?subject={3}&body=Sehr%20geehrter%20{4}%20{5},%0A%0A%0A">{6}</a></span> kontaktieren.</value>
|
||||||
|
</data>
|
||||||
|
<data name="Finalize" xml:space="preserve">
|
||||||
|
<value>Abschließen</value>
|
||||||
|
</data>
|
||||||
<data name="Hello" xml:space="preserve">
|
<data name="Hello" xml:space="preserve">
|
||||||
<value>Hallo!!</value>
|
<value>Hallo</value>
|
||||||
|
</data>
|
||||||
|
<data name="LocakedOpen" xml:space="preserve">
|
||||||
|
<value>Öffnen</value>
|
||||||
|
</data>
|
||||||
|
<data name="LocationWarning" xml:space="preserve">
|
||||||
|
<value>Bitte überprüfen Sie die Standortinformationen. Wenn sie falsch sind, korrigieren Sie diese bitte.</value>
|
||||||
|
</data>
|
||||||
|
<data name="LockedAccessCode" xml:space="preserve">
|
||||||
|
<value>Zugriffscode</value>
|
||||||
|
</data>
|
||||||
|
<data name="LockedBody" xml:space="preserve">
|
||||||
|
<value>Wir haben Ihnen gerade den Zugriffscode an die hinterlegte Email Adresse gesendet. Dies kann evtl. einige Minuten dauern.</value>
|
||||||
|
</data>
|
||||||
|
<data name="LockedFooterBody" xml:space="preserve">
|
||||||
|
<value>Bitte überprüfen Sie Ihr Email Postfach inklusive Spam-Ordner. Sie können auch den Absender bitten, Ihnen den Code auf anderem Wege zukommen zu lassen.</value>
|
||||||
|
</data>
|
||||||
|
<data name="LockedFooterTitle" xml:space="preserve">
|
||||||
|
<value>Sie haben keinen Zugriffscode erhalten?</value>
|
||||||
|
</data>
|
||||||
|
<data name="LockedTitle" xml:space="preserve">
|
||||||
|
<value>Dokument erfordert einen Zugriffscode</value>
|
||||||
|
</data>
|
||||||
|
<data name="Reject" xml:space="preserve">
|
||||||
|
<value>Ablehnen</value>
|
||||||
|
</data>
|
||||||
|
<data name="Rejection" xml:space="preserve">
|
||||||
|
<value>Ablehnung</value>
|
||||||
|
</data>
|
||||||
|
<data name="RejectionInfo1" xml:space="preserve">
|
||||||
|
<value>Dieser Unterzeichnungsvorgang wurde abgelehnt!</value>
|
||||||
|
</data>
|
||||||
|
<data name="RejectionInfo1_ext" xml:space="preserve">
|
||||||
|
<value>Vorgang abgebrochen!</value>
|
||||||
|
</data>
|
||||||
|
<data name="RejectionInfo2" xml:space="preserve">
|
||||||
|
<value>Sie können bei Bedarf mit {0}, <a href="mailto:{1}?subject={2}&body=Sehr geehrte(r)%20{0},%0A%0A%0A">{1}</a> Kontakt aufnehmen.</value>
|
||||||
|
</data>
|
||||||
|
<data name="RejectionInfo2_ext" xml:space="preserve">
|
||||||
|
<value>Das Vorgang wurde von einer der beteiligten Parteien abgelehnt. Sie können bei Bedarf mit {0}, <a href="mailto:{1}?subject={2}&body=Sehr geehrte(r)%20{0},%0A%0A%0A">{1}</a> Kontakt aufnehmen.</value>
|
||||||
|
</data>
|
||||||
|
<data name="RejectionReasonQ" xml:space="preserve">
|
||||||
|
<value>Bitte geben Sie einen Grund an:</value>
|
||||||
|
</data>
|
||||||
|
<data name="SigAgree" xml:space="preserve">
|
||||||
|
<value>Durch Klick auf Abschließen stimme ich zu, dass die abgebildete und übermittelte Signatur als elektronische Darstellung meiner Signatur in den Fällen gelten, in denen ich sie auf Dokumenten, einschließlich rechtsgültiger Verträge verwende.</value>
|
||||||
|
</data>
|
||||||
|
<data name="SignDoc" xml:space="preserve">
|
||||||
|
<value>Dokument unterschreiben</value>
|
||||||
|
</data>
|
||||||
|
<data name="SigningProcessTitle" xml:space="preserve">
|
||||||
|
<value>Titel des Unterzeichnungs-Vorgangs</value>
|
||||||
|
</data>
|
||||||
|
<data name="UnexpectedError" xml:space="preserve">
|
||||||
|
<value>Ein unerwarteter Fehler ist aufgetreten.</value>
|
||||||
|
</data>
|
||||||
|
<data name="WelcomeToTheESignPortal" xml:space="preserve">
|
||||||
|
<value>Herzlich willkommen im eSign-Portal</value>
|
||||||
|
</data>
|
||||||
|
<data name="WrongAccessCode" xml:space="preserve">
|
||||||
|
<value>Ungültiger Zugangscode.</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -117,7 +117,103 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<data name="and" xml:space="preserve">
|
||||||
|
<value>and</value>
|
||||||
|
</data>
|
||||||
|
<data name="Back" xml:space="preserve">
|
||||||
|
<value>Back</value>
|
||||||
|
</data>
|
||||||
|
<data name="Complete" xml:space="preserve">
|
||||||
|
<value>Complete</value>
|
||||||
|
</data>
|
||||||
|
<data name="Confirmation" xml:space="preserve">
|
||||||
|
<value>Confirmation</value>
|
||||||
|
</data>
|
||||||
|
<data name="de-DE" xml:space="preserve">
|
||||||
|
<value>German</value>
|
||||||
|
</data>
|
||||||
|
<data name="DocProtected" xml:space="preserve">
|
||||||
|
<value>Document protected</value>
|
||||||
|
</data>
|
||||||
|
<data name="DocRejected" xml:space="preserve">
|
||||||
|
<value>Document rejected</value>
|
||||||
|
</data>
|
||||||
|
<data name="DocSigned" xml:space="preserve">
|
||||||
|
<value>Document signed</value>
|
||||||
|
</data>
|
||||||
|
<data name="en-US" xml:space="preserve">
|
||||||
|
<value>English</value>
|
||||||
|
</data>
|
||||||
|
<data name="EnvelopeInfo1" xml:space="preserve">
|
||||||
|
<value>You have to sign {0} process. <span class="highlight highlight-envelope-info-1">Please check page {1}</span>.</value>
|
||||||
|
</data>
|
||||||
|
<data name="EnvelopeInfo2" xml:space="preserve">
|
||||||
|
<value>Created on {0} by {1}. You can contact the sender via <span class="highlight highlight-envelope-info-2"><a class="mail-link" href="mailto:{2}?subject={3}&body=Dear%20{4}%20{5},%0A%0A%0A">{6}</a></span>.</value>
|
||||||
|
</data>
|
||||||
|
<data name="Finalize" xml:space="preserve">
|
||||||
|
<value>Finalize</value>
|
||||||
|
</data>
|
||||||
<data name="Hello" xml:space="preserve">
|
<data name="Hello" xml:space="preserve">
|
||||||
<value>Hello!!</value>
|
<value>Hello</value>
|
||||||
|
</data>
|
||||||
|
<data name="LocakedOpen" xml:space="preserve">
|
||||||
|
<value>Open</value>
|
||||||
|
</data>
|
||||||
|
<data name="LocationWarning" xml:space="preserve">
|
||||||
|
<value>Please review the location information. If it is incorrect, kindly make the necessary corrections.</value>
|
||||||
|
</data>
|
||||||
|
<data name="LockedAccessCode" xml:space="preserve">
|
||||||
|
<value>Access Code</value>
|
||||||
|
</data>
|
||||||
|
<data name="LockedBody" xml:space="preserve">
|
||||||
|
<value>We have just sent you the access code to the email address you provided. This may take a few minutes.</value>
|
||||||
|
</data>
|
||||||
|
<data name="LockedFooterBody" xml:space="preserve">
|
||||||
|
<value>Please check your email inbox including your spam folder. Furthermore, you can also ask the sender to send the code by other means.</value>
|
||||||
|
</data>
|
||||||
|
<data name="LockedFooterTitle" xml:space="preserve">
|
||||||
|
<value>You have not received an access code?</value>
|
||||||
|
</data>
|
||||||
|
<data name="LockedTitle" xml:space="preserve">
|
||||||
|
<value>Document requires an access code</value>
|
||||||
|
</data>
|
||||||
|
<data name="Reject" xml:space="preserve">
|
||||||
|
<value>Reject</value>
|
||||||
|
</data>
|
||||||
|
<data name="Rejection" xml:space="preserve">
|
||||||
|
<value>Rejection</value>
|
||||||
|
</data>
|
||||||
|
<data name="RejectionInfo1" xml:space="preserve">
|
||||||
|
<value>This signing process was rejected!</value>
|
||||||
|
</data>
|
||||||
|
<data name="RejectionInfo1_ext" xml:space="preserve">
|
||||||
|
<value>Process canceled!</value>
|
||||||
|
</data>
|
||||||
|
<data name="RejectionInfo2" xml:space="preserve">
|
||||||
|
<value>You can contact {0}, <a href="mailto:{1}?subject={2}&body=Dear%20{0},%0A%0A%0A">{1}</a> if required.</value>
|
||||||
|
</data>
|
||||||
|
<data name="RejectionInfo2_ext" xml:space="preserve">
|
||||||
|
<value>The process has been rejected by one of the parties involved. You can contact {0}, <a href="mailto:{1}?subject={2}&body=Dear%20{0},%0A%0A%0A">{1}</a> if required.</value>
|
||||||
|
</data>
|
||||||
|
<data name="RejectionReasonQ" xml:space="preserve">
|
||||||
|
<value>Please give a reason:</value>
|
||||||
|
</data>
|
||||||
|
<data name="SigAgree" xml:space="preserve">
|
||||||
|
<value>By clicking on Finalize, I agree that the signature shown and submitted is an electronic representation of my signature in cases where I use it on documents, including legally binding contracts.</value>
|
||||||
|
</data>
|
||||||
|
<data name="SignDoc" xml:space="preserve">
|
||||||
|
<value>Sign document</value>
|
||||||
|
</data>
|
||||||
|
<data name="SigningProcessTitle" xml:space="preserve">
|
||||||
|
<value>Title of the signing process</value>
|
||||||
|
</data>
|
||||||
|
<data name="UnexpectedError" xml:space="preserve">
|
||||||
|
<value>An unexpected error has occurred.</value>
|
||||||
|
</data>
|
||||||
|
<data name="WelcomeToTheESignPortal" xml:space="preserve">
|
||||||
|
<value>Welcome to the eSign portal</value>
|
||||||
|
</data>
|
||||||
|
<data name="WrongAccessCode" xml:space="preserve">
|
||||||
|
<value>Invalid access code.</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -6,22 +6,57 @@ using EnvelopeGenerator.Application.DTOs;
|
|||||||
using EnvelopeGenerator.Application.Resources;
|
using EnvelopeGenerator.Application.Resources;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
using Microsoft.Extensions.Localization;
|
using Microsoft.Extensions.Localization;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
namespace EnvelopeGenerator.Application.Services
|
namespace EnvelopeGenerator.Application.Services
|
||||||
{
|
{
|
||||||
public class ConfigService : BasicCRUDService<IConfigRepository, ConfigDto, Config, int>, IConfigService
|
public class ConfigService : BasicCRUDService<IConfigRepository, ConfigDto, Config, int>, IConfigService
|
||||||
{
|
{
|
||||||
public ConfigService(IConfigRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper) : base(repository, localizer, mapper)
|
private static readonly Guid DefaultConfigCacheId = Guid.NewGuid();
|
||||||
|
|
||||||
|
private readonly IMemoryCache _cache;
|
||||||
|
private readonly ILogger<ConfigService> _logger;
|
||||||
|
public ConfigService(IConfigRepository repository, IMapper mapper, IMemoryCache memoryCache, ILogger<ConfigService> logger) : base(repository, mapper)
|
||||||
{
|
{
|
||||||
|
_cache = memoryCache;
|
||||||
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<DataResult<ConfigDto>> ReadFirstAsync()
|
public async Task<DataResult<ConfigDto>> ReadFirstAsync()
|
||||||
{
|
{
|
||||||
var config = await _repository.ReadFirstAsync();
|
var config = await _repository.ReadFirstAsync();
|
||||||
return config is null ? Result.Fail<ConfigDto>().Message("There is no configuration in DB.") : Result.Success(_mapper.MapOrThrow<ConfigDto>(config));
|
return config is null
|
||||||
|
? Result.Fail<ConfigDto>().Notice(LogLevel.Error, Flag.DataIntegrityIssue, "There is no configuration in DB.")
|
||||||
|
: Result.Success(_mapper.MapOrThrow<ConfigDto>(config));
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<DataResult<ConfigDto>> ReadDefaultAsync() => await ReadFirstAsync();
|
/// <summary>
|
||||||
|
/// Reads the default configuration asynchronously.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// The configuration is cached in memory upon the first retrieval. If the configuration is updated,
|
||||||
|
/// the application needs to be restarted for the changes to take effect as the memory cache will not be updated automatically.
|
||||||
|
/// </remarks>
|
||||||
|
/// <returns>
|
||||||
|
/// A task that represents the asynchronous read operation. The task result contains the default configuration as a <see cref="ConfigDto"/>.
|
||||||
|
/// </returns>
|
||||||
|
/// <exception cref="InvalidOperationException">
|
||||||
|
/// Thrown when the default configuration cannot be found.
|
||||||
|
/// </exception>
|
||||||
|
public async Task<ConfigDto> ReadDefaultAsync()
|
||||||
|
{
|
||||||
|
var config = await _cache.GetOrCreateAsync(DefaultConfigCacheId, _ => ReadFirstAsync().ThenAsync(
|
||||||
|
Success: config => config,
|
||||||
|
Fail: (mssg, ntc) =>
|
||||||
|
{
|
||||||
|
_logger.LogNotice(ntc);
|
||||||
|
throw new InvalidOperationException("Default configuration cannot find.");
|
||||||
|
}));
|
||||||
|
|
||||||
|
return config!;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<string> ReadDefaultSignatureHost() => (await ReadDefaultAsync()).SignatureHost;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -11,8 +11,8 @@ namespace EnvelopeGenerator.Application.Services
|
|||||||
{
|
{
|
||||||
public class DocumentReceiverElementService : BasicCRUDService<IDocumentReceiverElementRepository, DocumentReceiverElementDto, DocumentReceiverElement, int>, IDocumentReceiverElementService
|
public class DocumentReceiverElementService : BasicCRUDService<IDocumentReceiverElementRepository, DocumentReceiverElementDto, DocumentReceiverElement, int>, IDocumentReceiverElementService
|
||||||
{
|
{
|
||||||
public DocumentReceiverElementService(IDocumentReceiverElementRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper)
|
public DocumentReceiverElementService(IDocumentReceiverElementRepository repository, IMapper mapper)
|
||||||
: base(repository, localizer, mapper)
|
: base(repository, mapper)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,17 +2,17 @@
|
|||||||
using DigitalData.Core.Application;
|
using DigitalData.Core.Application;
|
||||||
using EnvelopeGenerator.Application.Contracts;
|
using EnvelopeGenerator.Application.Contracts;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
|
using EnvelopeGenerator.Application.Resources;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
using Microsoft.Extensions.Localization;
|
using Microsoft.Extensions.Localization;
|
||||||
using EnvelopeGenerator.Application.Resources;
|
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Services
|
namespace EnvelopeGenerator.Application.Services
|
||||||
{
|
{
|
||||||
public class DocumentStatusService : BasicCRUDService<IDocumentStatusRepository, DocumentStatusDto, DocumentStatus, int>, IDocumentStatusService
|
public class DocumentStatusService : BasicCRUDService<IDocumentStatusRepository, DocumentStatusDto, DocumentStatus, int>, IDocumentStatusService
|
||||||
{
|
{
|
||||||
public DocumentStatusService(IDocumentStatusRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper)
|
public DocumentStatusService(IDocumentStatusRepository repository, IMapper mapper)
|
||||||
: base(repository, localizer, mapper)
|
: base(repository, mapper)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
using AutoMapper;
|
|
||||||
using DigitalData.Core.Application;
|
|
||||||
using EnvelopeGenerator.Application.Contracts;
|
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
|
||||||
using EnvelopeGenerator.Application.Resources;
|
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
|
||||||
using Microsoft.Extensions.Localization;
|
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Services
|
|
||||||
{
|
|
||||||
public class EmailOutService : BasicCRUDService<IEmailOutRepository, EmailOutDto, EmailOut, int>, IEmailOutService
|
|
||||||
{
|
|
||||||
public EmailOutService(IEmailOutRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper) : base(repository, localizer, mapper)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -6,14 +6,27 @@ using EnvelopeGenerator.Application.DTOs;
|
|||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
using EnvelopeGenerator.Application.Resources;
|
using EnvelopeGenerator.Application.Resources;
|
||||||
|
using static EnvelopeGenerator.Common.Constants;
|
||||||
|
using DigitalData.Core.DTO;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Services
|
namespace EnvelopeGenerator.Application.Services
|
||||||
{
|
{
|
||||||
public class EmailTemplateService : BasicCRUDService<IEmailTemplateRepository, EmailTemplateDto, EmailTemplate, int>, IEmailTemplateService
|
public class EmailTemplateService : BasicCRUDService<IEmailTemplateRepository, EmailTemplateDto, EmailTemplate, int>, IEmailTemplateService
|
||||||
{
|
{
|
||||||
public EmailTemplateService(IEmailTemplateRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper)
|
public EmailTemplateService(IEmailTemplateRepository repository, IMapper mapper)
|
||||||
: base(repository, localizer, mapper)
|
: base(repository, mapper)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<DataResult<EmailTemplateDto>> ReadByNameAsync(EmailTemplateType type)
|
||||||
|
{
|
||||||
|
var temp = await _repository.ReadByNameAsync(type);
|
||||||
|
return temp is null
|
||||||
|
? Result.Fail<EmailTemplateDto>()
|
||||||
|
.Message(Key.InnerServiceError)
|
||||||
|
.Notice(LogLevel.Error, Flag.DataIntegrityIssue, $"EmailTemplateType '{type}' is not found in DB. Please, define required e-mail template.")
|
||||||
|
: Result.Success(_mapper.MapOrThrow<EmailTemplateDto>(temp));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -11,8 +11,8 @@ namespace EnvelopeGenerator.Application.Services
|
|||||||
{
|
{
|
||||||
public class EnvelopeCertificateService : BasicCRUDService<IEnvelopeCertificateRepository, EnvelopeCertificateDto, EnvelopeCertificate, int>, IEnvelopeCertificateService
|
public class EnvelopeCertificateService : BasicCRUDService<IEnvelopeCertificateRepository, EnvelopeCertificateDto, EnvelopeCertificate, int>, IEnvelopeCertificateService
|
||||||
{
|
{
|
||||||
public EnvelopeCertificateService(IEnvelopeCertificateRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper)
|
public EnvelopeCertificateService(IEnvelopeCertificateRepository repository, IMapper mapper)
|
||||||
: base(repository, localizer, mapper)
|
: base(repository, mapper)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,15 @@
|
|||||||
using AutoMapper;
|
using AutoMapper;
|
||||||
using DigitalData.Core.Application;
|
using DigitalData.Core.Application;
|
||||||
using DigitalData.Core.Contracts.Application;
|
|
||||||
using Microsoft.Extensions.Localization;
|
|
||||||
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;
|
||||||
using EnvelopeGenerator.Application.Resources;
|
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Services
|
namespace EnvelopeGenerator.Application.Services
|
||||||
{
|
{
|
||||||
public class EnvelopeDocumentService : BasicCRUDService<IEnvelopeDocumentRepository, EnvelopeDocumentDto, EnvelopeDocument, int>, IEnvelopeDocumentService
|
public class EnvelopeDocumentService : BasicCRUDService<IEnvelopeDocumentRepository, EnvelopeDocumentDto, EnvelopeDocument, int>, IEnvelopeDocumentService
|
||||||
{
|
{
|
||||||
public EnvelopeDocumentService(IEnvelopeDocumentRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper) : base(repository, localizer, mapper)
|
public EnvelopeDocumentService(IEnvelopeDocumentRepository repository, IMapper mapper) : base(repository, mapper)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,102 +0,0 @@
|
|||||||
namespace EnvelopeGenerator.Application.Services
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Provides extension methods for decoding and extracting information from an envelope receiver ID.
|
|
||||||
/// </summary>
|
|
||||||
public static class EnvelopeGeneratorExtensions
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Validates whether a given string is a correctly formatted Base-64 encoded string.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// This method checks the string for proper Base-64 formatting, which includes validating
|
|
||||||
/// the length of the string (must be divisible by 4). It also checks each character to ensure
|
|
||||||
/// it belongs to the Base-64 character set (A-Z, a-z, 0-9, '+', '/', and '=' for padding).
|
|
||||||
/// The method ensures that padding characters ('=') only appear at the end of the string and
|
|
||||||
/// are in a valid configuration (either one '=' at the end if the string's length % 4 is 3,
|
|
||||||
/// or two '==' if the length % 4 is 2).
|
|
||||||
/// </remarks>
|
|
||||||
/// <param name="input">The Base-64 encoded string to validate.</param>
|
|
||||||
/// <returns>
|
|
||||||
/// <c>true</c> if the string is a valid Base-64 encoded string; otherwise, <c>false</c>.
|
|
||||||
/// </returns>
|
|
||||||
/// <example>
|
|
||||||
/// <code>
|
|
||||||
/// string testString = "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnk=";
|
|
||||||
/// bool isValid = IsValidBase64String(testString);
|
|
||||||
/// Console.WriteLine(isValid); // Output: true
|
|
||||||
/// </code>
|
|
||||||
/// </example>
|
|
||||||
public static bool IsBase64String(this string input)
|
|
||||||
{
|
|
||||||
// Check if the string is null or empty
|
|
||||||
if (string.IsNullOrEmpty(input))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace valid base-64 padding
|
|
||||||
input = input.Trim();
|
|
||||||
int mod4 = input.Length % 4;
|
|
||||||
if (mod4 > 0)
|
|
||||||
{
|
|
||||||
// Base-64 string lengths should be divisible by 4
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check each character to ensure it is valid base-64
|
|
||||||
foreach (char c in input)
|
|
||||||
{
|
|
||||||
if (!char.IsLetterOrDigit(c) && c != '+' && c != '/' && c != '=')
|
|
||||||
{
|
|
||||||
// Invalid character detected
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ensure no invalid padding scenarios exist
|
|
||||||
if (input.EndsWith("==") && (input.Length % 4 == 0) ||
|
|
||||||
input.EndsWith("=") && (input.Length % 4 == 3))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return input.IndexOf('=') == -1; // No padding allowed except at the end
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Decodes the envelope receiver ID and extracts the envelope UUID and receiver signature.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="envelopeReceiverId">The base64 encoded string containing the envelope UUID and receiver signature.</param>
|
|
||||||
/// <returns>A tuple containing the envelope UUID and receiver signature.</returns>
|
|
||||||
public static (string? EnvelopeUuid, string? ReceiverSignature) DecodeEnvelopeReceiverId(this string envelopeReceiverId)
|
|
||||||
{
|
|
||||||
if (!envelopeReceiverId.IsBase64String())
|
|
||||||
{
|
|
||||||
return (null, null);
|
|
||||||
}
|
|
||||||
byte[] bytes = Convert.FromBase64String(envelopeReceiverId);
|
|
||||||
string decodedString = System.Text.Encoding.UTF8.GetString(bytes);
|
|
||||||
string[] parts = decodedString.Split(new string[] { "::" }, StringSplitOptions.None);
|
|
||||||
|
|
||||||
if (parts.Length > 1)
|
|
||||||
return (EnvelopeUuid: parts[0], ReceiverSignature: parts[1]);
|
|
||||||
else
|
|
||||||
return (string.Empty, string.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the envelope UUID from the decoded envelope receiver ID.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="envelopeReceiverId">The base64 encoded string to decode.</param>
|
|
||||||
/// <returns>The envelope UUID.</returns>
|
|
||||||
public static string GetEnvelopeUuid(this string envelopeReceiverId) => envelopeReceiverId.DecodeEnvelopeReceiverId().EnvelopeUuid;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the receiver signature from the decoded envelope receiver ID.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="envelopeReceiverId">The base64 encoded string to decode.</param>
|
|
||||||
/// <returns>The receiver signature.</returns>
|
|
||||||
public static string GetReceiverSignature(this string envelopeReceiverId) => envelopeReceiverId.DecodeEnvelopeReceiverId().ReceiverSignature;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -2,23 +2,86 @@
|
|||||||
using DigitalData.Core.Application;
|
using DigitalData.Core.Application;
|
||||||
using Microsoft.Extensions.Localization;
|
using Microsoft.Extensions.Localization;
|
||||||
using EnvelopeGenerator.Application.Contracts;
|
using EnvelopeGenerator.Application.Contracts;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
using static EnvelopeGenerator.Common.Constants;
|
using static EnvelopeGenerator.Common.Constants;
|
||||||
using EnvelopeGenerator.Application.Resources;
|
using EnvelopeGenerator.Application.Resources;
|
||||||
|
using DigitalData.Core.DTO;
|
||||||
|
using EnvelopeGenerator.Application.DTOs.EnvelopeHistory;
|
||||||
|
using EnvelopeGenerator.Application.DTOs.Receiver;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Services
|
namespace EnvelopeGenerator.Application.Services
|
||||||
{
|
{
|
||||||
public class EnvelopeHistoryService : BasicCRUDService<IEnvelopeHistoryRepository, EnvelopeHistoryDto, EnvelopeHistory, long>, IEnvelopeHistoryService
|
public class EnvelopeHistoryService : CRUDService<IEnvelopeHistoryRepository, EnvelopeHistoryCreateDto, EnvelopeHistoryDto, EnvelopeHistoryDto, EnvelopeHistory, long>, IEnvelopeHistoryService
|
||||||
{
|
{
|
||||||
public EnvelopeHistoryService(IEnvelopeHistoryRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper)
|
public EnvelopeHistoryService(IEnvelopeHistoryRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper)
|
||||||
: base(repository, localizer, mapper)
|
: base(repository, mapper)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<int> CountAsync(int? envelopeId = null, string? userReference = null, int? status = null) => await _repository.CountAsync(envelopeId: envelopeId, userReference: userReference, status: status);
|
public async Task<int> CountAsync(int? envelopeId = null, string? userReference = null, int? status = null) => await _repository.CountAsync(envelopeId: envelopeId, userReference: userReference, status: status);
|
||||||
|
|
||||||
public async Task<bool> AccessCodeAlreadyRequested(int envelopeId, string userReference) => await _repository.CountAsync(envelopeId: envelopeId, userReference:userReference, status: (int) EnvelopeStatus.AccessCodeRequested) > 0;
|
public async Task<bool> HasStatus(EnvelopeStatus status, int envelopeId, string userReference) => await _repository.CountAsync(
|
||||||
|
envelopeId: envelopeId,
|
||||||
|
userReference: userReference,
|
||||||
|
status: (int) status) > 0;
|
||||||
|
|
||||||
|
public async Task<bool> AccessCodeAlreadyRequested(int envelopeId, string userReference) => await _repository.CountAsync(
|
||||||
|
envelopeId: envelopeId,
|
||||||
|
userReference:userReference,
|
||||||
|
status: (int) EnvelopeStatus.AccessCodeRequested) > 0;
|
||||||
|
|
||||||
|
public async Task<bool> IsSigned(int envelopeId, string userReference) => await _repository.CountAsync(
|
||||||
|
envelopeId: envelopeId,
|
||||||
|
userReference: userReference,
|
||||||
|
status: (int) EnvelopeStatus.DocumentSigned) > 0;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Checks if the specified envelope has been rejected.
|
||||||
|
/// <para><b>Note:</b> <i>If any document within the envelope is rejected, the entire envelope will be considered rejected.</i></para>
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="envelopeId">The ID of the envelope to check.</param>
|
||||||
|
/// <param name="userReference">Optional user reference associated with the envelope.</param>
|
||||||
|
/// <returns>A task that represents the asynchronous operation. The task result contains a boolean value indicating whether the envelope is rejected.</returns>
|
||||||
|
public async Task<bool> IsRejected(int envelopeId, string? userReference = null)
|
||||||
|
{
|
||||||
|
return await _repository.CountAsync(
|
||||||
|
envelopeId: envelopeId,
|
||||||
|
userReference: userReference,
|
||||||
|
status: (int)EnvelopeStatus.DocumentRejected) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<IEnumerable<EnvelopeHistoryDto>> ReadAsync(int? envelopeId = null, string? userReference = null, ReferenceType? referenceType = null, int? status = null, bool withSender = false, bool withReceiver = false)
|
||||||
|
{
|
||||||
|
var histDTOs = _mapper.MapOrThrow<IEnumerable<EnvelopeHistoryDto>>(
|
||||||
|
await _repository.ReadAsync(
|
||||||
|
envelopeId: envelopeId,
|
||||||
|
userReference: userReference,
|
||||||
|
status: status,
|
||||||
|
withSender: withSender,
|
||||||
|
withReceiver: withReceiver));
|
||||||
|
return referenceType is null ? histDTOs : histDTOs.Where(h => h.ReferenceType == referenceType);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<IEnumerable<EnvelopeHistoryDto>> ReadRejectedAsync(int envelopeId, string? userReference = null) =>
|
||||||
|
await ReadAsync(envelopeId: envelopeId, userReference: userReference, status: (int)EnvelopeStatus.DocumentRejected, withReceiver:true);
|
||||||
|
|
||||||
|
//TODO: use IQueryable in repository to incerease the performance
|
||||||
|
public async Task<IEnumerable<ReceiverReadDto>> ReadRejectingReceivers(int envelopeId)
|
||||||
|
{
|
||||||
|
var envelopes = await ReadRejectedAsync(envelopeId);
|
||||||
|
return envelopes is null
|
||||||
|
? Enumerable.Empty<ReceiverReadDto>()
|
||||||
|
: envelopes
|
||||||
|
.Where(eh => eh?.Receiver != null)
|
||||||
|
.Select(eh => eh.Receiver!);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<DataResult<long>> RecordAsync(int envelopeId, string userReference, EnvelopeStatus status, string? comment = null) =>
|
||||||
|
await CreateAsync(new (EnvelopeId: envelopeId, UserReference: userReference, Status: (int)status, ActionDate: DateTime.Now, Comment: comment))
|
||||||
|
.ThenAsync(
|
||||||
|
Success: id => Result.Success(id),
|
||||||
|
Fail: (mssg, ntc) => Result.Fail<long>().Message(mssg).Notice(ntc)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,99 @@
|
|||||||
|
using AutoMapper;
|
||||||
|
using DigitalData.Core.DTO;
|
||||||
|
using DigitalData.EmailProfilerDispatcher.Abstraction.Contracts;
|
||||||
|
using DigitalData.EmailProfilerDispatcher.Abstraction.DTOs.EmailOut;
|
||||||
|
using DigitalData.EmailProfilerDispatcher.Abstraction.Services;
|
||||||
|
using DigitalData.UserManager.Application;
|
||||||
|
using EnvelopeGenerator.Application.Contracts;
|
||||||
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
|
using EnvelopeGenerator.Common;
|
||||||
|
using Microsoft.Extensions.Localization;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
using static EnvelopeGenerator.Common.Constants;
|
||||||
|
|
||||||
|
namespace EnvelopeGenerator.Application.Services
|
||||||
|
{
|
||||||
|
public class EnvelopeMailService : EmailOutService, IEnvelopeMailService
|
||||||
|
{
|
||||||
|
private readonly IEmailTemplateService _tempService;
|
||||||
|
private readonly IEnvelopeReceiverService _envRcvService;
|
||||||
|
private readonly DispatcherConfig _dConfig;
|
||||||
|
private readonly IConfigService _configService;
|
||||||
|
|
||||||
|
public EnvelopeMailService(IEmailOutRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper, IEmailTemplateService tempService, IEnvelopeReceiverService envelopeReceiverService, IOptions<DispatcherConfig> dispatcherConfigOptions, IConfigService configService) : base(repository, mapper)
|
||||||
|
{
|
||||||
|
_tempService = tempService;
|
||||||
|
_envRcvService = envelopeReceiverService;
|
||||||
|
_dConfig = dispatcherConfigOptions.Value;
|
||||||
|
_configService = configService;
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: create ioptions and implement TemplatePlaceHolderAttribute instead of this method
|
||||||
|
private async Task<Dictionary<string, string>> CreatePlaceholders(string? accessCode = null, EnvelopeReceiverDto? envelopeReceiverDto = null)
|
||||||
|
{
|
||||||
|
Dictionary<string, string> placeholders = new() {
|
||||||
|
{ "[NAME_PORTAL]", "signFlow" },
|
||||||
|
{ "[SIGNATURE_TYPE]" , "signieren"},
|
||||||
|
{ "[REASON]", string.Empty } };
|
||||||
|
|
||||||
|
if (accessCode is not null)
|
||||||
|
placeholders["[DOCUMENT_ACCESS_CODE]"] = accessCode;
|
||||||
|
|
||||||
|
if(envelopeReceiverDto is not null && envelopeReceiverDto.Envelope is not null && envelopeReceiverDto.Receiver is not null)
|
||||||
|
{
|
||||||
|
var erId = (envelopeReceiverDto.Envelope.Uuid, envelopeReceiverDto.Receiver.Signature).EncodeEnvelopeReceiverId();
|
||||||
|
var sigHost = await _configService.ReadDefaultSignatureHost();
|
||||||
|
var linkToDoc = $"{sigHost}/envelope/{erId}";
|
||||||
|
placeholders["[LINK_TO_DOCUMENT]"] = linkToDoc;
|
||||||
|
placeholders["[LINK_TO_DOCUMENT_TEXT]"] = linkToDoc[..Math.Min(40, linkToDoc.Length)];
|
||||||
|
}
|
||||||
|
|
||||||
|
return placeholders;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<DataResult<int>> SendAccessCodeAsync(EnvelopeReceiverDto dto) => await SendAsync(dto: dto, tempType: Constants.EmailTemplateType.DocumentAccessCodeReceived);
|
||||||
|
|
||||||
|
public async Task<DataResult<int>> SendAsync(EnvelopeReceiverDto dto, Constants.EmailTemplateType tempType)
|
||||||
|
{
|
||||||
|
var tempSerResult = await _tempService.ReadByNameAsync(tempType);
|
||||||
|
if (tempSerResult.IsFailed)
|
||||||
|
return tempSerResult.ToFail<int>().Notice(LogLevel.Error, Flag.DataIntegrityIssue, $"The email cannot send because '{tempType}' template cannot found.");
|
||||||
|
var temp = tempSerResult.Data;
|
||||||
|
|
||||||
|
var mail = new EmailOutCreateDto()
|
||||||
|
{
|
||||||
|
EmailAddress = dto.Receiver!.EmailAddress,
|
||||||
|
EmailSubj = temp.Subject,
|
||||||
|
EmailBody = temp.Body,
|
||||||
|
//email_type = envelope_status,
|
||||||
|
//message = envelope_message,
|
||||||
|
ReferenceId = dto.EnvelopeId, //REFERENCE_ID = ENVELOPE_ID
|
||||||
|
ReferenceString = dto!.Envelope!.Uuid, //REFERENCE_STRING = ENVELOPE_UUID
|
||||||
|
//receiver_name = receiver.name,
|
||||||
|
//receiver_access_code = receiver.access_code,
|
||||||
|
//sender_adress = envelope.user.email,
|
||||||
|
//sender_name = envelope.user.full_name,
|
||||||
|
//envelope_title = envelope.title,
|
||||||
|
ReminderTypeId = _dConfig.ReminderTypeId,
|
||||||
|
SendingProfile = _dConfig.SendingProfile,
|
||||||
|
EntityId = null,
|
||||||
|
WfId = (int) EnvelopeStatus.MessageAccessCodeSent,
|
||||||
|
WfReference = null,
|
||||||
|
AddedWho = _dConfig.AddedWho,
|
||||||
|
EmailAttmt1 = _dConfig.EmailAttmt1
|
||||||
|
};
|
||||||
|
|
||||||
|
//get acccess code
|
||||||
|
var acResult = await _envRcvService.ReadAccessCodeByIdAsync(envelopeId: dto.EnvelopeId, receiverId: dto.ReceiverId);
|
||||||
|
if (acResult.IsFailed)
|
||||||
|
return acResult.ToFail<int>().Notice(LogLevel.Error, "Therefore, access code cannot be sent");
|
||||||
|
var accessCode = acResult.Data;
|
||||||
|
|
||||||
|
var placeholders = await CreatePlaceholders(accessCode: accessCode, envelopeReceiverDto: dto);
|
||||||
|
|
||||||
|
return await CreateWithTemplateAsync(createDto: mail,placeholders: placeholders,
|
||||||
|
dto, dto.Envelope.User!, dto.Envelope);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,19 +3,22 @@ using DigitalData.Core.Application;
|
|||||||
using DigitalData.Core.DTO;
|
using DigitalData.Core.DTO;
|
||||||
using EnvelopeGenerator.Application.Contracts;
|
using EnvelopeGenerator.Application.Contracts;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
|
using EnvelopeGenerator.Application.Resources;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
using Microsoft.Extensions.Localization;
|
using Microsoft.Extensions.Localization;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using EnvelopeGenerator.Application.Resources;
|
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Services
|
namespace EnvelopeGenerator.Application.Services
|
||||||
{
|
{
|
||||||
public class EnvelopeReceiverService : BasicCRUDService<IEnvelopeReceiverRepository, EnvelopeReceiverDto, EnvelopeReceiver, int>, IEnvelopeReceiverService
|
public class EnvelopeReceiverService : BasicCRUDService<IEnvelopeReceiverRepository, EnvelopeReceiverDto, EnvelopeReceiver, object>, IEnvelopeReceiverService
|
||||||
{
|
{
|
||||||
|
private readonly IStringLocalizer<Resource> _localizer;
|
||||||
|
|
||||||
public EnvelopeReceiverService(IEnvelopeReceiverRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper)
|
public EnvelopeReceiverService(IEnvelopeReceiverRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper)
|
||||||
: base(repository, localizer, mapper)
|
: base(repository, mapper)
|
||||||
{
|
{
|
||||||
|
_localizer = localizer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<DataResult<IEnumerable<EnvelopeReceiverDto>>> ReadBySignatureAsync(string signature, bool withEnvelope = false, bool withReceiver = true)
|
public async Task<DataResult<IEnumerable<EnvelopeReceiverDto>>> ReadBySignatureAsync(string signature, bool withEnvelope = false, bool withReceiver = true)
|
||||||
@@ -103,6 +106,21 @@ namespace EnvelopeGenerator.Application.Services
|
|||||||
|
|
||||||
int count = await _repository.CountAsync(uuid:uuid, signature:signature);
|
int count = await _repository.CountAsync(uuid:uuid, signature:signature);
|
||||||
return Result.Success(count > 0);
|
return Result.Success(count > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<DataResult<string>> ReadAccessCodeByIdAsync(int envelopeId, int receiverId)
|
||||||
|
{
|
||||||
|
var code = await _repository.ReadAccessCodeByIdAsync(envelopeId: envelopeId, receiverId: receiverId);
|
||||||
|
return code is null ?
|
||||||
|
Result.Fail<string>().Notice(LogLevel.Error, Flag.DataIntegrityIssue, $"Access code is null. Envelope ID is {envelopeId} and receiver ID {receiverId}")
|
||||||
|
: Result.Success(code);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<DataResult<IEnumerable<EnvelopeReceiverDto>>> ReadByUsernameAsync(string username, int? min_status = null, int? max_status = null, params int[] ignore_statuses)
|
||||||
|
{
|
||||||
|
var er_list = await _repository.ReadByUsernameAsync(username: username, min_status: min_status, max_status: max_status, ignore_statuses: ignore_statuses);
|
||||||
|
var dto_list = _mapper.MapOrThrow<IEnumerable<EnvelopeReceiverDto>>(er_list);
|
||||||
|
return Result.Success(dto_list);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,19 +3,19 @@ using DigitalData.Core.Application;
|
|||||||
using DigitalData.Core.DTO;
|
using DigitalData.Core.DTO;
|
||||||
using EnvelopeGenerator.Application.Contracts;
|
using EnvelopeGenerator.Application.Contracts;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
|
using EnvelopeGenerator.Application.Resources;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
using Microsoft.Extensions.Localization;
|
using Microsoft.Extensions.Localization;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using EnvelopeGenerator.Application.Resources;
|
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Services
|
namespace EnvelopeGenerator.Application.Services
|
||||||
{
|
{
|
||||||
public class EnvelopeService : BasicCRUDService<IEnvelopeRepository, EnvelopeDto, Envelope, int>, IEnvelopeService
|
public class EnvelopeService : BasicCRUDService<IEnvelopeRepository, EnvelopeDto, Envelope, int>, IEnvelopeService
|
||||||
{
|
{
|
||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
public EnvelopeService(IEnvelopeRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper, ILogger<EnvelopeService> logger)
|
public EnvelopeService(IEnvelopeRepository repository, IMapper mapper, ILogger<EnvelopeService> logger)
|
||||||
: base(repository, localizer, mapper)
|
: base(repository, mapper)
|
||||||
{
|
{
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ namespace EnvelopeGenerator.Application.Services
|
|||||||
{
|
{
|
||||||
public class EnvelopeTypeService : BasicCRUDService<IEnvelopeTypeRepository, EnvelopeTypeDto, EnvelopeType, int>, IEnvelopeTypeService
|
public class EnvelopeTypeService : BasicCRUDService<IEnvelopeTypeRepository, EnvelopeTypeDto, EnvelopeType, int>, IEnvelopeTypeService
|
||||||
{
|
{
|
||||||
public EnvelopeTypeService(IEnvelopeTypeRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper)
|
public EnvelopeTypeService(IEnvelopeTypeRepository repository, IMapper mapper)
|
||||||
: base(repository, localizer, mapper)
|
: base(repository, mapper)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,18 +2,39 @@
|
|||||||
using DigitalData.Core.Application;
|
using DigitalData.Core.Application;
|
||||||
using Microsoft.Extensions.Localization;
|
using Microsoft.Extensions.Localization;
|
||||||
using EnvelopeGenerator.Application.Contracts;
|
using EnvelopeGenerator.Application.Contracts;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.Infrastructure.Contracts;
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
||||||
using EnvelopeGenerator.Application.Resources;
|
using EnvelopeGenerator.Application.Resources;
|
||||||
|
using EnvelopeGenerator.Application.DTOs.Receiver;
|
||||||
|
using DigitalData.Core.DTO;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Services
|
namespace EnvelopeGenerator.Application.Services
|
||||||
{
|
{
|
||||||
public class ReceiverService : BasicCRUDService<IReceiverRepository, ReceiverDto, Receiver, int>, IReceiverService
|
public class ReceiverService : CRUDService<IReceiverRepository, ReceiverCreateDto, ReceiverReadDto, ReceiverUpdateDto, Receiver, int>, IReceiverService
|
||||||
{
|
{
|
||||||
public ReceiverService(IReceiverRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper)
|
public ReceiverService(IReceiverRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper)
|
||||||
: base(repository, localizer, mapper)
|
: base(repository, mapper)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<DataResult<ReceiverReadDto>> ReadByAsync(string? emailAddress = null, string? signature = null)
|
||||||
|
{
|
||||||
|
var rcv = await _repository.ReadByAsync(emailAddress: emailAddress, signature: signature);
|
||||||
|
|
||||||
|
if (rcv is null)
|
||||||
|
return Result.Fail<ReceiverReadDto>();
|
||||||
|
|
||||||
|
return Result.Success(_mapper.MapOrThrow<ReceiverReadDto>(rcv));
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<Result> DeleteByAsync(string? emailAddress = null, string? signature = null)
|
||||||
|
{
|
||||||
|
var rcv = await _repository.ReadByAsync(emailAddress: emailAddress, signature: signature);
|
||||||
|
|
||||||
|
if (rcv is null)
|
||||||
|
return Result.Fail();
|
||||||
|
|
||||||
|
return await _repository.DeleteAsync(rcv) ? Result.Success() : Result.Fail();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -12,7 +12,7 @@ namespace EnvelopeGenerator.Application.Services
|
|||||||
public class UserReceiverService : BasicCRUDService<IUserReceiverRepository, UserReceiverDto, UserReceiver, int>, IUserReceiverService
|
public class UserReceiverService : BasicCRUDService<IUserReceiverRepository, UserReceiverDto, UserReceiver, int>, IUserReceiverService
|
||||||
{
|
{
|
||||||
public UserReceiverService(IUserReceiverRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper)
|
public UserReceiverService(IUserReceiverRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper)
|
||||||
: base(repository, localizer, mapper)
|
: base(repository, mapper)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
DocumentOpened = 2004
|
DocumentOpened = 2004
|
||||||
DocumentSigned = 2005
|
DocumentSigned = 2005
|
||||||
SignatureConfirmed = 2006
|
SignatureConfirmed = 2006
|
||||||
|
DocumentRejected = 2007
|
||||||
MessageInvitationSent = 3001 ' Wird von Trigger verwendet
|
MessageInvitationSent = 3001 ' Wird von Trigger verwendet
|
||||||
MessageAccessCodeSent = 3002
|
MessageAccessCodeSent = 3002
|
||||||
MessageConfirmationSent = 3003
|
MessageConfirmationSent = 3003
|
||||||
@@ -25,6 +26,13 @@
|
|||||||
MessageCompletionSent = 3005
|
MessageCompletionSent = 3005
|
||||||
End Enum
|
End Enum
|
||||||
|
|
||||||
|
Public Enum ReferenceType
|
||||||
|
Receiver
|
||||||
|
Sender
|
||||||
|
System
|
||||||
|
Unknown
|
||||||
|
End Enum
|
||||||
|
|
||||||
Public Enum ElementStatus
|
Public Enum ElementStatus
|
||||||
Created = 0
|
Created = 0
|
||||||
End Enum
|
End Enum
|
||||||
@@ -94,6 +102,7 @@
|
|||||||
Public Const DATABASE = "DATABASE"
|
Public Const DATABASE = "DATABASE"
|
||||||
Public Const LOGCONFIG = "LOGCONFIG"
|
Public Const LOGCONFIG = "LOGCONFIG"
|
||||||
Public Const GDPICTURE = "GDPICTURE"
|
Public Const GDPICTURE = "GDPICTURE"
|
||||||
|
Public Const IGNORED_LABELS = "IgnoredLabels"
|
||||||
|
|
||||||
Public Const GREEN_300 = "#bbf7d0"
|
Public Const GREEN_300 = "#bbf7d0"
|
||||||
Public Const RED_300 = "#fecaca"
|
Public Const RED_300 = "#fecaca"
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ Public Class EmailData
|
|||||||
Public Property EnvelopeTitle As String = ""
|
Public Property EnvelopeTitle As String = ""
|
||||||
|
|
||||||
Public Property EmailAttachment As String = ""
|
Public Property EmailAttachment As String = ""
|
||||||
|
Public Property ATT1_RELATED_ID As Long
|
||||||
|
Public Property ATT1_REL_TYPE As String = ""
|
||||||
|
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' Constructor for sending email to receiver
|
''' Constructor for sending email to receiver
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
Public Property Receivers As New List(Of EnvelopeReceiver)
|
Public Property Receivers As New List(Of EnvelopeReceiver)
|
||||||
Public Property History As New List(Of EnvelopeHistoryEntry)
|
Public Property History As New List(Of EnvelopeHistoryEntry)
|
||||||
Public Property EnvelopeType As EnvelopeType
|
Public Property EnvelopeType As EnvelopeType
|
||||||
|
Public Property DOC_RESULT As Byte()
|
||||||
Public ReadOnly Property EnvelopeTypeTitle As String
|
Public ReadOnly Property EnvelopeTypeTitle As String
|
||||||
Get
|
Get
|
||||||
Return EnvelopeType?.Title
|
Return EnvelopeType?.Title
|
||||||
|
|||||||
@@ -19,4 +19,5 @@ Public Class EnvelopeDocument
|
|||||||
Public Property Filepath As String
|
Public Property Filepath As String
|
||||||
|
|
||||||
Public Property PageCount As Integer
|
Public Property PageCount As Integer
|
||||||
|
Public Property Byte_Data As Byte()
|
||||||
End Class
|
End Class
|
||||||
@@ -220,6 +220,8 @@
|
|||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
<DependentUpon>Model.resx</DependentUpon>
|
<DependentUpon>Model.resx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Strings\Model.vb" />
|
||||||
|
<Compile Include="TempFiles.vb" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="My Project\licenses.licx" />
|
<EmbeddedResource Include="My Project\licenses.licx" />
|
||||||
@@ -241,11 +243,13 @@
|
|||||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>Envelope.en.Designer.vb</LastGenOutput>
|
<LastGenOutput>Envelope.en.Designer.vb</LastGenOutput>
|
||||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Strings\Envelope.resx">
|
<EmbeddedResource Include="Strings\Envelope.resx">
|
||||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>Envelope1.Designer.vb</LastGenOutput>
|
<LastGenOutput>Envelope1.Designer.vb</LastGenOutput>
|
||||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Strings\Email.resx">
|
<EmbeddedResource Include="Strings\Email.resx">
|
||||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||||
|
|||||||
@@ -7,15 +7,9 @@ Imports System.Security.Cryptography
|
|||||||
Imports System.IO
|
Imports System.IO
|
||||||
Imports EnvelopeGenerator.Common.Jobs.FinalizeDocument.FinalizeDocumentExceptions
|
Imports EnvelopeGenerator.Common.Jobs.FinalizeDocument.FinalizeDocumentExceptions
|
||||||
Imports EnvelopeGenerator.Common.Jobs.FinalizeDocument
|
Imports EnvelopeGenerator.Common.Jobs.FinalizeDocument
|
||||||
Imports EnvelopeGenerator.Common.My.Resources
|
|
||||||
Imports EnvelopeGenerator.Common.Constants
|
Imports EnvelopeGenerator.Common.Constants
|
||||||
Imports DevExpress.XtraBars.Docking
|
|
||||||
Imports System.ServiceModel
|
|
||||||
Imports DevExpress.XtraRichEdit.Export
|
|
||||||
Imports DevExpress.Pdf.Native.BouncyCastle.Asn1.Cms
|
|
||||||
Imports DevExpress.DataAccess.Sql
|
|
||||||
Imports DevExpress.DataProcessing
|
Imports DevExpress.DataProcessing
|
||||||
Imports Quartz.Logging.OperationName
|
Imports System.Data.SqlClient
|
||||||
|
|
||||||
Namespace Jobs
|
Namespace Jobs
|
||||||
Public Class FinalizeDocumentJob
|
Public Class FinalizeDocumentJob
|
||||||
@@ -41,11 +35,14 @@ Namespace Jobs
|
|||||||
|
|
||||||
Private ReadOnly CompleteWaitTime As Integer = 5
|
Private ReadOnly CompleteWaitTime As Integer = 5
|
||||||
Private ParentFolderUID As String = ""
|
Private ParentFolderUID As String = ""
|
||||||
|
Private myTempFiles As TempFiles
|
||||||
|
|
||||||
Private Class EnvelopeData
|
Private Class EnvelopeData
|
||||||
Public EnvelopeId As Integer
|
Public EnvelopeId As Integer
|
||||||
|
Public EnvelopeUUID As String
|
||||||
Public DocumentPath As String
|
Public DocumentPath As String
|
||||||
Public AnnotationData As List(Of String)
|
Public AnnotationData As List(Of String)
|
||||||
|
Public DocAsByte As Byte()
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
@@ -53,7 +50,8 @@ Namespace Jobs
|
|||||||
Dim oGdPictureKey As String = pContext.MergedJobDataMap.Item(Constants.GDPICTURE)
|
Dim oGdPictureKey As String = pContext.MergedJobDataMap.Item(Constants.GDPICTURE)
|
||||||
LogConfig = pContext.MergedJobDataMap.Item(Constants.LOGCONFIG)
|
LogConfig = pContext.MergedJobDataMap.Item(Constants.LOGCONFIG)
|
||||||
Logger = LogConfig.GetLogger()
|
Logger = LogConfig.GetLogger()
|
||||||
|
myTempFiles = New TempFiles(LogConfig)
|
||||||
|
myTempFiles.Create()
|
||||||
Dim JobId = pContext.JobDetail.Key
|
Dim JobId = pContext.JobDetail.Key
|
||||||
Logger.Info("Starting job {0}", JobId)
|
Logger.Info("Starting job {0}", JobId)
|
||||||
|
|
||||||
@@ -76,7 +74,8 @@ Namespace Jobs
|
|||||||
InitializeServices(oState)
|
InitializeServices(oState)
|
||||||
|
|
||||||
Logger.Debug("Loading PDFBurner..")
|
Logger.Debug("Loading PDFBurner..")
|
||||||
PDFBurner = New PDFBurner(LogConfig, oGdPictureKey)
|
Dim ignoredLabels As List(Of String) = pContext.MergedJobDataMap.Item(Constants.IGNORED_LABELS)
|
||||||
|
PDFBurner = New PDFBurner(LogConfig, oGdPictureKey, ignoredLabels)
|
||||||
|
|
||||||
Logger.Debug("Loading PDFMerger..")
|
Logger.Debug("Loading PDFMerger..")
|
||||||
PDFMerger = New PDFMerger(LogConfig, oGdPictureKey)
|
PDFMerger = New PDFMerger(LogConfig, oGdPictureKey)
|
||||||
@@ -86,6 +85,7 @@ Namespace Jobs
|
|||||||
Logger.Debug("My.Settings.RuninDMZ: [{0}]", My.Settings.RuninDMZ.ToString)
|
Logger.Debug("My.Settings.RuninDMZ: [{0}]", My.Settings.RuninDMZ.ToString)
|
||||||
Logger.Debug("My.Settings.NetUse_Usr: [{0}]", My.Settings.NetUse_Usr)
|
Logger.Debug("My.Settings.NetUse_Usr: [{0}]", My.Settings.NetUse_Usr)
|
||||||
|
|
||||||
|
|
||||||
If My.Settings.RuninDMZ = True Then
|
If My.Settings.RuninDMZ = True Then
|
||||||
If Config.DocumentPath_DMZ <> String.Empty Then
|
If Config.DocumentPath_DMZ <> String.Empty Then
|
||||||
Logger.Debug("RuninDMZ - Using DocumentPath_DMZ: [{0}] - Overwrite Document-Path", Config.DocumentPath_DMZ)
|
Logger.Debug("RuninDMZ - Using DocumentPath_DMZ: [{0}] - Overwrite Document-Path", Config.DocumentPath_DMZ)
|
||||||
@@ -126,7 +126,7 @@ Namespace Jobs
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
Dim oCompleteStatus As Integer = Constants.EnvelopeStatus.EnvelopeCompletelySigned
|
Dim oCompleteStatus As Integer = Constants.EnvelopeStatus.EnvelopeCompletelySigned
|
||||||
Dim oSql = $"SELECT * FROM TBSIG_ENVELOPE WHERE STATUS = {oCompleteStatus} AND DATEDIFF(minute, CHANGED_WHEN, GETDATE()) >= {CompleteWaitTime}"
|
Dim oSql = $"SELECT * FROM TBSIG_ENVELOPE WHERE STATUS = {oCompleteStatus} AND DATEDIFF(minute, CHANGED_WHEN, GETDATE()) >= {CompleteWaitTime} ORDER BY GUID"
|
||||||
Dim oTable = Database.GetDatatable(oSql)
|
Dim oTable = Database.GetDatatable(oSql)
|
||||||
|
|
||||||
Dim oEnvelopeIds As List(Of Integer) = oTable.Rows.Cast(Of DataRow).
|
Dim oEnvelopeIds As List(Of Integer) = oTable.Rows.Cast(Of DataRow).
|
||||||
@@ -142,99 +142,83 @@ Namespace Jobs
|
|||||||
Dim oCurrent As Integer = 1
|
Dim oCurrent As Integer = 1
|
||||||
|
|
||||||
For Each oId In oEnvelopeIds
|
For Each oId In oEnvelopeIds
|
||||||
|
|
||||||
Logger.Info("Finalizing Envelope [{0}] ({1}/{2})", oId, oCurrent, oTotal)
|
Logger.Info("Finalizing Envelope [{0}] ({1}/{2})", oId, oCurrent, oTotal)
|
||||||
|
|
||||||
Logger.Debug("Loading Envelope..")
|
Logger.Debug("Loading Envelope..")
|
||||||
Dim oEnvelope = EnvelopeModel.GetById(oId)
|
|
||||||
|
|
||||||
If oEnvelope Is Nothing Then
|
|
||||||
Logger.Warn("Envelope could not be loaded for Id [{0}]!", oId)
|
|
||||||
Throw New ArgumentNullException("EnvelopeData")
|
|
||||||
End If
|
|
||||||
|
|
||||||
Logger.Debug("Loading Envelope Data..")
|
|
||||||
Dim oEnvelopeData = GetEnvelopeData(oId)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
If oEnvelopeData Is Nothing Then
|
|
||||||
Logger.Warn("EnvelopeData could not be loaded for Id [{0}]!", oId)
|
|
||||||
Throw New ArgumentNullException("EnvelopeData")
|
|
||||||
End If
|
|
||||||
If Config.DOCUMENT_PATH_MOVE_AFTSEND <> String.Empty Then
|
|
||||||
oEnvelopeData.DocumentPath.Replace(Config.DocumentPathOrigin, Config.DOCUMENT_PATH_MOVE_AFTSEND)
|
|
||||||
Logger.Debug("Replaced Path in oEnvelopeData.DocumentPath!")
|
|
||||||
End If
|
|
||||||
Logger.Debug("Burning Annotations to pdf ...")
|
|
||||||
Dim oBurnedDocument As Byte() = BurnAnnotationsToPdf(oEnvelopeData)
|
|
||||||
If oBurnedDocument Is Nothing Then
|
|
||||||
Logger.Warn("Document could not be finalized!")
|
|
||||||
Throw New ApplicationException("Document could not be finalized")
|
|
||||||
End If
|
|
||||||
|
|
||||||
If ActionService.CreateReport(oEnvelope) = False Then
|
|
||||||
Logger.Warn("Document Report could not be created!")
|
|
||||||
Throw New ApplicationException("Document Report could not be created")
|
|
||||||
End If
|
|
||||||
|
|
||||||
Logger.Debug("Creating report..")
|
|
||||||
Dim oReport As Byte() = ReportCreator.CreateReport(oEnvelope)
|
|
||||||
Logger.Debug("Report created!")
|
|
||||||
|
|
||||||
Logger.Debug("Merging documents ...")
|
|
||||||
Dim oMergedDocument As Byte() = PDFMerger.MergeDocuments(oBurnedDocument, oReport)
|
|
||||||
Logger.Debug("Documents merged!")
|
|
||||||
|
|
||||||
Dim oOutputDirectoryPath = Path.Combine(Config.ExportPath, ParentFolderUID)
|
|
||||||
If Not Directory.Exists(oOutputDirectoryPath) Then
|
|
||||||
Directory.CreateDirectory(oOutputDirectoryPath)
|
|
||||||
End If
|
|
||||||
Dim oOutputFilePath = Path.Combine(oOutputDirectoryPath, $"{oEnvelope.Uuid}.pdf")
|
|
||||||
Logger.Info("Writing finalized Pdf to disk..")
|
|
||||||
Logger.Info("Output path is [{0}]", oOutputFilePath)
|
|
||||||
|
|
||||||
Try
|
Try
|
||||||
File.WriteAllBytes(oOutputFilePath, oMergedDocument)
|
Dim oEnvelope = EnvelopeModel.GetById(oId)
|
||||||
Catch ex As Exception
|
If oEnvelope Is Nothing Then
|
||||||
Logger.Warn("Could not export final document to disk!")
|
Logger.Warn("Envelope could not be loaded for Id [{0}]!", oId)
|
||||||
Throw New ExportDocumentException("Could not export final document to disk!", ex)
|
Throw New ArgumentNullException("EnvelopeData")
|
||||||
End Try
|
End If
|
||||||
|
Logger.Debug("Loading Envelope Data..")
|
||||||
|
Dim oEnvelopeData = GetEnvelopeData(oId)
|
||||||
|
|
||||||
|
If oEnvelopeData Is Nothing Then
|
||||||
|
Logger.Warn("EnvelopeData could not be loaded for Id [{0}]!", oId)
|
||||||
|
Throw New ArgumentNullException("EnvelopeData")
|
||||||
|
End If
|
||||||
|
If Config.DOCUMENT_PATH_MOVE_AFTSEND <> String.Empty Then
|
||||||
|
oEnvelopeData.DocumentPath.Replace(Config.DocumentPathOrigin, Config.DOCUMENT_PATH_MOVE_AFTSEND)
|
||||||
|
Logger.Debug("Replaced Path in oEnvelopeData.DocumentPath!")
|
||||||
|
End If
|
||||||
|
Logger.Debug("Burning Annotations to pdf ...")
|
||||||
|
Dim oBurnedDocument As Byte() = BurnAnnotationsToPdf(oEnvelopeData)
|
||||||
|
If oBurnedDocument Is Nothing Then
|
||||||
|
Logger.Warn("Document could not be finalized!")
|
||||||
|
Throw New ApplicationException("Document could not be finalized")
|
||||||
|
End If
|
||||||
|
|
||||||
|
If ActionService.CreateReport(oEnvelope) = False Then
|
||||||
|
Logger.Warn("Document Report could not be created!")
|
||||||
|
Throw New ApplicationException("Document Report could not be created")
|
||||||
|
End If
|
||||||
|
|
||||||
If Config.NetUse_Finish = True Then
|
Logger.Debug("Creating report..")
|
||||||
If Config.FINISHED_PATH_EX_DMZ <> String.Empty Then
|
Dim oReport As Byte() = ReportCreator.CreateReport(oEnvelope)
|
||||||
If My.Settings.NetUse_PW <> String.Empty And My.Settings.NetUse_Usr <> String.Empty Then
|
Logger.Debug("Report created!")
|
||||||
Clean_DNZ_PAth(Config.FINISHED_PATH_EX_DMZ)
|
|
||||||
'Dim oReturnPath = MoveFileWithNetUse(Config.FINISHED_PATH_EX_DMZ, oOutputFilePath, My.Settings.NetUse_Usr, My.Settings.NetUse_PW)
|
Logger.Debug("Merging documents ...")
|
||||||
'If oReturnPath <> String.Empty Then
|
Dim oMergedDocument As Byte() = PDFMerger.MergeDocuments(oBurnedDocument, oReport)
|
||||||
' oOutputFilePath = oReturnPath
|
Logger.Debug("Documents merged!")
|
||||||
' If Config.EML_PATH_EX_DMZ <> String.Empty Then
|
|
||||||
' Logger.Debug($"Now replacing [{Config.FINISHED_PATH_EX_DMZ}] with ")
|
Dim oOutputDirectoryPath = Path.Combine(Config.ExportPath, ParentFolderUID)
|
||||||
' Logger.Debug($"............. [{Config.EML_PATH_EX_DMZ}] ")
|
If Not Directory.Exists(oOutputDirectoryPath) Then
|
||||||
' oOutputFilePath = oOutputFilePath.Replace(Config.FINISHED_PATH_EX_DMZ, Config.EML_PATH_EX_DMZ)
|
Directory.CreateDirectory(oOutputDirectoryPath)
|
||||||
' Logger.Debug($"oOutputFilePath [{oOutputFilePath}] ")
|
End If
|
||||||
' End If
|
Dim oOutputFilePath = Path.Combine(oOutputDirectoryPath, $"{oEnvelope.Uuid}.pdf")
|
||||||
'Else
|
Logger.Info("Writing finalized Pdf to disk..")
|
||||||
' Logger.Info($"Exiting/Aborting FinalizeDocuments!")
|
Logger.Info("Output path is [{0}]", oOutputFilePath)
|
||||||
' Return Task.FromResult(False)
|
|
||||||
'End If
|
Try
|
||||||
|
File.WriteAllBytes(oOutputFilePath, oMergedDocument)
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Warn("Could not export final document to disk!")
|
||||||
|
Throw New ExportDocumentException("Could not export final document to disk!", ex)
|
||||||
|
End Try
|
||||||
|
|
||||||
|
If Config.NetUse_Finish = True Then
|
||||||
|
If Config.FINISHED_PATH_EX_DMZ <> String.Empty Then
|
||||||
|
If My.Settings.NetUse_PW <> String.Empty And My.Settings.NetUse_Usr <> String.Empty Then
|
||||||
|
Clean_DNZ_PAth(Config.FINISHED_PATH_EX_DMZ)
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
Logger.Info("Writing EB-bytes to database...")
|
||||||
|
Update_File_DB(oOutputFilePath, oEnvelope.Id)
|
||||||
|
|
||||||
Logger.Info("Sending finalized report-mails..")
|
Logger.Info("Sending finalized report-mails..")
|
||||||
|
If SendFinalEmails(oEnvelope) = False Then ', oOutputFilePath
|
||||||
|
Throw New ApplicationException("Final emails could not be sent!")
|
||||||
|
End If
|
||||||
|
Logger.Debug("Setting envelope status..")
|
||||||
|
If ActionService.FinalizeEnvelope(oEnvelope) = False Then
|
||||||
|
Logger.Warn("Envelope could not be finalized!")
|
||||||
|
Throw New ApplicationException("Envelope could not be finalized")
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Warn($"Unhandled exception while working envelope [{oId}] - [{ex.Message}]")
|
||||||
|
End Try
|
||||||
|
|
||||||
If SendFinalEmails(oEnvelope, oOutputFilePath) = False Then
|
|
||||||
Throw New ApplicationException("Final emails could not be sent!")
|
|
||||||
End If
|
|
||||||
|
|
||||||
Logger.Debug("Setting envelope status..")
|
|
||||||
If ActionService.FinalizeEnvelope(oEnvelope) = False Then
|
|
||||||
Logger.Warn("Envelope could not be finalized!")
|
|
||||||
Throw New ApplicationException("Envelope could not be finalized")
|
|
||||||
End If
|
|
||||||
|
|
||||||
oCurrent += 1
|
oCurrent += 1
|
||||||
Logger.Info("Envelope finalized!")
|
Logger.Info("Envelope finalized!")
|
||||||
@@ -259,6 +243,50 @@ Namespace Jobs
|
|||||||
|
|
||||||
Return Task.FromResult(True)
|
Return Task.FromResult(True)
|
||||||
End Function
|
End Function
|
||||||
|
Private Sub Update_File_DB(pFilePath As String, pEnvelopeID As Long)
|
||||||
|
Dim SqlCom As SqlCommand
|
||||||
|
Dim imageData As Byte()
|
||||||
|
Dim sFileName As String
|
||||||
|
Dim qry As String
|
||||||
|
|
||||||
|
Try
|
||||||
|
'Read Image Bytes into a byte array
|
||||||
|
'Initialize SQL Server Connection
|
||||||
|
|
||||||
|
'Convert File to bytes Array
|
||||||
|
imageData = ReadFile(pFilePath)
|
||||||
|
If Not IsNothing(imageData) Then
|
||||||
|
sFileName = System.IO.Path.GetFileName(pFilePath)
|
||||||
|
'Set insert query
|
||||||
|
qry = $"UPDATE TBSIG_ENVELOPE SET DOC_RESULT = @ImageData WHERE GUID = {pEnvelopeID}"
|
||||||
|
'Initialize SqlCommand object for insert.
|
||||||
|
SqlCom = New SqlCommand(qry, Database.GetConnection)
|
||||||
|
'We are passing File Name and Image byte data as sql parameters.
|
||||||
|
SqlCom.Parameters.Add(New SqlParameter("@ImageData", DirectCast(imageData, Object)))
|
||||||
|
'Execute the Query
|
||||||
|
SqlCom.ExecuteNonQuery()
|
||||||
|
End If
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
'Open file in to a filestream and read data in a byte array.
|
||||||
|
Private Function ReadFile(ByVal sPath As String) As Byte()
|
||||||
|
'Initialize byte array with a null value initially.
|
||||||
|
Dim data As Byte() = Nothing
|
||||||
|
'Use FileInfo object to get file size.
|
||||||
|
Dim fInfo As New FileInfo(sPath)
|
||||||
|
Dim numBytes As Long = fInfo.Length
|
||||||
|
'Open FileStream to read file
|
||||||
|
Dim fStream As New FileStream(sPath, FileMode.Open, FileAccess.Read)
|
||||||
|
'Use BinaryReader to read file stream into byte array.
|
||||||
|
Dim br As New BinaryReader(fStream)
|
||||||
|
'When you use BinaryReader, you need to supply number of bytes to read from file.
|
||||||
|
'In this case we want to read entire file. So supplying total number of bytes.
|
||||||
|
data = br.ReadBytes(CInt(numBytes))
|
||||||
|
Return data
|
||||||
|
End Function
|
||||||
Private Function NetUse_Command(pDestinationPath As String, pUsername As String, pPassword As String)
|
Private Function NetUse_Command(pDestinationPath As String, pUsername As String, pPassword As String)
|
||||||
Dim oDectryptedPW = Helpers.Decrypt(My.Settings.NetUse_PW)
|
Dim oDectryptedPW = Helpers.Decrypt(My.Settings.NetUse_PW)
|
||||||
Dim netUseCommand As String = $"net use {pDestinationPath} /user:{pUsername} {oDectryptedPW}"
|
Dim netUseCommand As String = $"net use {pDestinationPath} /user:{pUsername} {oDectryptedPW}"
|
||||||
@@ -301,35 +329,33 @@ Namespace Jobs
|
|||||||
|
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
Private Function SendFinalEmails(pEnvelope As Envelope, pAttachment As String) As Boolean
|
Private Function SendFinalEmails(pEnvelope As Envelope) As Boolean ', pAttachment As String
|
||||||
Dim oMailToCreator = pEnvelope.FinalEmailToCreator
|
Dim oMailToCreator = pEnvelope.FinalEmailToCreator
|
||||||
Dim oMailToReceivers = pEnvelope.FinalEmailToReceivers
|
Dim oMailToReceivers = pEnvelope.FinalEmailToReceivers
|
||||||
|
|
||||||
If oMailToCreator <> FinalEmailType.No Then
|
If oMailToCreator <> FinalEmailType.No Then
|
||||||
Logger.Debug("Sending email to creator ...")
|
Logger.Debug("Sending email to creator ...")
|
||||||
SendFinalEmailToCreator(pEnvelope, pAttachment)
|
SendFinalEmailToCreator(pEnvelope) ', pAttachment
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If oMailToReceivers <> FinalEmailType.No Then
|
If oMailToReceivers <> FinalEmailType.No Then
|
||||||
Logger.Debug("Sending emails to receivers..")
|
Logger.Debug("Sending emails to receivers..")
|
||||||
|
SendFinalEmailToReceivers(pEnvelope) ', pAttachment
|
||||||
|
|
||||||
SendFinalEmailToReceivers(pEnvelope, pAttachment)
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function SendFinalEmailToCreator(pEnvelope As Envelope, pAttachment As String) As Boolean
|
Private Function SendFinalEmailToCreator(pEnvelope As Envelope) As Boolean ', pAttachment As String
|
||||||
Dim oIncludeAttachment = SendFinalEmailWithAttachment(pEnvelope.FinalEmailToCreator)
|
Dim oIncludeAttachment = SendFinalEmailWithAttachment(pEnvelope.FinalEmailToCreator)
|
||||||
Dim oAttachment = String.Empty
|
' Dim oAttachment = String.Empty
|
||||||
|
|
||||||
Logger.Debug("Attachment included: [{0}]", oIncludeAttachment)
|
Logger.Debug("Attachment included: [{0}]", oIncludeAttachment)
|
||||||
If oIncludeAttachment Then
|
If oIncludeAttachment Then
|
||||||
oAttachment = pAttachment
|
'oAttachment = pAttachment
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If ActionService.CompleteEnvelope(pEnvelope, oAttachment) = False Then
|
If ActionService.CompleteEnvelope(pEnvelope) = False Then ', oAttachment
|
||||||
Logger.Error("Envelope could not be completed for receiver [{0}]", pEnvelope.User.Email)
|
Logger.Error("Envelope could not be completed for receiver [{0}]", pEnvelope.User.Email)
|
||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
@@ -337,18 +363,18 @@ Namespace Jobs
|
|||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function SendFinalEmailToReceivers(pEnvelope As Envelope, pAttachment As String) As Boolean
|
Private Function SendFinalEmailToReceivers(pEnvelope As Envelope) As Boolean ', pAttachment As String
|
||||||
Dim oIncludeAttachment = SendFinalEmailWithAttachment(pEnvelope.FinalEmailToReceivers)
|
Dim oIncludeAttachment = SendFinalEmailWithAttachment(pEnvelope.FinalEmailToReceivers)
|
||||||
Dim oAttachment = String.Empty
|
'Dim oAttachment = String.Empty
|
||||||
|
|
||||||
Logger.Debug("Attachment included: [{0}]", oIncludeAttachment)
|
Logger.Debug("Attachment included: [{0}]", oIncludeAttachment)
|
||||||
If oIncludeAttachment Then
|
If oIncludeAttachment Then
|
||||||
|
|
||||||
oAttachment = pAttachment
|
' oAttachment = pAttachment
|
||||||
End If
|
End If
|
||||||
|
|
||||||
For Each oReceiver In pEnvelope.Receivers
|
For Each oReceiver In pEnvelope.Receivers
|
||||||
If ActionService.CompleteEnvelope(pEnvelope, oReceiver, oAttachment) = False Then
|
If ActionService.CompleteEnvelope(pEnvelope, oReceiver) = False Then ', oAttachment
|
||||||
Logger.Error("Envelope could not be completed for receiver [{0}]", oReceiver.Email)
|
Logger.Error("Envelope could not be completed for receiver [{0}]", oReceiver.Email)
|
||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
@@ -371,36 +397,52 @@ Namespace Jobs
|
|||||||
Logger.Info($"Burning [{pEnvelopeData.AnnotationData.Count}] signatures")
|
Logger.Info($"Burning [{pEnvelopeData.AnnotationData.Count}] signatures")
|
||||||
Dim oAnnotations = pEnvelopeData.AnnotationData
|
Dim oAnnotations = pEnvelopeData.AnnotationData
|
||||||
Dim oInputPath = ""
|
Dim oInputPath = ""
|
||||||
|
If IsNothing(pEnvelopeData.DocAsByte) Then
|
||||||
If My.Settings.RuninDMZ Then
|
If My.Settings.RuninDMZ Then
|
||||||
Logger.Debug("Replacing Path in pData.DocumentPath ...")
|
Logger.Debug("Replacing Path in pData.DocumentPath ...")
|
||||||
oInputPath = pEnvelopeData.DocumentPath.Replace(Config.DocumentPathOrigin, Config.DocumentPath)
|
oInputPath = pEnvelopeData.DocumentPath.Replace(Config.DocumentPathOrigin, Config.DocumentPath)
|
||||||
ElseIf Config.DOCUMENT_PATH_MOVE_AFTSEND <> String.Empty Then
|
ElseIf Config.DOCUMENT_PATH_MOVE_AFTSEND <> String.Empty Then
|
||||||
Logger.Debug("Replacing Path in pData.DocumentPath ...")
|
Logger.Debug("Replacing Path in pData.DocumentPath ...")
|
||||||
oInputPath = pEnvelopeData.DocumentPath.Replace(Config.DocumentPathOrigin, Config.DOCUMENT_PATH_MOVE_AFTSEND)
|
oInputPath = pEnvelopeData.DocumentPath.Replace(Config.DocumentPathOrigin, Config.DOCUMENT_PATH_MOVE_AFTSEND)
|
||||||
|
Else
|
||||||
|
oInputPath = pEnvelopeData.DocumentPath
|
||||||
|
End If
|
||||||
|
Logger.Info($"Input path: [{oInputPath}]")
|
||||||
Else
|
Else
|
||||||
oInputPath = pEnvelopeData.DocumentPath
|
Logger.Info($"we got bytes..")
|
||||||
|
oInputPath = Config.DocumentPathOrigin
|
||||||
|
Logger.Info($"oInputPath: {Config.DocumentPathOrigin}")
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
If IsNothing(pEnvelopeData.DocAsByte) Then
|
||||||
|
Dim oDirectorySource As String = Path.GetDirectoryName(oInputPath)
|
||||||
|
Dim split As String() = oDirectorySource.Split("\")
|
||||||
|
ParentFolderUID = split(split.Length - 1)
|
||||||
|
Else
|
||||||
|
ParentFolderUID = pEnvelopeData.EnvelopeUUID
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Logger.Info($"Input path: [{oInputPath}]")
|
|
||||||
Dim oDirectorySource As String = Path.GetDirectoryName(oInputPath)
|
|
||||||
Dim split As String() = oDirectorySource.Split("\")
|
|
||||||
ParentFolderUID = split(split.Length - 1)
|
|
||||||
|
|
||||||
Logger.Info("ParentFolderUID: [{0}]", ParentFolderUID)
|
Logger.Info("ParentFolderUID: [{0}]", ParentFolderUID)
|
||||||
Dim oInputDocumentBuffer As Byte()
|
Dim oInputDocumentBuffer As Byte()
|
||||||
Try
|
If Not IsNothing(pEnvelopeData.DocAsByte) Then
|
||||||
oInputDocumentBuffer = File.ReadAllBytes(oInputPath)
|
oInputDocumentBuffer = pEnvelopeData.DocAsByte
|
||||||
Catch ex As Exception
|
Else
|
||||||
Logger.Error(ex)
|
Try
|
||||||
Throw New BurnAnnotationException("Source document could not be read from disk!", ex)
|
oInputDocumentBuffer = File.ReadAllBytes(oInputPath)
|
||||||
End Try
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
Throw New BurnAnnotationException("Source document could not be read from disk!", ex)
|
||||||
|
End Try
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
Return PDFBurner.BurnInstantJSONAnnotationsToPDF(oInputDocumentBuffer, oAnnotations)
|
Return PDFBurner.BurnInstantJSONAnnotationsToPDF(oInputDocumentBuffer, oAnnotations)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function GetEnvelopeData(pEnvelopeId As Integer) As EnvelopeData
|
Private Function GetEnvelopeData(pEnvelopeId As Integer) As EnvelopeData
|
||||||
Dim oSql = $"SELECT T.GUID, T2.FILEPATH FROM [dbo].[TBSIG_ENVELOPE] T
|
Dim oSql = $"SELECT T.GUID, T.ENVELOPE_UUID,T2.FILEPATH, T2.BYTE_DATA FROM [dbo].[TBSIG_ENVELOPE] T
|
||||||
JOIN TBSIG_ENVELOPE_DOCUMENT T2 ON T.GUID = T2.ENVELOPE_ID
|
JOIN TBSIG_ENVELOPE_DOCUMENT T2 ON T.GUID = T2.ENVELOPE_ID
|
||||||
WHERE T.GUID = {pEnvelopeId}"
|
WHERE T.GUID = {pEnvelopeId}"
|
||||||
Dim oTable As DataTable = Database.GetDatatable(oSql)
|
Dim oTable As DataTable = Database.GetDatatable(oSql)
|
||||||
@@ -413,7 +455,9 @@ Namespace Jobs
|
|||||||
Dim oData As New EnvelopeData With {
|
Dim oData As New EnvelopeData With {
|
||||||
.EnvelopeId = pEnvelopeId,
|
.EnvelopeId = pEnvelopeId,
|
||||||
.DocumentPath = oRow.ItemEx("FILEPATH", ""),
|
.DocumentPath = oRow.ItemEx("FILEPATH", ""),
|
||||||
.AnnotationData = oAnnotationData
|
.AnnotationData = oAnnotationData,
|
||||||
|
.DocAsByte = DirectCast(oRow.Item("BYTE_DATA"), Byte()),
|
||||||
|
.EnvelopeUUID = oRow.ItemEx("ENVELOPE_UUID", "")
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger.Debug("Document path: [{0}]", oData.DocumentPath)
|
Logger.Debug("Document path: [{0}]", oData.DocumentPath)
|
||||||
|
|||||||
@@ -15,14 +15,18 @@ Namespace Jobs.FinalizeDocument
|
|||||||
|
|
||||||
Private Const ANNOTATION_TYPE_IMAGE = "pspdfkit/image"
|
Private Const ANNOTATION_TYPE_IMAGE = "pspdfkit/image"
|
||||||
Private Const ANNOTATION_TYPE_INK = "pspdfkit/ink"
|
Private Const ANNOTATION_TYPE_INK = "pspdfkit/ink"
|
||||||
|
Private Const ANNOTATION_TYPE_WIDGET = "pspdfkit/widget"
|
||||||
|
Private Property _ignoredLabels As List(Of String)
|
||||||
|
|
||||||
Public Sub New(pLogConfig As LogConfig, pGDPictureLicenseKey As String)
|
Public Sub New(pLogConfig As LogConfig, pGDPictureLicenseKey As String, ignoredLabels As List(Of String))
|
||||||
MyBase.New(pLogConfig)
|
MyBase.New(pLogConfig)
|
||||||
|
|
||||||
LicenseManager = New LicenseManager()
|
LicenseManager = New LicenseManager()
|
||||||
LicenseManager.RegisterKEY(pGDPictureLicenseKey)
|
LicenseManager.RegisterKEY(pGDPictureLicenseKey)
|
||||||
|
|
||||||
Manager = New AnnotationManager()
|
Manager = New AnnotationManager()
|
||||||
|
|
||||||
|
_ignoredLabels = ignoredLabels
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Function BurnInstantJSONAnnotationsToPDF(pSourceBuffer As Byte(), pInstantJSONList As List(Of String)) As Byte()
|
Public Function BurnInstantJSONAnnotationsToPDF(pSourceBuffer As Byte(), pInstantJSONList As List(Of String)) As Byte()
|
||||||
@@ -37,11 +41,11 @@ Namespace Jobs.FinalizeDocument
|
|||||||
|
|
||||||
For Each oJSON In pInstantJSONList
|
For Each oJSON In pInstantJSONList
|
||||||
If AddInstantJSONAnnotationToPDF(oJSON) = False Then
|
If AddInstantJSONAnnotationToPDF(oJSON) = False Then
|
||||||
|
Logger.Warn($"Error in AddInstantJSONAnnotationToPDF - oJson: ")
|
||||||
|
Logger.Warn(oJSON)
|
||||||
Throw New BurnAnnotationException($"Adding Annotation failed")
|
Throw New BurnAnnotationException($"Adding Annotation failed")
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
|
||||||
|
|
||||||
oResult = Manager.BurnAnnotationsToPage(RemoveInitialAnnots:=True, VectorMode:=True)
|
oResult = Manager.BurnAnnotationsToPage(RemoveInitialAnnots:=True, VectorMode:=True)
|
||||||
If oResult <> GdPictureStatus.OK Then
|
If oResult <> GdPictureStatus.OK Then
|
||||||
Throw New BurnAnnotationException($"Could not burn annotations to file: [{oResult}]")
|
Throw New BurnAnnotationException($"Could not burn annotations to file: [{oResult}]")
|
||||||
@@ -70,6 +74,7 @@ Namespace Jobs.FinalizeDocument
|
|||||||
Dim oAnnotationData = JsonConvert.DeserializeObject(Of AnnotationData)(pInstantJSON)
|
Dim oAnnotationData = JsonConvert.DeserializeObject(Of AnnotationData)(pInstantJSON)
|
||||||
|
|
||||||
For Each oAnnotation In oAnnotationData.annotations
|
For Each oAnnotation In oAnnotationData.annotations
|
||||||
|
Logger.Debug("Adding AnnotationID: " + oAnnotation.id)
|
||||||
Select Case oAnnotation.type
|
Select Case oAnnotation.type
|
||||||
Case ANNOTATION_TYPE_IMAGE
|
Case ANNOTATION_TYPE_IMAGE
|
||||||
AddImageAnnotation(oAnnotation, oAnnotationData.attachments)
|
AddImageAnnotation(oAnnotation, oAnnotationData.attachments)
|
||||||
@@ -77,6 +82,12 @@ Namespace Jobs.FinalizeDocument
|
|||||||
Case ANNOTATION_TYPE_INK
|
Case ANNOTATION_TYPE_INK
|
||||||
AddInkAnnotation(oAnnotation)
|
AddInkAnnotation(oAnnotation)
|
||||||
|
|
||||||
|
Case ANNOTATION_TYPE_WIDGET
|
||||||
|
'Add form field values
|
||||||
|
Dim formFieldValue = oAnnotationData.formFieldValues.FirstOrDefault(Function(fv) fv.name = oAnnotation.id)
|
||||||
|
If formFieldValue IsNot Nothing AndAlso Not _ignoredLabels.Contains(formFieldValue.value) Then
|
||||||
|
AddFormFieldValue(oAnnotation, formFieldValue)
|
||||||
|
End If
|
||||||
End Select
|
End Select
|
||||||
Next
|
Next
|
||||||
|
|
||||||
@@ -137,6 +148,33 @@ Namespace Jobs.FinalizeDocument
|
|||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Function AddFormFieldValue(pAnnotation As Annotation, formFieldValue As FormFieldValue) As Boolean
|
||||||
|
Try
|
||||||
|
' Convert pixels to Inches
|
||||||
|
Dim oBounds = pAnnotation.bbox.Select(AddressOf ToInches).ToList()
|
||||||
|
|
||||||
|
Dim oX = oBounds.Item(0)
|
||||||
|
Dim oY = oBounds.Item(1)
|
||||||
|
Dim oWidth = oBounds.Item(2)
|
||||||
|
Dim oHeight = oBounds.Item(3)
|
||||||
|
|
||||||
|
Manager.SelectPage(pAnnotation.pageIndex + 1)
|
||||||
|
' Add the text annotation
|
||||||
|
Dim ant = Manager.AddTextAnnot(oX, oY, oWidth, oHeight, formFieldValue.value)
|
||||||
|
|
||||||
|
' Set the font properties
|
||||||
|
ant.FontName = "Arial"
|
||||||
|
ant.FontSize = 8
|
||||||
|
ant.FontStyle = FontStyle.Italic
|
||||||
|
Manager.SaveAnnotationsToPage()
|
||||||
|
Return True
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Warn("Could not add image annotation!")
|
||||||
|
Logger.Error(ex)
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
Private Function ToPointF(pPoints As List(Of Single)) As PointF
|
Private Function ToPointF(pPoints As List(Of Single)) As PointF
|
||||||
Dim oPoints = pPoints.Select(AddressOf ToInches).ToList()
|
Dim oPoints = pPoints.Select(AddressOf ToInches).ToList()
|
||||||
Return New PointF(oPoints.Item(0), oPoints.Item(1))
|
Return New PointF(oPoints.Item(0), oPoints.Item(1))
|
||||||
@@ -153,6 +191,7 @@ Namespace Jobs.FinalizeDocument
|
|||||||
Friend Class AnnotationData
|
Friend Class AnnotationData
|
||||||
Public Property annotations As List(Of Annotation)
|
Public Property annotations As List(Of Annotation)
|
||||||
Public Property attachments As Dictionary(Of String, Attachment)
|
Public Property attachments As Dictionary(Of String, Attachment)
|
||||||
|
Public Property formFieldValues As List(Of FormFieldValue)
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
Friend Class Annotation
|
Friend Class Annotation
|
||||||
@@ -174,5 +213,10 @@ Namespace Jobs.FinalizeDocument
|
|||||||
Public Property binary As String
|
Public Property binary As String
|
||||||
Public Property contentType As String
|
Public Property contentType As String
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
|
Friend Class FormFieldValue
|
||||||
|
Public Property name As String
|
||||||
|
Public Property value As String
|
||||||
|
End Class
|
||||||
End Class
|
End Class
|
||||||
End Namespace
|
End Namespace
|
||||||
|
|||||||
@@ -24,7 +24,8 @@ Public Class DocumentModel
|
|||||||
.Filepath = pRow.ItemEx("FILEPATH", ""),
|
.Filepath = pRow.ItemEx("FILEPATH", ""),
|
||||||
.FileNameOriginal = pRow.ItemEx("FILENAME_ORIGINAL", ""),
|
.FileNameOriginal = pRow.ItemEx("FILENAME_ORIGINAL", ""),
|
||||||
.IsTempFile = False,
|
.IsTempFile = False,
|
||||||
.Elements = ElementModel.List(oDocumentId, pReceiverId)
|
.Elements = ElementModel.List(oDocumentId, pReceiverId),
|
||||||
|
.Byte_Data = DirectCast(pRow.Item("BYTE_DATA"), Byte())
|
||||||
}
|
}
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@@ -79,18 +80,21 @@ Public Class DocumentModel
|
|||||||
([FILENAME]
|
([FILENAME]
|
||||||
,[FILENAME_ORIGINAL]
|
,[FILENAME_ORIGINAL]
|
||||||
,[FILEPATH]
|
,[FILEPATH]
|
||||||
,[ENVELOPE_ID])
|
,[ENVELOPE_ID]
|
||||||
|
,[BYTE_DATA])
|
||||||
VALUES
|
VALUES
|
||||||
(@FILENAME
|
(@FILENAME
|
||||||
,@FILENAME_ORIGINAL
|
,@FILENAME_ORIGINAL
|
||||||
,@FILEPATH
|
,@FILEPATH
|
||||||
,@ENVELOPE_ID)"
|
,@ENVELOPE_ID
|
||||||
|
,@BYTE_DATA)"
|
||||||
|
|
||||||
Dim oCommand As New SqlCommand(oSql)
|
Dim oCommand As New SqlCommand(oSql)
|
||||||
oCommand.Parameters.Add("FILENAME", SqlDbType.NVarChar).Value = pDocument.Filename
|
oCommand.Parameters.Add("FILENAME", SqlDbType.NVarChar).Value = pDocument.Filename
|
||||||
oCommand.Parameters.Add("FILENAME_ORIGINAL", SqlDbType.NVarChar).Value = pDocument.FileNameOriginal
|
oCommand.Parameters.Add("FILENAME_ORIGINAL", SqlDbType.NVarChar).Value = pDocument.FileNameOriginal
|
||||||
oCommand.Parameters.Add("FILEPATH", SqlDbType.NVarChar).Value = pDocument.Filepath
|
oCommand.Parameters.Add("FILEPATH", SqlDbType.NVarChar).Value = pDocument.Filepath
|
||||||
oCommand.Parameters.Add("ENVELOPE_ID", SqlDbType.Int).Value = pEnvelope.Id
|
oCommand.Parameters.Add("ENVELOPE_ID", SqlDbType.Int).Value = pEnvelope.Id
|
||||||
|
oCommand.Parameters.Add(New SqlParameter("@BYTE_DATA", DirectCast(pDocument.Byte_Data, Object)))
|
||||||
|
|
||||||
If Database.ExecuteNonQuery(oCommand, pTransaction) Then
|
If Database.ExecuteNonQuery(oCommand, pTransaction) Then
|
||||||
pDocument.EnvelopeId = pEnvelope.Id
|
pDocument.EnvelopeId = pEnvelope.Id
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ Public Class EmailModel
|
|||||||
Public Function Insert(pEmail As EmailData) As Boolean
|
Public Function Insert(pEmail As EmailData) As Boolean
|
||||||
Try
|
Try
|
||||||
Dim oSql = "INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] "
|
Dim oSql = "INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] "
|
||||||
oSql += " (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, REMINDER_TYPE_ID, EMAIL_ATTMT1, WF_ID) "
|
oSql += " (EMAIL_ADRESS, EMAIL_SUBJ, EMAIL_BODY, ADDED_WHO, SENDING_PROFILE, REFERENCE_ID, REFERENCE_STRING, REMINDER_TYPE_ID, WF_ID,ATT1_RELATED_ID,ATT1_REL_TYPE) "
|
||||||
oSql += " VALUES (@EMAIL_ADRESS, @EMAIL_SUBJ, @EMAIL_BODY, @ADDED_WHO, @SENDING_PROFILE, @REFERENCE_ID, @REFERENCE_STRING, @REMINDER_TYPE_ID, @EMAIL_ATTMT1, @WF_ID)"
|
oSql += " VALUES (@EMAIL_ADRESS, @EMAIL_SUBJ, @EMAIL_BODY, @ADDED_WHO, @SENDING_PROFILE, @REFERENCE_ID, @REFERENCE_STRING, @REMINDER_TYPE_ID, @WF_ID,@ATT1_RELATED_ID,@ATT1_REL_TYPE)"
|
||||||
Dim oCommand As New SqlCommand(oSql)
|
Dim oCommand As New SqlCommand(oSql)
|
||||||
oCommand.Parameters.Add("EMAIL_ADRESS", SqlDbType.NVarChar).Value = pEmail.EmailAdress
|
oCommand.Parameters.Add("EMAIL_ADRESS", SqlDbType.NVarChar).Value = pEmail.EmailAdress
|
||||||
oCommand.Parameters.Add("EMAIL_SUBJ", SqlDbType.NVarChar).Value = pEmail.EmailSubject
|
oCommand.Parameters.Add("EMAIL_SUBJ", SqlDbType.NVarChar).Value = pEmail.EmailSubject
|
||||||
@@ -23,8 +23,10 @@ Public Class EmailModel
|
|||||||
oCommand.Parameters.Add("REFERENCE_ID", SqlDbType.Int).Value = pEmail.ReferenceID
|
oCommand.Parameters.Add("REFERENCE_ID", SqlDbType.Int).Value = pEmail.ReferenceID
|
||||||
oCommand.Parameters.Add("REFERENCE_STRING", SqlDbType.NVarChar).Value = pEmail.ReferenceString
|
oCommand.Parameters.Add("REFERENCE_STRING", SqlDbType.NVarChar).Value = pEmail.ReferenceString
|
||||||
oCommand.Parameters.Add("REMINDER_TYPE_ID", SqlDbType.Int).Value = 202377
|
oCommand.Parameters.Add("REMINDER_TYPE_ID", SqlDbType.Int).Value = 202377
|
||||||
oCommand.Parameters.Add("EMAIL_ATTMT1", SqlDbType.NVarChar).Value = pEmail.EmailAttachment
|
'oCommand.Parameters.Add("EMAIL_ATTMT1", SqlDbType.NVarChar).Value = pEmail.EmailAttachment
|
||||||
oCommand.Parameters.Add("WF_ID", SqlDbType.Int).Value = pEmail.EmailType ' Wegen DB-Trigger MUSS dieser Wert gesetzt werden
|
oCommand.Parameters.Add("WF_ID", SqlDbType.Int).Value = pEmail.EmailType ' Wegen DB-Trigger MUSS dieser Wert gesetzt werden
|
||||||
|
oCommand.Parameters.Add("ATT1_RELATED_ID", SqlDbType.Int).Value = pEmail.ATT1_RELATED_ID
|
||||||
|
oCommand.Parameters.Add("ATT1_REL_TYPE", SqlDbType.NVarChar).Value = pEmail.ATT1_REL_TYPE
|
||||||
|
|
||||||
If Database.ExecuteNonQuery(oCommand) Then
|
If Database.ExecuteNonQuery(oCommand) Then
|
||||||
Return True
|
Return True
|
||||||
|
|||||||
@@ -47,7 +47,15 @@ Public Class EnvelopeModel
|
|||||||
.FinalEmailToCreator = ObjectEx.ToEnum(Of Constants.FinalEmailType)(pRow.ItemEx("FINAL_EMAIL_TO_CREATOR", Constants.FinalEmailType.No.ToString())),
|
.FinalEmailToCreator = ObjectEx.ToEnum(Of Constants.FinalEmailType)(pRow.ItemEx("FINAL_EMAIL_TO_CREATOR", Constants.FinalEmailType.No.ToString())),
|
||||||
.FinalEmailToReceivers = ObjectEx.ToEnum(Of Constants.FinalEmailType)(pRow.ItemEx("FINAL_EMAIL_TO_RECEIVERS", Constants.FinalEmailType.No.ToString()))
|
.FinalEmailToReceivers = ObjectEx.ToEnum(Of Constants.FinalEmailType)(pRow.ItemEx("FINAL_EMAIL_TO_RECEIVERS", Constants.FinalEmailType.No.ToString()))
|
||||||
}
|
}
|
||||||
|
Dim oDOC_RESULT = pRow.Item("DOC_RESULT")
|
||||||
|
If Not IsDBNull(oDOC_RESULT) Then
|
||||||
|
Dim oByte As Byte() = DirectCast(pRow.Item("DOC_RESULT"), Byte())
|
||||||
|
If Not IsNothing(oByte) Then
|
||||||
|
oEnvelope.DOC_RESULT = oByte
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
oEnvelope.DOC_RESULT = Nothing
|
||||||
|
End If
|
||||||
oEnvelope.User = UserModel.SelectUser(oEnvelope.UserId)
|
oEnvelope.User = UserModel.SelectUser(oEnvelope.UserId)
|
||||||
oEnvelope.Receivers = ReceiverModel.ListEnvelopeReceivers(oEnvelope.Id)
|
oEnvelope.Receivers = ReceiverModel.ListEnvelopeReceivers(oEnvelope.Id)
|
||||||
oEnvelope.Documents = DocumentModel.List(oEnvelope.Id)
|
oEnvelope.Documents = DocumentModel.List(oEnvelope.Id)
|
||||||
@@ -185,6 +193,9 @@ Public Class EnvelopeModel
|
|||||||
oCommand.Parameters.Add("TITLE", SqlDbType.NVarChar).Value = pEnvelope.Title
|
oCommand.Parameters.Add("TITLE", SqlDbType.NVarChar).Value = pEnvelope.Title
|
||||||
oCommand.Parameters.Add("ENVELOPE_TYPE", SqlDbType.Int).Value = pEnvelope.EnvelopeTypeId
|
oCommand.Parameters.Add("ENVELOPE_TYPE", SqlDbType.Int).Value = pEnvelope.EnvelopeTypeId
|
||||||
oCommand.Parameters.Add("CONTRACT_TYPE", SqlDbType.Int).Value = pEnvelope.ContractType
|
oCommand.Parameters.Add("CONTRACT_TYPE", SqlDbType.Int).Value = pEnvelope.ContractType
|
||||||
|
If IsNothing(pEnvelope.Language) Then
|
||||||
|
pEnvelope.Language = "de-DE"
|
||||||
|
End If
|
||||||
oCommand.Parameters.Add("LANGUAGE", SqlDbType.NVarChar).Value = pEnvelope.Language
|
oCommand.Parameters.Add("LANGUAGE", SqlDbType.NVarChar).Value = pEnvelope.Language
|
||||||
oCommand.Parameters.Add("CERTIFICATION_TYPE", SqlDbType.Int).Value = pEnvelope.CertificationType
|
oCommand.Parameters.Add("CERTIFICATION_TYPE", SqlDbType.Int).Value = pEnvelope.CertificationType
|
||||||
oCommand.Parameters.Add("EXPIRES_WHEN_DAYS", SqlDbType.Int).Value = pEnvelope.ExpiresWhenDays
|
oCommand.Parameters.Add("EXPIRES_WHEN_DAYS", SqlDbType.Int).Value = pEnvelope.ExpiresWhenDays
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ Public Class HistoryModel
|
|||||||
|
|
||||||
Private Function ToEnvelopeHistoryEntry(pRow As DataRow) As EnvelopeHistoryEntry
|
Private Function ToEnvelopeHistoryEntry(pRow As DataRow) As EnvelopeHistoryEntry
|
||||||
Return New EnvelopeHistoryEntry() With {
|
Return New EnvelopeHistoryEntry() With {
|
||||||
.ActionDate = pRow.Item("ACTION_DATE"),
|
.ActionDate = pRow.ItemEx(Of Date)("ACTION_DATE", Nothing),
|
||||||
.EnvelopeId = pRow.Item("ENVELOPE_ID"),
|
.EnvelopeId = pRow.Item("ENVELOPE_ID"),
|
||||||
.Status = pRow.Item("STATUS"),
|
.Status = pRow.Item("STATUS"),
|
||||||
.UserReference = pRow.ItemEx("USER_REFERENCE", "")
|
.UserReference = pRow.ItemEx("USER_REFERENCE", "")
|
||||||
@@ -18,7 +18,7 @@ Public Class HistoryModel
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function List(pEnvelopeId As Integer) As List(Of EnvelopeHistoryEntry)
|
Public Function List(pEnvelopeId As Integer) As List(Of EnvelopeHistoryEntry)
|
||||||
Dim oSql = $"SELECT * FROM TBSIG_ENVELOPE_HISTORY WHERE ENVELOPE_ID = {pEnvelopeId} ORDER BY GUID DESC"
|
Dim oSql = $"SELECT * FROM TBSIG_ENVELOPE_HISTORY WHERE ENVELOPE_ID = {pEnvelopeId} AND ACTION_DATE IS NOT NULL ORDER BY GUID DESC"
|
||||||
Dim oTable = Database.GetDatatable(oSql)
|
Dim oTable = Database.GetDatatable(oSql)
|
||||||
Return oTable?.Rows.
|
Return oTable?.Rows.
|
||||||
Cast(Of DataRow).
|
Cast(Of DataRow).
|
||||||
|
|||||||
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
|||||||
' indem Sie "*" wie unten gezeigt eingeben:
|
' indem Sie "*" wie unten gezeigt eingeben:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("1.5.0.0")>
|
<Assembly: AssemblyVersion("1.9.1.0")>
|
||||||
<Assembly: AssemblyFileVersion("1.5.0.0")>
|
<Assembly: AssemblyFileVersion("1.9.1.0")>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
Imports DevExpress.DataAccess.Native.Web
|
Imports DevExpress.DataAccess.Native.Web
|
||||||
Imports DigitalData.Modules.Base
|
Imports DigitalData.Modules.Base
|
||||||
|
Imports EnvelopeGenerator.Common.My.Resources
|
||||||
|
|
||||||
Public Class ActionService
|
Public Class ActionService
|
||||||
Inherits BaseService
|
Inherits BaseService
|
||||||
@@ -33,14 +34,18 @@ Public Class ActionService
|
|||||||
|
|
||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
Public Function ResendReceiver(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
|
||||||
|
EmailService.SendDocumentReceivedEmail(pEnvelope, pReceiver)
|
||||||
|
End Function
|
||||||
|
|
||||||
Public Function DeleteEnvelope(pEnvelope As Envelope) As Boolean
|
|
||||||
|
Public Function DeleteEnvelope(pEnvelope As Envelope, pReason As String) As Boolean
|
||||||
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.EnvelopeDeleted, pEnvelope.User.Email) = False Then
|
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.EnvelopeDeleted, pEnvelope.User.Email) = False Then
|
||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim oSendResult = pEnvelope.Receivers.
|
Dim oSendResult = pEnvelope.Receivers.
|
||||||
Select(Function(r) EmailService.SendEnvelopeDeletedEmail(pEnvelope, r)).
|
Select(Function(r) EmailService.SendEnvelopeDeletedEmail(pEnvelope, r, pReason)).
|
||||||
All(Function(r) r = True)
|
All(Function(r) r = True)
|
||||||
|
|
||||||
If oSendResult = False Then
|
If oSendResult = False Then
|
||||||
@@ -108,20 +113,20 @@ Public Class ActionService
|
|||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function CompleteEnvelope(pEnvelope As Envelope, pReceiver As EnvelopeReceiver, pAttachment As String) As Boolean
|
Public Function CompleteEnvelope(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean ', pAttachment As String
|
||||||
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.MessageCompletionSent, pReceiver.Email) = False Then
|
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.MessageCompletionSent, pReceiver.Email) = False Then
|
||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Return EmailService.SendDocumentCompletedEmailToReceiver(pEnvelope, pReceiver, pAttachment)
|
Return EmailService.SendDocumentCompletedEmailToReceiver(pEnvelope, pReceiver) ', pAttachment
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function CompleteEnvelope(pEnvelope As Envelope, pAttachment As String) As Boolean
|
Public Function CompleteEnvelope(pEnvelope As Envelope) As Boolean ', pAttachment As String
|
||||||
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.MessageCompletionSent, pEnvelope.User.Email) = False Then
|
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.MessageCompletionSent, pEnvelope.User.Email) = False Then
|
||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Return EmailService.SendDocumentCompletedEmailToCreator(pEnvelope, pAttachment)
|
Return EmailService.SendDocumentCompletedEmailToCreator(pEnvelope) ', pAttachment
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function CreateReport(pEnvelope As Envelope) As Boolean
|
Public Function CreateReport(pEnvelope As Envelope) As Boolean
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
Imports DigitalData.Modules.Base
|
Imports DigitalData.Modules.Base
|
||||||
Imports DigitalData.Modules.Logging
|
Imports DigitalData.Modules.Logging
|
||||||
|
Imports EnvelopeGenerator.Common.My.Resources
|
||||||
|
|
||||||
Public Class EmailService
|
Public Class EmailService
|
||||||
Inherits BaseService
|
Inherits BaseService
|
||||||
@@ -15,14 +16,14 @@ Public Class EmailService
|
|||||||
EmailTemplate = New TemplateService(pState)
|
EmailTemplate = New TemplateService(pState)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Function SendEnvelopeDeletedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
|
Public Function SendEnvelopeDeletedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver, pReason As String) As Boolean
|
||||||
Logger.Debug("Creating email data object.")
|
Logger.Debug("Creating email data object.")
|
||||||
Dim oEmailData As New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageDeletionSent) With
|
Dim oEmailData As New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageDeletionSent) With
|
||||||
{
|
{
|
||||||
.SignatureLink = ""
|
.SignatureLink = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
EmailTemplate.FillEnvelopeDeletedEmailBody(oEmailData)
|
EmailTemplate.FillEnvelopeDeletedEmailBody(oEmailData, pReason)
|
||||||
|
|
||||||
If EmailModel.Insert(oEmailData) = False Then
|
If EmailModel.Insert(oEmailData) = False Then
|
||||||
Logger.Error("EMail data could not be inserted.")
|
Logger.Error("EMail data could not be inserted.")
|
||||||
@@ -49,6 +50,15 @@ Public Class EmailService
|
|||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Public Function GetReceiverUrl(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As String
|
||||||
|
Dim oEmailData As New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageInvitationSent) With
|
||||||
|
{
|
||||||
|
.SignatureLink = Helpers.GetEnvelopeURL(State.DbConfig.SignatureHost, pEnvelope.Uuid, pReceiver.Signature)
|
||||||
|
}
|
||||||
|
Return oEmailData.SignatureLink
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
Public Function SendDocumentAccessCodeReceivedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
|
Public Function SendDocumentAccessCodeReceivedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
|
||||||
Logger.Debug("Creating email data object.")
|
Logger.Debug("Creating email data object.")
|
||||||
Dim oEmailData As New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageAccessCodeSent) With
|
Dim oEmailData As New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageAccessCodeSent) With
|
||||||
@@ -83,14 +93,15 @@ Public Class EmailService
|
|||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function SendDocumentCompletedEmailToReceiver(pEnvelope As Envelope, pReceiver As EnvelopeReceiver, pAttachment As String) As Boolean
|
Public Function SendDocumentCompletedEmailToReceiver(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean ', pAttachment As String
|
||||||
Logger.Debug("Creating email data object.")
|
Logger.Debug("Creating email data object.")
|
||||||
Dim oEmailData = New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageCompletionSent) With
|
Dim oEmailData = New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageCompletionSent) With
|
||||||
{
|
{
|
||||||
.SignatureLink = "",
|
.SignatureLink = "",
|
||||||
.EmailAttachment = pAttachment
|
.ATT1_RELATED_ID = pEnvelope.Id,
|
||||||
|
.ATT1_REL_TYPE = "EnvelopeResult"
|
||||||
}
|
}
|
||||||
|
' .EmailAttachment = pAttachment,
|
||||||
Logger.Debug("Sending mail to receiver: [{0}]", oEmailData.EmailAdress)
|
Logger.Debug("Sending mail to receiver: [{0}]", oEmailData.EmailAdress)
|
||||||
|
|
||||||
EmailTemplate.FillDocumentCompletedEmailBody(oEmailData)
|
EmailTemplate.FillDocumentCompletedEmailBody(oEmailData)
|
||||||
@@ -103,14 +114,15 @@ Public Class EmailService
|
|||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function SendDocumentCompletedEmailToCreator(pEnvelope As Envelope, pAttachment As String) As Boolean
|
Public Function SendDocumentCompletedEmailToCreator(pEnvelope As Envelope) As Boolean ', pAttachment As String
|
||||||
Logger.Debug("Creating email data object.")
|
Logger.Debug("Creating email data object.")
|
||||||
Dim oEmailData = New EmailData(pEnvelope, Constants.EnvelopeStatus.MessageCompletionSent) With
|
Dim oEmailData = New EmailData(pEnvelope, Constants.EnvelopeStatus.MessageCompletionSent) With
|
||||||
{
|
{
|
||||||
.SignatureLink = "",
|
.SignatureLink = "",
|
||||||
.EmailAttachment = pAttachment
|
.ATT1_RELATED_ID = pEnvelope.Id,
|
||||||
|
.ATT1_REL_TYPE = "EnvelopeResult"
|
||||||
}
|
}
|
||||||
|
'.EmailAttachment = pAttachment,
|
||||||
EmailTemplate.FillDocumentCompletedEmailBody(oEmailData)
|
EmailTemplate.FillDocumentCompletedEmailBody(oEmailData)
|
||||||
|
|
||||||
If EmailModel.Insert(oEmailData) = False Then
|
If EmailModel.Insert(oEmailData) = False Then
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ Public Class TemplateService
|
|||||||
EmailHtmlTemplateModel = New EmailTemplateModel(pState)
|
EmailHtmlTemplateModel = New EmailTemplateModel(pState)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub InitDictionary(pEmailData As EmailData)
|
Private Sub InitDictionary(pEmailData As EmailData, Optional pReason As String = "")
|
||||||
Logger.Debug("Initializing dictionary..")
|
Logger.Debug("Initializing dictionary..")
|
||||||
|
|
||||||
_replaceDictionary = New Dictionary(Of String, String) From {
|
_replaceDictionary = New Dictionary(Of String, String) From {
|
||||||
@@ -28,7 +28,8 @@ Public Class TemplateService
|
|||||||
{"[LINK_TO_DOCUMENT_TEXT]", $"{pEmailData.SignatureLink.Truncate(40)}.."},
|
{"[LINK_TO_DOCUMENT_TEXT]", $"{pEmailData.SignatureLink.Truncate(40)}.."},
|
||||||
{"[DOCUMENT_TITLE]", pEmailData.EnvelopeTitle},
|
{"[DOCUMENT_TITLE]", pEmailData.EnvelopeTitle},
|
||||||
{"[MESSAGE]", pEmailData.Message},
|
{"[MESSAGE]", pEmailData.Message},
|
||||||
{"[DOCUMENT_ACCESS_CODE]", pEmailData.ReceiverAccessCode}
|
{"[DOCUMENT_ACCESS_CODE]", pEmailData.ReceiverAccessCode},
|
||||||
|
{"[REASON]", pReason}
|
||||||
}
|
}
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -40,11 +41,11 @@ Public Class TemplateService
|
|||||||
pEmailData.EmailSubject = FillTemplate(oTemplate.Subject)
|
pEmailData.EmailSubject = FillTemplate(oTemplate.Subject)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Sub FillEnvelopeDeletedEmailBody(pEmailData As EmailData)
|
Public Sub FillEnvelopeDeletedEmailBody(pEmailData As EmailData, pReason As String)
|
||||||
InitDictionary(pEmailData)
|
InitDictionary(pEmailData, pReason)
|
||||||
Dim oTemplate = EmailHtmlTemplateModel.GetById(Constants.EmailTemplateType.DocumentDeleted)
|
Dim oTemplate = EmailHtmlTemplateModel.GetById(Constants.EmailTemplateType.DocumentDeleted)
|
||||||
|
|
||||||
pEmailData.EmailBody = FillTemplate(oTemplate.Body)
|
pEmailData.EmailBody = FillTemplate(oTemplate.Body, pReason)
|
||||||
pEmailData.EmailSubject = FillTemplate(oTemplate.Subject)
|
pEmailData.EmailSubject = FillTemplate(oTemplate.Subject)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -72,11 +73,12 @@ Public Class TemplateService
|
|||||||
pEmailData.EmailSubject = FillTemplate(oTemplate.Subject)
|
pEmailData.EmailSubject = FillTemplate(oTemplate.Subject)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Function FillTemplate(pTemplate As String) As String
|
Private Function FillTemplate(pTemplate As String, Optional pReason As String = "") As String
|
||||||
Dim oText As String = pTemplate
|
Dim oText As String = pTemplate
|
||||||
|
|
||||||
For Each dictItem As KeyValuePair(Of String, String) In _replaceDictionary
|
For Each dictItem As KeyValuePair(Of String, String) In _replaceDictionary
|
||||||
If oText.Contains(dictItem.Key) Then
|
If oText.Contains(dictItem.Key) Then
|
||||||
|
|
||||||
oText = oText.Replace(dictItem.Key, dictItem.Value)
|
oText = oText.Replace(dictItem.Key, dictItem.Value)
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -154,7 +154,7 @@
|
|||||||
<value>Envelope could not be sent!</value>
|
<value>Envelope could not be sent!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Envelope Invitations Sent" xml:space="preserve">
|
<data name="Envelope Invitations Sent" xml:space="preserve">
|
||||||
<value>Envelope Invitations Sent</value>
|
<value>The invitations have been scheduled for dispatch.s</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Envelope Overview" xml:space="preserve">
|
<data name="Envelope Overview" xml:space="preserve">
|
||||||
<value>Overview</value>
|
<value>Overview</value>
|
||||||
|
|||||||
@@ -154,7 +154,7 @@
|
|||||||
<value>Umschlag konnte nicht gesendet werden!</value>
|
<value>Umschlag konnte nicht gesendet werden!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Envelope Invitations Sent" xml:space="preserve">
|
<data name="Envelope Invitations Sent" xml:space="preserve">
|
||||||
<value>Die Einladungen wurden versendet</value>
|
<value>Die Einladungen zum Signieren wurden zum Versand eingereiht.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Envelope Overview" xml:space="preserve">
|
<data name="Envelope Overview" xml:space="preserve">
|
||||||
<value>Übersicht</value>
|
<value>Übersicht</value>
|
||||||
|
|||||||
@@ -182,7 +182,7 @@ Namespace My.Resources
|
|||||||
End Property
|
End Property
|
||||||
|
|
||||||
'''<summary>
|
'''<summary>
|
||||||
''' Sucht eine lokalisierte Zeichenfolge, die Die Einladungen wurden versendet ähnelt.
|
''' Sucht eine lokalisierte Zeichenfolge, die Die Einladungen zum Signieren wurden zum Versand eingereiht. ähnelt.
|
||||||
'''</summary>
|
'''</summary>
|
||||||
Public Shared ReadOnly Property Envelope_Invitations_Sent() As String
|
Public Shared ReadOnly Property Envelope_Invitations_Sent() As String
|
||||||
Get
|
Get
|
||||||
|
|||||||
3
EnvelopeGenerator.Common/Strings/Model.vb
Normal file
3
EnvelopeGenerator.Common/Strings/Model.vb
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
Public Class Model
|
||||||
|
|
||||||
|
End Class
|
||||||
60
EnvelopeGenerator.Common/TempFiles.vb
Normal file
60
EnvelopeGenerator.Common/TempFiles.vb
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
Imports System.IO
|
||||||
|
Imports DigitalData.Modules.Base
|
||||||
|
Imports DigitalData.Modules.Logging
|
||||||
|
|
||||||
|
Public Class TempFiles
|
||||||
|
Inherits BaseClass
|
||||||
|
|
||||||
|
Public Property TempPath As String
|
||||||
|
|
||||||
|
Public Sub New(pLogConfig As LogConfig)
|
||||||
|
MyBase.New(pLogConfig)
|
||||||
|
|
||||||
|
Dim oTempDirectoryPath = Path.GetTempPath()
|
||||||
|
TempPath = Path.Combine(oTempDirectoryPath, "EnvelopeGenerator")
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Function Create() As Boolean
|
||||||
|
Try
|
||||||
|
If Directory.Exists(TempPath) = False Then
|
||||||
|
Directory.CreateDirectory(TempPath)
|
||||||
|
Else
|
||||||
|
CleanUpFiles()
|
||||||
|
End If
|
||||||
|
Return True
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Private Function CleanUpFiles() As Boolean
|
||||||
|
Try
|
||||||
|
For Each fileItem As String In Directory.GetFiles(TempPath)
|
||||||
|
Logger.Debug("Deleting tempPath-file: {0} ...", fileItem)
|
||||||
|
File.Delete(fileItem)
|
||||||
|
Next
|
||||||
|
|
||||||
|
Return True
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function CleanUp() As Boolean
|
||||||
|
Try
|
||||||
|
Logger.Debug("Deleting tempPath-Data: {0} ...", TempPath)
|
||||||
|
Directory.Delete(TempPath, True)
|
||||||
|
Return True
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
|
End Class
|
||||||
@@ -28,12 +28,12 @@ namespace EnvelopeGenerator.Domain.Entities
|
|||||||
[Required]
|
[Required]
|
||||||
[Column("POSITION_X")]
|
[Column("POSITION_X")]
|
||||||
[DefaultValue(0)]
|
[DefaultValue(0)]
|
||||||
public double PositionX { get; set; }
|
public double X { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
[Column("POSITION_Y")]
|
[Column("POSITION_Y")]
|
||||||
[DefaultValue(0)]
|
[DefaultValue(0)]
|
||||||
public double PositionY { get; set; }
|
public double Y { 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(PositionY, 5);
|
public double Top => Math.Round(Y, 5);
|
||||||
|
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public double Left => Math.Round(PositionX, 5);
|
public double Left => Math.Round(X, 5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,89 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.ComponentModel.DataAnnotations;
|
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Domain.Entities
|
|
||||||
{
|
|
||||||
[Table("TBEMLP_EMAIL_OUT", Schema = "dbo")]
|
|
||||||
public class EmailOut
|
|
||||||
{
|
|
||||||
[Key]
|
|
||||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
|
||||||
[Column("GUID")]
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
[Column("REMINDER_TYPE_ID")]
|
|
||||||
public int ReminderTypeId { get; set; } = 1; // Default value
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
[Column("SENDING_PROFILE")]
|
|
||||||
public int SendingProfile { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
[Column("REFERENCE_ID")]
|
|
||||||
public int ReferenceId { get; set; }
|
|
||||||
|
|
||||||
[StringLength(200)]
|
|
||||||
[Column("REFERENCE_STRING")]
|
|
||||||
public string ReferenceString { get; set; }
|
|
||||||
|
|
||||||
[Column("ENTITY_ID")]
|
|
||||||
public int? EntityId { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
[Column("WF_ID")]
|
|
||||||
public int WfId { get; set; }
|
|
||||||
|
|
||||||
[StringLength(200)]
|
|
||||||
[Column("WF_REFERENCE")]
|
|
||||||
public string WfReference { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
[StringLength(1000)]
|
|
||||||
[Column("EMAIL_ADRESS")]
|
|
||||||
public string EmailAdress { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
[StringLength(500)]
|
|
||||||
[Column("EMAIL_SUBJ")]
|
|
||||||
public string EmailSubj { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
[Column("EMAIL_BODY")]
|
|
||||||
public string EmailBody { get; set; }
|
|
||||||
|
|
||||||
[StringLength(512)]
|
|
||||||
[Column("EMAIL_ATTMT1")]
|
|
||||||
public string EmailAttmt1 { get; set; }
|
|
||||||
|
|
||||||
[Column("EMAIL_SENT")]
|
|
||||||
public DateTime? EmailSent { get; set; }
|
|
||||||
|
|
||||||
[StringLength(500)]
|
|
||||||
[Column("COMMENT")]
|
|
||||||
public string Comment { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
[StringLength(50)]
|
|
||||||
[Column("ADDED_WHO")]
|
|
||||||
public string AddedWho { get; set; } = "DEFAULT"; // Default value
|
|
||||||
|
|
||||||
[Column("ADDED_WHEN")]
|
|
||||||
public DateTime? AddedWhen { get; set; } = DateTime.Now; // Default value
|
|
||||||
|
|
||||||
[StringLength(50)]
|
|
||||||
[Column("CHANGED_WHO")]
|
|
||||||
public string ChangedWho { get; set; }
|
|
||||||
|
|
||||||
[Column("CHANGED_WHEN")]
|
|
||||||
public DateTime? ChangedWhen { get; set; }
|
|
||||||
|
|
||||||
[Column("ERROR_TIMESTAMP")]
|
|
||||||
public DateTime? ErrorTimestamp { get; set; }
|
|
||||||
|
|
||||||
[StringLength(900)]
|
|
||||||
[Column("ERROR_MSG")]
|
|
||||||
public string ErrorMsg { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -21,6 +21,9 @@ namespace EnvelopeGenerator.Domain.Entities
|
|||||||
[Column("STATUS")]
|
[Column("STATUS")]
|
||||||
public int Status { get; set; }
|
public int Status { get; set; }
|
||||||
|
|
||||||
|
[NotMapped]
|
||||||
|
public string StatusName => ((Constants.EnvelopeStatus)Status).ToString();
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
[Column("ENVELOPE_UUID", TypeName = "nvarchar(36)")]
|
[Column("ENVELOPE_UUID", TypeName = "nvarchar(36)")]
|
||||||
public string Uuid { get; set; }
|
public string Uuid { get; set; }
|
||||||
@@ -100,19 +103,6 @@ namespace EnvelopeGenerator.Domain.Entities
|
|||||||
[NotMapped]
|
[NotMapped]
|
||||||
public bool IsAlreadySent => Status > (int) Constants.EnvelopeStatus.EnvelopeSaved;
|
public bool IsAlreadySent => Status > (int) Constants.EnvelopeStatus.EnvelopeSaved;
|
||||||
|
|
||||||
[NotMapped]
|
|
||||||
public string? StatusTranslated => Model.ResourceManager.GetString(Status.ToString());
|
|
||||||
|
|
||||||
[NotMapped]
|
|
||||||
public string? ContractTypeTranslated
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
string? oContractType = ContractType.ToString();
|
|
||||||
return oContractType is null ? default : Model.ResourceManager.GetString(oContractType);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerable<EnvelopeDocument>? Documents { get; set; }
|
public IEnumerable<EnvelopeDocument>? Documents { get; set; }
|
||||||
|
|
||||||
public IEnumerable<EnvelopeHistory>? History { get; set; }
|
public IEnumerable<EnvelopeHistory>? History { get; set; }
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using DigitalData.UserManager.Domain.Entities;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using static EnvelopeGenerator.Common.Constants;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Domain.Entities
|
namespace EnvelopeGenerator.Domain.Entities
|
||||||
{
|
{
|
||||||
@@ -25,9 +27,27 @@ namespace EnvelopeGenerator.Domain.Entities
|
|||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
[Column("ADDED_WHEN", TypeName = "datetime")]
|
[Column("ADDED_WHEN", TypeName = "datetime")]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
|
||||||
public DateTime AddedWhen { get; set; }
|
public DateTime AddedWhen { get; set; }
|
||||||
|
|
||||||
[Column("ACTION_DATE", TypeName = "datetime")]
|
[Column("ACTION_DATE", TypeName = "datetime")]
|
||||||
public DateTime? ActionDate { get; set; }
|
public DateTime? ActionDate { get; set; }
|
||||||
|
|
||||||
|
[Column("COMMENT", TypeName = "nvarchar(max)")]
|
||||||
|
public string? Comment { get; set; }
|
||||||
|
|
||||||
|
[ForeignKey("UserReference")]
|
||||||
|
public virtual User? Sender { get; set; }
|
||||||
|
|
||||||
|
[ForeignKey("UserReference")]
|
||||||
|
public virtual Receiver? Receiver { get; set; }
|
||||||
|
|
||||||
|
[NotMapped]
|
||||||
|
public ReferenceType ReferenceType => (Status / 3) switch
|
||||||
|
{
|
||||||
|
1 => ReferenceType.Sender,
|
||||||
|
2 or 3 => ReferenceType.Receiver,
|
||||||
|
_ => ReferenceType.Unknown,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,14 +10,14 @@ namespace EnvelopeGenerator.Domain.Entities
|
|||||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
[Column("GUID")]
|
[Column("GUID")]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required, EmailAddress]
|
||||||
[Column("EMAIL_ADDRESS", TypeName = "nvarchar(128)")]
|
[Column("EMAIL_ADDRESS", TypeName = "nvarchar(128)")]
|
||||||
public string EmailAddress { get; set; }
|
public required string EmailAddress { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
[Column("SIGNATURE", TypeName = "nvarchar(64)")]
|
[Column("SIGNATURE", TypeName = "nvarchar(64)")]
|
||||||
public string Signature { get; set; }
|
public required string Signature { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
[Column("ADDED_WHEN", TypeName = "datetime")]
|
[Column("ADDED_WHEN", TypeName = "datetime")]
|
||||||
|
|||||||
@@ -7,13 +7,12 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\EnvelopeGenerator.Common\EnvelopeGenerator.Common.vbproj" />
|
<PackageReference Include="DigitalData.EmailProfilerDispatcher.Abstraction" Version="1.0.0" />
|
||||||
|
<PackageReference Include="UserManager.Domain" Version="1.0.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="DigitalData.UserManager.Domain">
|
<ProjectReference Include="..\EnvelopeGenerator.Common\EnvelopeGenerator.Common.vbproj" />
|
||||||
<HintPath>..\..\WebUserManager\DigitalData.UserManager.Domain\bin\Debug\net7.0\DigitalData.UserManager.Domain.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ Public MustInherit Class BaseController
|
|||||||
ChartModel = New ChartModel(pState)
|
ChartModel = New ChartModel(pState)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Function DeleteEnvelope(pEnvelope As Envelope) As Boolean
|
Public Function DeleteEnvelope(pEnvelope As Envelope, pReason As String) As Boolean
|
||||||
If pEnvelope Is Nothing Then
|
If pEnvelope Is Nothing Then
|
||||||
Return True
|
Return True
|
||||||
End If
|
End If
|
||||||
@@ -52,7 +52,7 @@ Public MustInherit Class BaseController
|
|||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Return ActionService.DeleteEnvelope(pEnvelope)
|
Return ActionService.DeleteEnvelope(pEnvelope, pReason)
|
||||||
Else
|
Else
|
||||||
Return DeleteEnvelopeFromDisk(pEnvelope)
|
Return DeleteEnvelopeFromDisk(pEnvelope)
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -38,6 +38,9 @@ Public Class EnvelopeEditorController
|
|||||||
Public Function SendEnvelope() As Boolean
|
Public Function SendEnvelope() As Boolean
|
||||||
Return ActionService.SendEnvelope(Envelope)
|
Return ActionService.SendEnvelope(Envelope)
|
||||||
End Function
|
End Function
|
||||||
|
Public Function ResendReceiverInvitation(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
|
||||||
|
Return ActionService.ResendReceiver(pEnvelope, pReceiver)
|
||||||
|
End Function
|
||||||
|
|
||||||
Public Function ValidateEnvelopeForSending(pErrors As List(Of String)) As List(Of String)
|
Public Function ValidateEnvelopeForSending(pErrors As List(Of String)) As List(Of String)
|
||||||
Dim oEnvelopeErrors = pErrors
|
Dim oEnvelopeErrors = pErrors
|
||||||
@@ -164,7 +167,8 @@ Public Class EnvelopeEditorController
|
|||||||
.Filepath = oFileInfoTemp.FullName,
|
.Filepath = oFileInfoTemp.FullName,
|
||||||
.FileNameOriginal = oFileInfo.Name,
|
.FileNameOriginal = oFileInfo.Name,
|
||||||
.Thumbnail = Thumbnail.GetThumbnailFromPDFFile(oTempFilePath),
|
.Thumbnail = Thumbnail.GetThumbnailFromPDFFile(oTempFilePath),
|
||||||
.PageCount = Thumbnail.GetPageCount(oTempFilePath)
|
.PageCount = Thumbnail.GetPageCount(oTempFilePath),
|
||||||
|
.Byte_Data = ReadFile(pDocumentFilePath)
|
||||||
}
|
}
|
||||||
|
|
||||||
Return oDocument
|
Return oDocument
|
||||||
@@ -174,7 +178,22 @@ Public Class EnvelopeEditorController
|
|||||||
Return Nothing
|
Return Nothing
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
|
'Open file in to a filestream and read data in a byte array.
|
||||||
|
Private Function ReadFile(ByVal sPath As String) As Byte()
|
||||||
|
'Initialize byte array with a null value initially.
|
||||||
|
Dim data As Byte() = Nothing
|
||||||
|
'Use FileInfo object to get file size.
|
||||||
|
Dim fInfo As New FileInfo(sPath)
|
||||||
|
Dim numBytes As Long = fInfo.Length
|
||||||
|
'Open FileStream to read file
|
||||||
|
Dim fStream As New FileStream(sPath, FileMode.Open, FileAccess.Read)
|
||||||
|
'Use BinaryReader to read file stream into byte array.
|
||||||
|
Dim br As New BinaryReader(fStream)
|
||||||
|
'When you use BinaryReader, you need to supply number of bytes to read from file.
|
||||||
|
'In this case we want to read entire file. So supplying total number of bytes.
|
||||||
|
data = br.ReadBytes(CInt(numBytes))
|
||||||
|
Return data
|
||||||
|
End Function
|
||||||
Public Function CreateThumbnail(pDocumentPath As String) As Bitmap
|
Public Function CreateThumbnail(pDocumentPath As String) As Bitmap
|
||||||
Try
|
Try
|
||||||
Dim oThumbNail As Bitmap = Thumbnail.GetThumbnailFromPDFFile(pDocumentPath)
|
Dim oThumbNail As Bitmap = Thumbnail.GetThumbnailFromPDFFile(pDocumentPath)
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ Public Class EnvelopeListController
|
|||||||
Return EnvelopeModel.ListCompleted()
|
Return EnvelopeModel.ListCompleted()
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Overloads Function DeleteEnvelope(pEnvelope As Envelope) As Boolean
|
Public Overloads Function DeleteEnvelope(pEnvelope As Envelope, pReason As String) As Boolean
|
||||||
Return MyBase.DeleteEnvelope(pEnvelope)
|
Return MyBase.DeleteEnvelope(pEnvelope, pReason)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function GetPieChart() As ChartControl
|
Public Function GetPieChart() As ChartControl
|
||||||
|
|||||||
@@ -84,6 +84,10 @@
|
|||||||
<Reference Include="DigitalData.Modules.Logging">
|
<Reference Include="DigitalData.Modules.Logging">
|
||||||
<HintPath>..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
<HintPath>..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="EnvelopeGenerator.Common, Version=1.8.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\EnvelopeGenerator.Common\bin\Debug\EnvelopeGenerator.Common.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="GdPicture.NET.14">
|
<Reference Include="GdPicture.NET.14">
|
||||||
<HintPath>D:\ProgramFiles\GdPicture.NET 14\Redist\GdPicture.NET (.NET Framework 4.5)\GdPicture.NET.14.dll</HintPath>
|
<HintPath>D:\ProgramFiles\GdPicture.NET 14\Redist\GdPicture.NET (.NET Framework 4.5)\GdPicture.NET.14.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
@@ -150,6 +154,12 @@
|
|||||||
<Compile Include="frmMain.vb">
|
<Compile Include="frmMain.vb">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="frmRueckruf.Designer.vb">
|
||||||
|
<DependentUpon>frmRueckruf.vb</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmRueckruf.vb">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="frmSplashScreen.Designer.vb">
|
<Compile Include="frmSplashScreen.Designer.vb">
|
||||||
<DependentUpon>frmSplashScreen.vb</DependentUpon>
|
<DependentUpon>frmSplashScreen.vb</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -173,9 +183,11 @@
|
|||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="frmEnvelopeEditor.resx">
|
<EmbeddedResource Include="frmEnvelopeEditor.resx">
|
||||||
<DependentUpon>frmEnvelopeEditor.vb</DependentUpon>
|
<DependentUpon>frmEnvelopeEditor.vb</DependentUpon>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="frmEnvelopeMainData.en.resx">
|
<EmbeddedResource Include="frmEnvelopeMainData.en.resx">
|
||||||
<DependentUpon>frmEnvelopeMainData.vb</DependentUpon>
|
<DependentUpon>frmEnvelopeMainData.vb</DependentUpon>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="frmEnvelopeMainData.resx">
|
<EmbeddedResource Include="frmEnvelopeMainData.resx">
|
||||||
<DependentUpon>frmEnvelopeMainData.vb</DependentUpon>
|
<DependentUpon>frmEnvelopeMainData.vb</DependentUpon>
|
||||||
@@ -194,6 +206,9 @@
|
|||||||
<DependentUpon>frmMain.vb</DependentUpon>
|
<DependentUpon>frmMain.vb</DependentUpon>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="frmRueckruf.resx">
|
||||||
|
<DependentUpon>frmRueckruf.vb</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="frmSplashScreen.resx">
|
<EmbeddedResource Include="frmSplashScreen.resx">
|
||||||
<DependentUpon>frmSplashScreen.vb</DependentUpon>
|
<DependentUpon>frmSplashScreen.vb</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
@@ -237,7 +252,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\EnvelopeGenerator.Common\EnvelopeGenerator.Common.vbproj">
|
<ProjectReference Include="..\EnvelopeGenerator.Common\EnvelopeGenerator.Common.vbproj">
|
||||||
<Project>{6ea0c51f-c2b1-4462-8198-3de0b32b74f8}</Project>
|
<Project>{6EA0C51F-C2B1-4462-8198-3DE0B32B74F8}</Project>
|
||||||
<Name>EnvelopeGenerator.Common</Name>
|
<Name>EnvelopeGenerator.Common</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
Imports DigitalData.Modules.Logging
|
Imports DigitalData.Modules.Database
|
||||||
|
Imports DigitalData.Modules.Logging
|
||||||
|
|
||||||
Module ModuleSettings
|
Module ModuleSettings
|
||||||
Public DOCUMENT_PATH_MOVE_AFTSEND As String = ""
|
Public DOCUMENT_PATH_MOVE_AFTSEND As String = ""
|
||||||
Public CurrLogConfig As LogConfig
|
Public CurrLogConfig As LogConfig
|
||||||
Public Directory2Delete As String = ""
|
Public Directory2Delete As String = ""
|
||||||
Public MS_GDPICTUREKEY As String = ""
|
Public MS_GDPICTUREKEY As String = ""
|
||||||
|
Public DB_DD_ECM As MSSQLServer = Nothing
|
||||||
End Module
|
End Module
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ Namespace My
|
|||||||
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
|
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
|
||||||
Public Sub New()
|
Public Sub New()
|
||||||
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
|
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
|
||||||
Me.IsSingleInstance = true
|
Me.IsSingleInstance = false
|
||||||
Me.EnableVisualStyles = true
|
Me.EnableVisualStyles = true
|
||||||
Me.SaveMySettingsOnExit = true
|
Me.SaveMySettingsOnExit = true
|
||||||
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
|
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<MyApplicationData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
<MyApplicationData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
<MySubMain>true</MySubMain>
|
<MySubMain>true</MySubMain>
|
||||||
<MainForm>frmSplashScreen</MainForm>
|
<MainForm>frmSplashScreen</MainForm>
|
||||||
<SingleInstance>true</SingleInstance>
|
<SingleInstance>false</SingleInstance>
|
||||||
<ShutdownMode>0</ShutdownMode>
|
<ShutdownMode>0</ShutdownMode>
|
||||||
<EnableVisualStyles>true</EnableVisualStyles>
|
<EnableVisualStyles>true</EnableVisualStyles>
|
||||||
<AuthenticationMode>0</AuthenticationMode>
|
<AuthenticationMode>0</AuthenticationMode>
|
||||||
|
|||||||
@@ -32,5 +32,5 @@ Imports System.Runtime.InteropServices
|
|||||||
' You can specify all the values or you can default the Build and Revision Numbers
|
' You can specify all the values or you can default the Build and Revision Numbers
|
||||||
' by using the '*' as shown below:
|
' by using the '*' as shown below:
|
||||||
' [assembly: AssemblyVersion("1.0.*")]
|
' [assembly: AssemblyVersion("1.0.*")]
|
||||||
<Assembly: AssemblyVersion("2.6.0.0")>
|
<Assembly: AssemblyVersion("2.7.0.0")>
|
||||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||||
|
|||||||
@@ -14,10 +14,10 @@
|
|||||||
<value>True</value>
|
<value>True</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="DefaultAppSkin" serializeAs="String">
|
<setting name="DefaultAppSkin" serializeAs="String">
|
||||||
<value>Skin/Office 2019 White</value>
|
<value>Skin/The Bezier</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="DefaultPalette" serializeAs="String">
|
<setting name="DefaultPalette" serializeAs="String">
|
||||||
<value></value>
|
<value>VS 2019 Blue</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="TouchUI" serializeAs="String">
|
<setting name="TouchUI" serializeAs="String">
|
||||||
<value></value>
|
<value></value>
|
||||||
|
|||||||
26
EnvelopeGenerator.Form/frmEnvelopeEditor.Designer.vb
generated
26
EnvelopeGenerator.Form/frmEnvelopeEditor.Designer.vb
generated
@@ -57,6 +57,7 @@ Partial Public Class frmEnvelopeEditor
|
|||||||
Me.txtEnvelopeIdLabel2 = New DevExpress.XtraBars.BarStaticItem()
|
Me.txtEnvelopeIdLabel2 = New DevExpress.XtraBars.BarStaticItem()
|
||||||
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
|
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
|
||||||
Me.BarStaticItem1 = New DevExpress.XtraBars.BarStaticItem()
|
Me.BarStaticItem1 = New DevExpress.XtraBars.BarStaticItem()
|
||||||
|
Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem()
|
||||||
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||||
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||||
Me.RibbonPageGroupDocuments = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
Me.RibbonPageGroupDocuments = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||||
@@ -239,9 +240,9 @@ Partial Public Class frmEnvelopeEditor
|
|||||||
'RibbonControl1
|
'RibbonControl1
|
||||||
'
|
'
|
||||||
Me.RibbonControl1.ExpandCollapseItem.Id = 0
|
Me.RibbonControl1.ExpandCollapseItem.Id = 0
|
||||||
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.btnSave, Me.btnCancel, Me.btnNewFile, Me.btnDeleteFile, Me.btnSendEnvelope, Me.btnEditFields, Me.btnDeleteReceiver, Me.btnEditData, Me.txtCreatorEmailLabel, Me.txtEnvelopeIdLabel2, Me.BarButtonItem1, Me.BarStaticItem1})
|
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.btnSave, Me.btnCancel, Me.btnNewFile, Me.btnDeleteFile, Me.btnSendEnvelope, Me.btnEditFields, Me.btnDeleteReceiver, Me.btnEditData, Me.txtCreatorEmailLabel, Me.txtEnvelopeIdLabel2, Me.BarButtonItem1, Me.BarStaticItem1, Me.BarButtonItem2})
|
||||||
resources.ApplyResources(Me.RibbonControl1, "RibbonControl1")
|
resources.ApplyResources(Me.RibbonControl1, "RibbonControl1")
|
||||||
Me.RibbonControl1.MaxItemId = 14
|
Me.RibbonControl1.MaxItemId = 15
|
||||||
Me.RibbonControl1.Name = "RibbonControl1"
|
Me.RibbonControl1.Name = "RibbonControl1"
|
||||||
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
|
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
|
||||||
Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
|
Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
|
||||||
@@ -335,6 +336,12 @@ Partial Public Class frmEnvelopeEditor
|
|||||||
Me.BarStaticItem1.Id = 13
|
Me.BarStaticItem1.Id = 13
|
||||||
Me.BarStaticItem1.Name = "BarStaticItem1"
|
Me.BarStaticItem1.Name = "BarStaticItem1"
|
||||||
'
|
'
|
||||||
|
'BarButtonItem2
|
||||||
|
'
|
||||||
|
resources.ApplyResources(Me.BarButtonItem2, "BarButtonItem2")
|
||||||
|
Me.BarButtonItem2.Id = 14
|
||||||
|
Me.BarButtonItem2.Name = "BarButtonItem2"
|
||||||
|
'
|
||||||
'RibbonPage1
|
'RibbonPage1
|
||||||
'
|
'
|
||||||
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroupDocuments, Me.RibbonPageGroupInvitation, Me.RibbonPageGroupAddSignature, Me.RibbonPageGroupReceiver})
|
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroupDocuments, Me.RibbonPageGroupInvitation, Me.RibbonPageGroupAddSignature, Me.RibbonPageGroupReceiver})
|
||||||
@@ -391,7 +398,7 @@ Partial Public Class frmEnvelopeEditor
|
|||||||
Me.LayoutControlGroup4.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlGroup5})
|
Me.LayoutControlGroup4.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlGroup5})
|
||||||
Me.LayoutControlGroup4.Name = "LayoutControlGroup4"
|
Me.LayoutControlGroup4.Name = "LayoutControlGroup4"
|
||||||
Me.LayoutControlGroup4.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
|
Me.LayoutControlGroup4.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
|
||||||
Me.LayoutControlGroup4.Size = New System.Drawing.Size(251, 530)
|
Me.LayoutControlGroup4.Size = New System.Drawing.Size(251, 526)
|
||||||
Me.LayoutControlGroup4.TextVisible = False
|
Me.LayoutControlGroup4.TextVisible = False
|
||||||
'
|
'
|
||||||
'LayoutControlGroup5
|
'LayoutControlGroup5
|
||||||
@@ -399,7 +406,7 @@ Partial Public Class frmEnvelopeEditor
|
|||||||
Me.LayoutControlGroup5.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem5})
|
Me.LayoutControlGroup5.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem5})
|
||||||
Me.LayoutControlGroup5.Location = New System.Drawing.Point(0, 0)
|
Me.LayoutControlGroup5.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.LayoutControlGroup5.Name = "LayoutControlGroup5"
|
Me.LayoutControlGroup5.Name = "LayoutControlGroup5"
|
||||||
Me.LayoutControlGroup5.Size = New System.Drawing.Size(251, 530)
|
Me.LayoutControlGroup5.Size = New System.Drawing.Size(251, 526)
|
||||||
resources.ApplyResources(Me.LayoutControlGroup5, "LayoutControlGroup5")
|
resources.ApplyResources(Me.LayoutControlGroup5, "LayoutControlGroup5")
|
||||||
'
|
'
|
||||||
'LayoutControlItem5
|
'LayoutControlItem5
|
||||||
@@ -407,7 +414,7 @@ Partial Public Class frmEnvelopeEditor
|
|||||||
Me.LayoutControlItem5.Control = Me.GridDocuments
|
Me.LayoutControlItem5.Control = Me.GridDocuments
|
||||||
Me.LayoutControlItem5.Location = New System.Drawing.Point(0, 0)
|
Me.LayoutControlItem5.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.LayoutControlItem5.Name = "LayoutControlItem5"
|
Me.LayoutControlItem5.Name = "LayoutControlItem5"
|
||||||
Me.LayoutControlItem5.Size = New System.Drawing.Size(227, 485)
|
Me.LayoutControlItem5.Size = New System.Drawing.Size(227, 477)
|
||||||
Me.LayoutControlItem5.TextSize = New System.Drawing.Size(0, 0)
|
Me.LayoutControlItem5.TextSize = New System.Drawing.Size(0, 0)
|
||||||
Me.LayoutControlItem5.TextVisible = False
|
Me.LayoutControlItem5.TextVisible = False
|
||||||
'
|
'
|
||||||
@@ -571,7 +578,7 @@ Partial Public Class frmEnvelopeEditor
|
|||||||
Me.LayoutControlItem2.Control = Me.GridReceivers
|
Me.LayoutControlItem2.Control = Me.GridReceivers
|
||||||
Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 0)
|
Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.LayoutControlItem2.Name = "LayoutControlItem2"
|
Me.LayoutControlItem2.Name = "LayoutControlItem2"
|
||||||
Me.LayoutControlItem2.Size = New System.Drawing.Size(875, 204)
|
Me.LayoutControlItem2.Size = New System.Drawing.Size(875, 200)
|
||||||
Me.LayoutControlItem2.TextSize = New System.Drawing.Size(0, 0)
|
Me.LayoutControlItem2.TextSize = New System.Drawing.Size(0, 0)
|
||||||
Me.LayoutControlItem2.TextVisible = False
|
Me.LayoutControlItem2.TextVisible = False
|
||||||
'
|
'
|
||||||
@@ -604,7 +611,7 @@ Partial Public Class frmEnvelopeEditor
|
|||||||
Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlGroup1})
|
Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlGroup1})
|
||||||
Me.Root.Name = "Root"
|
Me.Root.Name = "Root"
|
||||||
Me.Root.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
|
Me.Root.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
|
||||||
Me.Root.Size = New System.Drawing.Size(899, 263)
|
Me.Root.Size = New System.Drawing.Size(899, 259)
|
||||||
Me.Root.TextVisible = False
|
Me.Root.TextVisible = False
|
||||||
'
|
'
|
||||||
'LayoutControlGroup1
|
'LayoutControlGroup1
|
||||||
@@ -613,7 +620,7 @@ Partial Public Class frmEnvelopeEditor
|
|||||||
Me.LayoutControlGroup1.Location = New System.Drawing.Point(0, 0)
|
Me.LayoutControlGroup1.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.LayoutControlGroup1.Name = "LayoutControlGroup1"
|
Me.LayoutControlGroup1.Name = "LayoutControlGroup1"
|
||||||
Me.LayoutControlGroup1.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
Me.LayoutControlGroup1.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||||
Me.LayoutControlGroup1.Size = New System.Drawing.Size(899, 263)
|
Me.LayoutControlGroup1.Size = New System.Drawing.Size(899, 259)
|
||||||
resources.ApplyResources(Me.LayoutControlGroup1, "LayoutControlGroup1")
|
resources.ApplyResources(Me.LayoutControlGroup1, "LayoutControlGroup1")
|
||||||
'
|
'
|
||||||
'LayoutControlItem3
|
'LayoutControlItem3
|
||||||
@@ -622,7 +629,7 @@ Partial Public Class frmEnvelopeEditor
|
|||||||
Me.LayoutControlItem3.Location = New System.Drawing.Point(0, 0)
|
Me.LayoutControlItem3.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.LayoutControlItem3.Name = "LayoutControlItem3"
|
Me.LayoutControlItem3.Name = "LayoutControlItem3"
|
||||||
Me.LayoutControlItem3.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
Me.LayoutControlItem3.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||||
Me.LayoutControlItem3.Size = New System.Drawing.Size(873, 216)
|
Me.LayoutControlItem3.Size = New System.Drawing.Size(873, 208)
|
||||||
resources.ApplyResources(Me.LayoutControlItem3, "LayoutControlItem3")
|
resources.ApplyResources(Me.LayoutControlItem3, "LayoutControlItem3")
|
||||||
Me.LayoutControlItem3.TextLocation = DevExpress.Utils.Locations.Top
|
Me.LayoutControlItem3.TextLocation = DevExpress.Utils.Locations.Top
|
||||||
Me.LayoutControlItem3.TextSize = New System.Drawing.Size(49, 13)
|
Me.LayoutControlItem3.TextSize = New System.Drawing.Size(49, 13)
|
||||||
@@ -775,6 +782,7 @@ Partial Public Class frmEnvelopeEditor
|
|||||||
Friend WithEvents colPageCount As DevExpress.XtraGrid.Columns.TileViewColumn
|
Friend WithEvents colPageCount As DevExpress.XtraGrid.Columns.TileViewColumn
|
||||||
Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem
|
Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem
|
||||||
Friend WithEvents BarStaticItem1 As DevExpress.XtraBars.BarStaticItem
|
Friend WithEvents BarStaticItem1 As DevExpress.XtraBars.BarStaticItem
|
||||||
|
Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem
|
||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
|
|||||||
@@ -126,7 +126,7 @@
|
|||||||
<value>0, 132</value>
|
<value>0, 132</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GridDocuments.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="GridDocuments.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>14, 35</value>
|
<value>14, 39</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="colFilename.Caption" xml:space="preserve">
|
<data name="colFilename.Caption" xml:space="preserve">
|
||||||
<value>Dateiname</value>
|
<value>Dateiname</value>
|
||||||
@@ -322,7 +322,7 @@
|
|||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnEditData.Caption" xml:space="preserve">
|
<data name="btnEditData.Caption" xml:space="preserve">
|
||||||
<value>Bearbeite Daten</value>
|
<value>Titel und Typ</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnEditData.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="btnEditData.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
@@ -411,6 +411,9 @@
|
|||||||
<data name="BarButtonItem1.Caption" xml:space="preserve">
|
<data name="BarButtonItem1.Caption" xml:space="preserve">
|
||||||
<value>BarButtonItem1</value>
|
<value>BarButtonItem1</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="BarButtonItem2.Caption" xml:space="preserve">
|
||||||
|
<value>Öffnen</value>
|
||||||
|
</data>
|
||||||
<data name="RibbonControl1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="RibbonControl1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 0</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -436,10 +439,10 @@
|
|||||||
<value>1164, 132</value>
|
<value>1164, 132</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RibbonStatusBar1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="RibbonStatusBar1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 662</value>
|
<value>0, 658</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RibbonStatusBar1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="RibbonStatusBar1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1164, 22</value>
|
<value>1164, 26</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>RibbonStatusBar1.Name" xml:space="preserve">
|
<data name=">>RibbonStatusBar1.Name" xml:space="preserve">
|
||||||
<value>RibbonStatusBar1</value>
|
<value>RibbonStatusBar1</value>
|
||||||
@@ -466,7 +469,7 @@
|
|||||||
<value>2</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GridDocuments.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="GridDocuments.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>223, 481</value>
|
<value>223, 473</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GridDocuments.TabIndex" type="System.Int32, mscorlib">
|
<data name="GridDocuments.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
@@ -493,7 +496,7 @@
|
|||||||
<value>Ihre Dokumente</value>
|
<value>Ihre Dokumente</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LayoutControl3.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="LayoutControl3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>251, 530</value>
|
<value>251, 526</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LayoutControl3.TabIndex" type="System.Int32, mscorlib">
|
<data name="LayoutControl3.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
@@ -535,10 +538,10 @@
|
|||||||
<value>0, 0</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="EnvelopeReceiverBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="EnvelopeReceiverBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>338, 17</value>
|
<value>334, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<data name="GridReceivers.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="GridReceivers.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>14, 35</value>
|
<value>14, 39</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="colColor.Caption" xml:space="preserve">
|
<data name="colColor.Caption" xml:space="preserve">
|
||||||
<value> </value>
|
<value> </value>
|
||||||
@@ -632,7 +635,7 @@
|
|||||||
<value>Combo</value>
|
<value>Combo</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GridReceivers.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="GridReceivers.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>871, 200</value>
|
<value>871, 196</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GridReceivers.TabIndex" type="System.Int32, mscorlib">
|
<data name="GridReceivers.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
@@ -725,13 +728,13 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtMessage.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtMessage.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>23, 60</value>
|
<value>23, 64</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtMessage.Properties.Appearance.Font" type="System.Drawing.Font, System.Drawing">
|
<data name="txtMessage.Properties.Appearance.Font" type="System.Drawing.Font, System.Drawing">
|
||||||
<value>Segoe UI, 9.75pt</value>
|
<value>Segoe UI, 9.75pt</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtMessage.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtMessage.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>853, 180</value>
|
<value>853, 172</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtMessage.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtMessage.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
@@ -761,7 +764,7 @@
|
|||||||
<value>Ihre Nachricht</value>
|
<value>Ihre Nachricht</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LayoutControl1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="LayoutControl1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>899, 263</value>
|
<value>899, 259</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LayoutControl1.TabIndex" type="System.Int32, mscorlib">
|
<data name="LayoutControl1.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
@@ -791,7 +794,7 @@
|
|||||||
<value>0, 0, 0, 0</value>
|
<value>0, 0, 0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PanelControl2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="PanelControl2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>903, 267</value>
|
<value>903, 263</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PanelControl2.TabIndex" type="System.Int32, mscorlib">
|
<data name="PanelControl2.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
@@ -824,7 +827,7 @@
|
|||||||
<value>1</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SplitContainerControl2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="SplitContainerControl2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>903, 530</value>
|
<value>903, 526</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SplitContainerControl2.TabIndex" type="System.Int32, mscorlib">
|
<data name="SplitContainerControl2.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
@@ -857,7 +860,7 @@
|
|||||||
<value>1</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SplitContainerControl1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="SplitContainerControl1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1164, 530</value>
|
<value>1164, 526</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SplitContainerControl1.TabIndex" type="System.Int32, mscorlib">
|
<data name="SplitContainerControl1.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
@@ -875,13 +878,13 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="FrmEditorBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="FrmEditorBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>801, 17</value>
|
<value>792, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="EnvelopeDocumentBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="EnvelopeDocumentBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>564, 17</value>
|
<value>557, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="OpenFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="OpenFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>196, 17</value>
|
<value>193, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<data name="OpenFileDialog1.Filter" xml:space="preserve">
|
<data name="OpenFileDialog1.Filter" xml:space="preserve">
|
||||||
<value>PDF Files|*.pdf</value>
|
<value>PDF Files|*.pdf</value>
|
||||||
@@ -1049,6 +1052,12 @@
|
|||||||
<data name=">>BarStaticItem1.Type" xml:space="preserve">
|
<data name=">>BarStaticItem1.Type" xml:space="preserve">
|
||||||
<value>DevExpress.XtraBars.BarStaticItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
<value>DevExpress.XtraBars.BarStaticItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>BarButtonItem2.Name" xml:space="preserve">
|
||||||
|
<value>BarButtonItem2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>BarButtonItem2.Type" xml:space="preserve">
|
||||||
|
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||||
|
</data>
|
||||||
<data name=">>RibbonPage1.Name" xml:space="preserve">
|
<data name=">>RibbonPage1.Name" xml:space="preserve">
|
||||||
<value>RibbonPage1</value>
|
<value>RibbonPage1</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
Imports System.ComponentModel
|
Imports System.ComponentModel
|
||||||
|
Imports System.Data.SqlClient
|
||||||
Imports System.IO
|
Imports System.IO
|
||||||
Imports DevExpress.Export.Xl
|
Imports DevExpress.Export.Xl
|
||||||
|
Imports DevExpress.Utils.CommonDialogs
|
||||||
Imports DevExpress.Utils.Drawing
|
Imports DevExpress.Utils.Drawing
|
||||||
Imports DevExpress.XtraEditors
|
Imports DevExpress.XtraEditors
|
||||||
Imports DevExpress.XtraExport.Helpers
|
Imports DevExpress.XtraExport.Helpers
|
||||||
@@ -35,33 +37,38 @@ Partial Public Class frmEnvelopeEditor
|
|||||||
|
|
||||||
Private Async Sub btnNewFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnNewFile.ItemClick
|
Private Async Sub btnNewFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnNewFile.ItemClick
|
||||||
Dim oHandle = SplashScreenManager.ShowOverlayForm(Me)
|
Dim oHandle = SplashScreenManager.ShowOverlayForm(Me)
|
||||||
|
'SaveEnvelopeWithValidation()
|
||||||
|
' If Not IsNothing(Envelope) Then
|
||||||
Try
|
Try
|
||||||
' prüfen ob es schon eine Datei gibt
|
' prüfen ob es schon eine Datei gibt
|
||||||
If Documents.Count > 0 Then
|
If Documents.Count > 0 Then
|
||||||
MsgBox(Resources.Envelope.Only_one_file_is_allowed, MsgBoxStyle.Information, Text)
|
MsgBox(Resources.Envelope.Only_one_file_is_allowed, MsgBoxStyle.Information, Text)
|
||||||
Return
|
Return
|
||||||
End If
|
|
||||||
|
|
||||||
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
|
|
||||||
Dim oDocument = Await Controller.CreateDocument(OpenFileDialog1.FileName)
|
|
||||||
|
|
||||||
If oDocument IsNot Nothing Then
|
|
||||||
Documents.Add(oDocument)
|
|
||||||
Else
|
|
||||||
MsgBox(Resources.Envelope.Document_Could_Not_Be_Saved, MsgBoxStyle.Critical, Text)
|
|
||||||
End If
|
End If
|
||||||
End If
|
|
||||||
|
|
||||||
Catch ex As Exception
|
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
|
||||||
Logger.Error(ex)
|
Dim oDocument = Await Controller.CreateDocument(OpenFileDialog1.FileName)
|
||||||
Finally
|
|
||||||
SplashScreenManager.CloseOverlayForm(oHandle)
|
If oDocument IsNot Nothing Then
|
||||||
|
Documents.Add(oDocument)
|
||||||
|
' Update_File_DB(OpenFileDialog1.FileName)
|
||||||
|
Else
|
||||||
|
MsgBox(Resources.Envelope.Document_Could_Not_Be_Saved, MsgBoxStyle.Critical, Text)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
Finally
|
||||||
|
SplashScreenManager.CloseOverlayForm(oHandle)
|
||||||
|
|
||||||
|
RibbonPageGroupAddSignature_Enabled()
|
||||||
|
End Try
|
||||||
|
' Else
|
||||||
|
' SplashScreenManager.CloseOverlayForm(oHandle)
|
||||||
|
' End If
|
||||||
|
|
||||||
RibbonPageGroupAddSignature_Enabled()
|
|
||||||
End Try
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub frmEditor_Load(sender As Object, e As EventArgs) Handles Me.Load
|
Private Sub frmEditor_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||||
Logger = State.LogConfig.GetLogger()
|
Logger = State.LogConfig.GetLogger()
|
||||||
Logger.Debug("Loading Configuration..")
|
Logger.Debug("Loading Configuration..")
|
||||||
@@ -471,24 +478,26 @@ Partial Public Class frmEnvelopeEditor
|
|||||||
SendEnvelopeButton_Enable()
|
SendEnvelopeButton_Enable()
|
||||||
RibbonPageGroupAddSignature_Enabled()
|
RibbonPageGroupAddSignature_Enabled()
|
||||||
End Sub
|
End Sub
|
||||||
|
Dim CellValueChanged As Boolean = False
|
||||||
Private Sub ViewReceivers_CellValueChanged(sender As Object, e As Views.Base.CellValueChangedEventArgs) Handles ViewReceivers.CellValueChanged
|
Private Sub ViewReceivers_CellValueChanged(sender As Object, e As Views.Base.CellValueChangedEventArgs) Handles ViewReceivers.CellValueChanged
|
||||||
If e.Column.FieldName = COL_EMAIL Then
|
If e.Column.FieldName = COL_EMAIL And CellValueChanged = False Then
|
||||||
If e.Value Is Nothing Then
|
If e.Value Is Nothing Then
|
||||||
' Keine E-Mail-Adresse, also weg damit
|
' Keine E-Mail-Adresse, also weg damit
|
||||||
ViewReceivers.DeleteRow(ViewReceivers.FocusedRowHandle)
|
ViewReceivers.DeleteRow(ViewReceivers.FocusedRowHandle)
|
||||||
Else
|
Else
|
||||||
' Doppelte E-Mail-Adresse? TODO
|
' Doppelte E-Mail-Adresse? TODO
|
||||||
'Dim oReceivers = Controller.Envelope.Receivers
|
'Dim oReceivers = Controller.Envelope.Receivers
|
||||||
|
CellValueChanged = True
|
||||||
Dim oNameCellValue = ViewReceivers.GetRowCellValue(e.RowHandle, COL_NAME)
|
Dim oNameCellValue = ViewReceivers.GetRowCellValue(e.RowHandle, COL_NAME)
|
||||||
If oNameCellValue Is Nothing Then
|
If oNameCellValue Is Nothing Then
|
||||||
Dim oEmailAdress As String = DirectCast(e.Value, String)
|
Dim oEmailAdress As String = DirectCast(e.Value.ToString.ToLower, String)
|
||||||
|
|
||||||
Dim oLastName As String = Controller.GetLastNameByEmailAdress(oEmailAdress)
|
Dim oLastName As String = Controller.GetLastNameByEmailAdress(oEmailAdress)
|
||||||
Dim oAccessCode As String = Helpers.GetAccessCode()
|
Dim oAccessCode As String = Helpers.GetAccessCode()
|
||||||
|
ViewReceivers.SetRowCellValue(e.RowHandle, ViewReceivers.Columns.Item(COL_EMAIL), oEmailAdress)
|
||||||
ViewReceivers.SetRowCellValue(e.RowHandle, ViewReceivers.Columns.Item(COL_NAME), oLastName)
|
ViewReceivers.SetRowCellValue(e.RowHandle, ViewReceivers.Columns.Item(COL_NAME), oLastName)
|
||||||
ViewReceivers.SetRowCellValue(e.RowHandle, ViewReceivers.Columns.Item(COL_CODE), oAccessCode)
|
ViewReceivers.SetRowCellValue(e.RowHandle, ViewReceivers.Columns.Item(COL_CODE), oAccessCode)
|
||||||
|
CellValueChanged = False
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
@@ -497,4 +506,6 @@ Partial Public Class frmEnvelopeEditor
|
|||||||
Private Sub RibbonControl1_Click(sender As Object, e As EventArgs) Handles RibbonControl1.Click
|
Private Sub RibbonControl1_Click(sender As Object, e As EventArgs) Handles RibbonControl1.Click
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@@ -94,10 +94,12 @@ Public Class frmEnvelopeMainData
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
Dim oEnvelopeType = DirectCast(cmbEnvelopeType.EditValue, EnvelopeType)
|
Dim oEnvelopeType = DirectCast(cmbEnvelopeType.EditValue, EnvelopeType)
|
||||||
|
If IsNothing(oEnvelopeType) Then
|
||||||
|
oEnvelopeType = EnvelopeType
|
||||||
|
End If
|
||||||
Envelope.Title = txtTitle.EditValue.ToString
|
Envelope.Title = txtTitle.EditValue.ToString
|
||||||
Envelope.EnvelopeType = oEnvelopeType
|
Envelope.EnvelopeType = oEnvelopeType
|
||||||
Envelope.EnvelopeTypeId = oEnvelopeType.Id
|
Envelope.EnvelopeTypeId = IIf(IsNothing(oEnvelopeType), 0, oEnvelopeType.Id)
|
||||||
Envelope.CertificationType = cmbCertificationType.SelectedIndex + 1
|
Envelope.CertificationType = cmbCertificationType.SelectedIndex + 1
|
||||||
Envelope.Language = cmbLanguage.EditValue
|
Envelope.Language = cmbLanguage.EditValue
|
||||||
Envelope.UseAccessCode = chkUseAccessCode.EditValue
|
Envelope.UseAccessCode = chkUseAccessCode.EditValue
|
||||||
|
|||||||
79
EnvelopeGenerator.Form/frmMain.Designer.vb
generated
79
EnvelopeGenerator.Form/frmMain.Designer.vb
generated
@@ -27,7 +27,7 @@ Partial Class frmMain
|
|||||||
Dim GridLevelNode3 As DevExpress.XtraGrid.GridLevelNode = New DevExpress.XtraGrid.GridLevelNode()
|
Dim GridLevelNode3 As DevExpress.XtraGrid.GridLevelNode = New DevExpress.XtraGrid.GridLevelNode()
|
||||||
Dim GridLevelNode4 As DevExpress.XtraGrid.GridLevelNode = New DevExpress.XtraGrid.GridLevelNode()
|
Dim GridLevelNode4 As DevExpress.XtraGrid.GridLevelNode = New DevExpress.XtraGrid.GridLevelNode()
|
||||||
Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
|
Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
|
||||||
Me.XtraTabControl1 = New DevExpress.XtraTab.XtraTabControl()
|
Me.XtraTabControlMain = New DevExpress.XtraTab.XtraTabControl()
|
||||||
Me.XtraTabPage1 = New DevExpress.XtraTab.XtraTabPage()
|
Me.XtraTabPage1 = New DevExpress.XtraTab.XtraTabPage()
|
||||||
Me.GridEnvelopes = New DevExpress.XtraGrid.GridControl()
|
Me.GridEnvelopes = New DevExpress.XtraGrid.GridControl()
|
||||||
Me.ViewReceivers = New DevExpress.XtraGrid.Views.Grid.GridView()
|
Me.ViewReceivers = New DevExpress.XtraGrid.Views.Grid.GridView()
|
||||||
@@ -58,6 +58,8 @@ Partial Class frmMain
|
|||||||
Me.txtEnvelopeIdLabel = New DevExpress.XtraBars.BarStaticItem()
|
Me.txtEnvelopeIdLabel = New DevExpress.XtraBars.BarStaticItem()
|
||||||
Me.btnOpenLogDirectory = New DevExpress.XtraBars.BarButtonItem()
|
Me.btnOpenLogDirectory = New DevExpress.XtraBars.BarButtonItem()
|
||||||
Me.BarCheckItem1 = New DevExpress.XtraBars.BarCheckItem()
|
Me.BarCheckItem1 = New DevExpress.XtraBars.BarCheckItem()
|
||||||
|
Me.bsitmInfo = New DevExpress.XtraBars.BarStaticItem()
|
||||||
|
Me.bbtnitmEB = New DevExpress.XtraBars.BarButtonItem()
|
||||||
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||||
Me.RibbonPageEnvelopeActions = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
Me.RibbonPageEnvelopeActions = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||||
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||||
@@ -82,14 +84,16 @@ Partial Class frmMain
|
|||||||
Me.GridColumn5 = New DevExpress.XtraGrid.Columns.GridColumn()
|
Me.GridColumn5 = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||||
Me.GridColumn7 = New DevExpress.XtraGrid.Columns.GridColumn()
|
Me.GridColumn7 = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||||
Me.RefreshTimer = New System.Windows.Forms.Timer(Me.components)
|
Me.RefreshTimer = New System.Windows.Forms.Timer(Me.components)
|
||||||
Me.bsitmInfo = New DevExpress.XtraBars.BarStaticItem()
|
Me.SaveFileDialog1 = New System.Windows.Forms.SaveFileDialog()
|
||||||
|
Me.bbtnitmInfoMail = New DevExpress.XtraBars.BarButtonItem()
|
||||||
|
Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem()
|
||||||
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
Me.SplitContainerControl1.Panel1.SuspendLayout()
|
Me.SplitContainerControl1.Panel1.SuspendLayout()
|
||||||
CType(Me.SplitContainerControl1.Panel2, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.SplitContainerControl1.Panel2, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
Me.SplitContainerControl1.SuspendLayout()
|
Me.SplitContainerControl1.SuspendLayout()
|
||||||
CType(Me.XtraTabControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.XtraTabControlMain, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
Me.XtraTabControl1.SuspendLayout()
|
Me.XtraTabControlMain.SuspendLayout()
|
||||||
Me.XtraTabPage1.SuspendLayout()
|
Me.XtraTabPage1.SuspendLayout()
|
||||||
CType(Me.GridEnvelopes, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.GridEnvelopes, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.ViewReceivers, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.ViewReceivers, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
@@ -117,7 +121,7 @@ Partial Class frmMain
|
|||||||
'
|
'
|
||||||
'SplitContainerControl1.Panel1
|
'SplitContainerControl1.Panel1
|
||||||
'
|
'
|
||||||
Me.SplitContainerControl1.Panel1.Controls.Add(Me.XtraTabControl1)
|
Me.SplitContainerControl1.Panel1.Controls.Add(Me.XtraTabControlMain)
|
||||||
resources.ApplyResources(Me.SplitContainerControl1.Panel1, "SplitContainerControl1.Panel1")
|
resources.ApplyResources(Me.SplitContainerControl1.Panel1, "SplitContainerControl1.Panel1")
|
||||||
'
|
'
|
||||||
'SplitContainerControl1.Panel2
|
'SplitContainerControl1.Panel2
|
||||||
@@ -125,12 +129,12 @@ Partial Class frmMain
|
|||||||
resources.ApplyResources(Me.SplitContainerControl1.Panel2, "SplitContainerControl1.Panel2")
|
resources.ApplyResources(Me.SplitContainerControl1.Panel2, "SplitContainerControl1.Panel2")
|
||||||
Me.SplitContainerControl1.SplitterPosition = 272
|
Me.SplitContainerControl1.SplitterPosition = 272
|
||||||
'
|
'
|
||||||
'XtraTabControl1
|
'XtraTabControlMain
|
||||||
'
|
'
|
||||||
resources.ApplyResources(Me.XtraTabControl1, "XtraTabControl1")
|
resources.ApplyResources(Me.XtraTabControlMain, "XtraTabControlMain")
|
||||||
Me.XtraTabControl1.Name = "XtraTabControl1"
|
Me.XtraTabControlMain.Name = "XtraTabControlMain"
|
||||||
Me.XtraTabControl1.SelectedTabPage = Me.XtraTabPage1
|
Me.XtraTabControlMain.SelectedTabPage = Me.XtraTabPage1
|
||||||
Me.XtraTabControl1.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.XtraTabPage1, Me.XtraTabPage2})
|
Me.XtraTabControlMain.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.XtraTabPage1, Me.XtraTabPage2})
|
||||||
'
|
'
|
||||||
'XtraTabPage1
|
'XtraTabPage1
|
||||||
'
|
'
|
||||||
@@ -288,9 +292,9 @@ Partial Class frmMain
|
|||||||
Me.RibbonControl.ExpandCollapseItem.Id = 0
|
Me.RibbonControl.ExpandCollapseItem.Id = 0
|
||||||
Me.RibbonControl.ExpandCollapseItem.ImageOptions.ImageIndex = CType(resources.GetObject("RibbonControl.ExpandCollapseItem.ImageOptions.ImageIndex"), Integer)
|
Me.RibbonControl.ExpandCollapseItem.ImageOptions.ImageIndex = CType(resources.GetObject("RibbonControl.ExpandCollapseItem.ImageOptions.ImageIndex"), Integer)
|
||||||
Me.RibbonControl.ExpandCollapseItem.ImageOptions.LargeImageIndex = CType(resources.GetObject("RibbonControl.ExpandCollapseItem.ImageOptions.LargeImageIndex"), Integer)
|
Me.RibbonControl.ExpandCollapseItem.ImageOptions.LargeImageIndex = CType(resources.GetObject("RibbonControl.ExpandCollapseItem.ImageOptions.LargeImageIndex"), Integer)
|
||||||
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.btnCreateEnvelope, Me.btnEditEnvelope, Me.btnDeleteEnvelope, Me.BarButtonItem1, Me.txtRefreshLabel, Me.btnShowDocument, Me.btnContactReceiver, Me.txtEnvelopeIdLabel, Me.btnOpenLogDirectory, Me.BarCheckItem1, Me.bsitmInfo})
|
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.btnCreateEnvelope, Me.btnEditEnvelope, Me.btnDeleteEnvelope, Me.BarButtonItem1, Me.txtRefreshLabel, Me.btnShowDocument, Me.btnContactReceiver, Me.txtEnvelopeIdLabel, Me.btnOpenLogDirectory, Me.BarCheckItem1, Me.bsitmInfo, Me.bbtnitmEB, Me.bbtnitmInfoMail, Me.BarButtonItem2})
|
||||||
resources.ApplyResources(Me.RibbonControl, "RibbonControl")
|
resources.ApplyResources(Me.RibbonControl, "RibbonControl")
|
||||||
Me.RibbonControl.MaxItemId = 14
|
Me.RibbonControl.MaxItemId = 17
|
||||||
Me.RibbonControl.Name = "RibbonControl"
|
Me.RibbonControl.Name = "RibbonControl"
|
||||||
Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1, Me.RibbonPage2})
|
Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1, Me.RibbonPage2})
|
||||||
Me.RibbonControl.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
|
Me.RibbonControl.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
|
||||||
@@ -390,6 +394,22 @@ Partial Class frmMain
|
|||||||
Me.BarCheckItem1.ImageOptions.LargeImage = CType(resources.GetObject("BarCheckItem1.ImageOptions.LargeImage"), System.Drawing.Image)
|
Me.BarCheckItem1.ImageOptions.LargeImage = CType(resources.GetObject("BarCheckItem1.ImageOptions.LargeImage"), System.Drawing.Image)
|
||||||
Me.BarCheckItem1.Name = "BarCheckItem1"
|
Me.BarCheckItem1.Name = "BarCheckItem1"
|
||||||
'
|
'
|
||||||
|
'bsitmInfo
|
||||||
|
'
|
||||||
|
Me.bsitmInfo.Id = 13
|
||||||
|
Me.bsitmInfo.ImageOptions.Image = CType(resources.GetObject("bsitmInfo.ImageOptions.Image"), System.Drawing.Image)
|
||||||
|
Me.bsitmInfo.Name = "bsitmInfo"
|
||||||
|
Me.bsitmInfo.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph
|
||||||
|
Me.bsitmInfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||||
|
'
|
||||||
|
'bbtnitmEB
|
||||||
|
'
|
||||||
|
resources.ApplyResources(Me.bbtnitmEB, "bbtnitmEB")
|
||||||
|
Me.bbtnitmEB.Enabled = False
|
||||||
|
Me.bbtnitmEB.Id = 14
|
||||||
|
Me.bbtnitmEB.ImageOptions.SvgImage = CType(resources.GetObject("bbtnitmEB.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||||
|
Me.bbtnitmEB.Name = "bbtnitmEB"
|
||||||
|
'
|
||||||
'RibbonPage1
|
'RibbonPage1
|
||||||
'
|
'
|
||||||
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageEnvelopeActions, Me.RibbonPageGroup1, Me.RibbonPageGroup2})
|
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageEnvelopeActions, Me.RibbonPageGroup1, Me.RibbonPageGroup2})
|
||||||
@@ -415,6 +435,9 @@ Partial Class frmMain
|
|||||||
'
|
'
|
||||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.btnShowDocument)
|
Me.RibbonPageGroup2.ItemLinks.Add(Me.btnShowDocument)
|
||||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.btnContactReceiver)
|
Me.RibbonPageGroup2.ItemLinks.Add(Me.btnContactReceiver)
|
||||||
|
Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtnitmInfoMail)
|
||||||
|
Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtnitmEB)
|
||||||
|
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem2)
|
||||||
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
|
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
|
||||||
resources.ApplyResources(Me.RibbonPageGroup2, "RibbonPageGroup2")
|
resources.ApplyResources(Me.RibbonPageGroup2, "RibbonPageGroup2")
|
||||||
'
|
'
|
||||||
@@ -573,13 +596,23 @@ Partial Class frmMain
|
|||||||
'
|
'
|
||||||
Me.RefreshTimer.Interval = 120000
|
Me.RefreshTimer.Interval = 120000
|
||||||
'
|
'
|
||||||
'bsitmInfo
|
'SaveFileDialog1
|
||||||
'
|
'
|
||||||
Me.bsitmInfo.Id = 13
|
resources.ApplyResources(Me.SaveFileDialog1, "SaveFileDialog1")
|
||||||
Me.bsitmInfo.ImageOptions.Image = CType(resources.GetObject("BarStaticItem1.ImageOptions.Image"), System.Drawing.Image)
|
'
|
||||||
Me.bsitmInfo.Name = "bsitmInfo"
|
'bbtnitmInfoMail
|
||||||
Me.bsitmInfo.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph
|
'
|
||||||
Me.bsitmInfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
resources.ApplyResources(Me.bbtnitmInfoMail, "bbtnitmInfoMail")
|
||||||
|
Me.bbtnitmInfoMail.Id = 15
|
||||||
|
Me.bbtnitmInfoMail.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||||
|
Me.bbtnitmInfoMail.Name = "bbtnitmInfoMail"
|
||||||
|
'
|
||||||
|
'BarButtonItem2
|
||||||
|
'
|
||||||
|
resources.ApplyResources(Me.BarButtonItem2, "BarButtonItem2")
|
||||||
|
Me.BarButtonItem2.Id = 16
|
||||||
|
Me.BarButtonItem2.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.SvgImage1"), DevExpress.Utils.Svg.SvgImage)
|
||||||
|
Me.BarButtonItem2.Name = "BarButtonItem2"
|
||||||
'
|
'
|
||||||
'frmMain
|
'frmMain
|
||||||
'
|
'
|
||||||
@@ -597,8 +630,8 @@ Partial Class frmMain
|
|||||||
CType(Me.SplitContainerControl1.Panel2, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.SplitContainerControl1.Panel2, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
Me.SplitContainerControl1.ResumeLayout(False)
|
Me.SplitContainerControl1.ResumeLayout(False)
|
||||||
CType(Me.XtraTabControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.XtraTabControlMain, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
Me.XtraTabControl1.ResumeLayout(False)
|
Me.XtraTabControlMain.ResumeLayout(False)
|
||||||
Me.XtraTabPage1.ResumeLayout(False)
|
Me.XtraTabPage1.ResumeLayout(False)
|
||||||
CType(Me.GridEnvelopes, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.GridEnvelopes, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.ViewReceivers, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.ViewReceivers, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
@@ -632,7 +665,7 @@ Partial Class frmMain
|
|||||||
Friend WithEvents ColEmail As DevExpress.XtraGrid.Columns.GridColumn
|
Friend WithEvents ColEmail As DevExpress.XtraGrid.Columns.GridColumn
|
||||||
Friend WithEvents ColReceiverStatus As DevExpress.XtraGrid.Columns.GridColumn
|
Friend WithEvents ColReceiverStatus As DevExpress.XtraGrid.Columns.GridColumn
|
||||||
Friend WithEvents SplitContainerControl1 As DevExpress.XtraEditors.SplitContainerControl
|
Friend WithEvents SplitContainerControl1 As DevExpress.XtraEditors.SplitContainerControl
|
||||||
Friend WithEvents XtraTabControl1 As DevExpress.XtraTab.XtraTabControl
|
Friend WithEvents XtraTabControlMain As DevExpress.XtraTab.XtraTabControl
|
||||||
Friend WithEvents XtraTabPage1 As DevExpress.XtraTab.XtraTabPage
|
Friend WithEvents XtraTabPage1 As DevExpress.XtraTab.XtraTabPage
|
||||||
Friend WithEvents XtraTabPage2 As DevExpress.XtraTab.XtraTabPage
|
Friend WithEvents XtraTabPage2 As DevExpress.XtraTab.XtraTabPage
|
||||||
Friend WithEvents GridCompleted As DevExpress.XtraGrid.GridControl
|
Friend WithEvents GridCompleted As DevExpress.XtraGrid.GridControl
|
||||||
@@ -672,4 +705,8 @@ Partial Class frmMain
|
|||||||
Friend WithEvents colAccessCode As DevExpress.XtraGrid.Columns.GridColumn
|
Friend WithEvents colAccessCode As DevExpress.XtraGrid.Columns.GridColumn
|
||||||
Friend WithEvents BarCheckItem1 As DevExpress.XtraBars.BarCheckItem
|
Friend WithEvents BarCheckItem1 As DevExpress.XtraBars.BarCheckItem
|
||||||
Friend WithEvents bsitmInfo As DevExpress.XtraBars.BarStaticItem
|
Friend WithEvents bsitmInfo As DevExpress.XtraBars.BarStaticItem
|
||||||
|
Friend WithEvents SaveFileDialog1 As SaveFileDialog
|
||||||
|
Friend WithEvents bbtnitmEB As DevExpress.XtraBars.BarButtonItem
|
||||||
|
Friend WithEvents bbtnitmInfoMail As DevExpress.XtraBars.BarButtonItem
|
||||||
|
Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@@ -123,12 +123,12 @@
|
|||||||
</data>
|
</data>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<data name="SplitContainerControl1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="SplitContainerControl1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 160</value>
|
<value>0, 162</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="XtraTabControl1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="XtraTabControlMain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Fill</value>
|
<value>Fill</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="XtraTabControl1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="XtraTabControlMain.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 0</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GridEnvelopes.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="GridEnvelopes.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
@@ -631,54 +631,128 @@
|
|||||||
2zax9GEAAAAASUVORK5CYII=
|
2zax9GEAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BarStaticItem1.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="bsitmInfo.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAt0RVh0VGl0
|
||||||
YQUAAAALdEVYdFRpdGxlAEluZm87bRIthgAACltJREFUWEeVVndQ1VcWJm3Tk83ObGbLfzuzO7Ozs7PZ
|
bGUASW5mbzttEi2GAAAKW0lEQVRYR5VWd1DVVxYmbdOTzc5sZst/O7M7s7Ozs9mdzCRZE5WiYCFERSmS
|
||||||
ncwkWROVomAhREUpkiiC9CKwgEqVIoIUKQLSiyAgvRcBQXp78CgK0pvSBQUF0W/PuQ+Imsxk98x87953
|
KIL0IrCASpUighQpAtKLICC9FwFBenvwKArSm9IFBQXRb8+5D4iazGT3zHzv3nfv/Z3vO+eee38/OQAv
|
||||||
7/2d7zvnnnt/PzkAL+H/sNd+Br9oP+Hjn8Tsdrl4QoKAhPoS0SZktgnEZ0r42U2S1zfwxs9gc06sjb7e
|
4f+w134Gv2g/4eOfxOx2uXhCgoCE+hLRJmS2CcRnSvjZTZLXN/DGz2BzTqyNvt4sF53WJBdFiEyllhCZ
|
||||||
LBed1iQXRYhMpZYQmdIoF8G41vCjgDgi2VT0KjacCcKQ+MrPrlxrOBeZ1lQbldrcGp3Wsh51vXk9MrWx
|
0igXwbjW8KOAOCLZVPQqNpwJwpD4ys+uXGs4F5nWVBuV2twandayHnW9eT0ytbGNnNaGJdW4+YYX/IvW
|
||||||
jZzWhiXVuPmGF/yL1r7J6zeefe3n/IYl1cn880/M9ZaXJsXExsOEN0Kv1qhHpDb1puR3oLljDBNTS5iZ
|
vsnrN5597ef8hiXVyfzzT8z1lpcmxcTGw4Q3Qq/WqEekNvWm5HeguWMME1NLmJl/hOfPnwtwf+L+Ihrb
|
||||||
f4Tnz58LcH/i/iIa20eRlCtBWFJt36Woci169i1+nv286j8koWaTR06k5sVJMhH1hZDcP4Un1Tfk3ujB
|
R5GUK0FYUm3fpahyLXr2LX6e/bzqPyShZpNHTqTmxUkyEfWFkNw/hSfVN+Te6MEkkW4ak64/e46n68+w
|
||||||
JJFuGpOuP3uOp+vPsPb0mWifrj/HMxpjm5xaRHZpJ4JiqxtPe8T+mXxxRl6nqS2OwNgq5pFZeLJsPxhk
|
9vSZaJ+uP8czGmObnFpEdmkngmKrG097xP6ZfHFGXqepLY7A2CrmkVl4smw/GGQiat/wYqXw5Pr5zjv3
|
||||||
Imrf8GKl8OT6+c4792iYSYHVtXX0jS+hqO0eUmrG4JPTB6/sXiTcHEFm/Tg6Buax9GgNa7SORbb3TCI4
|
aJhJgdW1dfSNL6Go7R5Sasbgk9MHr+xeJNwcQWb9ODoG5rH0aA1rtI5FtvdMIjiuat7VN12ZfHI2tkT4
|
||||||
rmre1TddmXxyNrZE+EdWMpfMQq9u7McGuU9ooVJUauPqxP0HzC0ilA4tIKhoAAGFQwgsGUFQ6ShhBAHF
|
R1Yyl8xCr27sxwa5T2ihUlRq4+rE/QfMLSKUDi0gqGgAAYVDCCwZQVDpKGEEAcXDuJg3BK+su3BNvQP3
|
||||||
w7iYNwSvrLtwTb0D95Ru3OqawsNHq0Lw2OQCLsfXrDp4JauQ7y0RPuHlzCezoLhb3Ii0O19M+cvlhJrZ
|
lG7c6prCw0erQvDY5AIux9esOnglq5DvLRE+4eXMJ7OguFvciLQ7X0z5y+WEmtn707KUrzx5iqSqEfjk
|
||||||
+9OylK88eYqkqhH45PUjkAhDbowhpHwMwYTAsjEEkBi/wmF4kwjPrH4hwi6uE4HZdzA9v4yVx2uiPvwi
|
9SOQCENujCGkfAzBhMCyMQSQGL/CYXiTCM+sfiHCLq4Tgdl3MD2/jJXHa6I+/CLK54xtLv2NOFjEa16X
|
||||||
yueMbS79jThYxGtel0uYU2b+0Te54Up/ixbWSW9PCvJHK2sILuiHd24//EuGcalsVMC/aAQl0ilMzK9g
|
S5hTZv7RN7nhSn+LFtZJb08K8kcrawgu6Id3bj/8S4ZxqWxUwL9oBCXSKUzMr2D+4SqqumfgQeTuWQNw
|
||||||
/uEqqrpn4EHk7lkDcE3rw9mkHvwnWgqnuA5MzjwkP6uQdI3B/VJ+PXG8R9g8IVvGf950C8jRTshoEuSc
|
TevD2aQe/CdaCqe4DkzOPCQ/q5B0jcH9Un49cbxH2DwhW8Z/3nQLyNFOyGgS5Jy+6LIBeGTehU/+EHwp
|
||||||
vuiyAXhk3oVP/hB8KdW+RcPwyhtA8905rKyuY3n1KZ5QET6m/pnELrhc74PTtTs4e7UbNjGdMAtrw/lk
|
1b5Fw/DKG0Dz3TmsrK5jefUpnlARPqb+mcQuuFzvg9O1Ozh7tRs2MZ0wC2vD+WQp5hZWsEyZiEyqhbVz
|
||||||
KeYWVrBMmYhMqoW1c9wx4nqbwAFvGf952yuktG94fE5Uc233NByTuymyPpzPHcR5IvYiIQ7JXZicXSZS
|
3DHiepvAAW8Z/3nbK6S0b3h8TlRzbfc0HJO7KbI+nM8dxHki9iIhDsldmJxdJlLZCWBr75vGqah2OBD5
|
||||||
2Qlga++bxqmodjgQ+ZmrPbCN7YINZcCCBOgHNCL71hBmF5Zxd2gaDl5Z/cT1AYFPhsiCiN7WLVE58lqt
|
mas9sI3tgg1lwIIE6Ac0IvvWEGYXlnF3aBoOXln9xPUBgU+GyIKI3tYtUTnyWq1wuLS8CqerneSwB+fS
|
||||||
cLi0vAqnq53ksAfn0vtwLqMfbpRihh1FGl98Bw9pe7r6Z5Bcchu6Pjcp4g7YJ1Dq47pgzeRXOmAS2ioE
|
+3Auox9ulGKGHUUaX3wHD2l7uvpnkFxyG7o+NyniDtgnUOrjumDN5Fc6YBLaKgQY+tVh7N4SFhYfIzim
|
||||||
GPrVYezeEhYWHyM4phz6lgGqxPmrFwW8dfZCun91410RfStHFN2O08k9cKSickzrhRPtrRO1Z2jM/Eor
|
HPqWAarE+asXBbx19kK6f3XjXRF9K0cU3Y7TyT1wpKJyTOuFE+2tE7VnaMz8Sit0LlRCw7UMWm7lsApv
|
||||||
dC5UQsO1DFpu5bAKb4JlhARWMV2UCSnMIzpgGtoGw+AW6Pk34KjnLWRXD+Le9EOUVXXD/ExMEHG+SxDb
|
gmWEBFYxXZQJKcwjOmAa2gbD4Bbo+TfgqOctZFcP4t70Q5RVdcP8TEwQcb5LENvAP+84emfVDI7MiKqN
|
||||||
wD/vOHpn1QyOzIiqjSjohWWUBLbxXbBP7IY9FZU9EZ+m1ia+EyaXGxGULkV91yQWV56KrdAlIvPIdpiG
|
KOiFZZQEtvFdsE/shj0VlT0Rn6bWJr4TJpcbEZQuRX3XJBZXnoqt0CUi88h2mIZLYHy5FYZBMvLjvvXQ
|
||||||
S2B8uRWGQTLy47710PaohkdcG8bvLaKNitHSIYGL8UMCF6MQ8O5Zr8zZxaXHmJlbhlOshKKQUBaksKYj
|
9qiGR1wbxu8too2K0dIhgYvxQwIXoxDw7lmvzNnFpceYmVuGU6yEopBQFqSwpiNlzWnllvbWMKQJkr4Z
|
||||||
Zc1p5Zb21jCkCZK+GSJek2F5TWzb0fNVMOaoQ1pxMrAJJyj1xy/W4/sLtZSlahz3rMLg+Dz6Bqdh4ZA4
|
Il6TYXlNbNvR81Uw5qhDWnEysAknKPXHL9bj+wu1lKVqHPeswuD4PPoGp2HhkDhHnB8TuA6Eivft3a+v
|
||||||
R5wfE7gOhIr37d2vr63ThTNGZ1bDpQJGl1tgdkUCM0onR2YR2QEzavUDG5FWcRcLRPyAwC2bplslTgY1
|
rdOFM0ZnVsOlAkaXW2B2RQIzSidHZhHZATNq9QMbkVZxFwtE/IDALZumWyVOBjVDL6AJun4NOOZTT9tU
|
||||||
Qy+gCbp+DTjmU0/bVAtNSr+6SyX2WBWif3gW/SOzMDsTv0acnxD4ThACPrBxTREChugUfGdXggMOFTAg
|
C01Kv7pLJfZYFaJ/eBb9I7MwOxO/RpyfEPhOEAI+sHFNEQKG6BR8Z1eCAw4VMCCHRlRIRhSZAFW1QUgL
|
||||||
h0ZUSEYUmQBVtUFICw653MAkZWqebrsFunrZ1F3KZcQXG6DjXUcZqYGWB5PfxF6rYuw9VYDewRncHpiC
|
DrncwCRlap5uuwW6etnUXcplxBcboONdRxmpgZYHk9/EXqti7D1VgN7BGdwemIKxXQwL+M1LAiwdk2Yf
|
||||||
sV0MC/jNSwIsHZNmHyyuYGB0DjrkbI91MdROl+MHikSPUqq/AT0SdeRcJXqG50jAE3ERsR1wKJMRexGx
|
LK5gYHQOOuRsj3Ux1E6X4weKRI9Sqr8BPRJ15FwleobnSMATcRGxHXAokxF7EbFnNTTcqnDIkfwQ+W7z
|
||||||
ZzU03KpwyJH8EPlu83xoOJTgdv80WqSj0LeK4C1gAWILuAbeN7aNresduIfB0Xmc8rsFZctC7LUuwV6b
|
fGg4lOB2/zRapKPQt4rgLWABYgu4Bt43to2t6x24h8HReZzyuwVly0LstS7BXpsSHHSsJOe1OOZLERIO
|
||||||
Ehx0rCTntTjmSxESDlIGuodmMbf0BLMkgF9UqvbF0HKvhqY7ETtXYL9dKfkowG6LAiiZ5sLc+ya6+qbE
|
Uga6h2Yxt/QEsySAX1Sq9sXQcq+GpjsRO1dgv10p+SjAbosCKJnmwtz7Jrr6psQpOGYS3Eicv35RwLu6
|
||||||
KThmEtxInL9+UcC7uuYhQUXlUoxOLCAupwtKZvlQOVUkIhAgMar2ZULMXttC9I4uYIYFUOHyKVCzK8J+
|
5iFBReVSjE4sIC6nC0pm+VA5VSQiECAxqvZlQsxe20L0ji5ghgVQ4fIpULMrwn77UiFYhcQrE/Fui3wi
|
||||||
+1IhWIXEKxPxbot8Is+DvFEWQlMkkNKbNSGtBkd0vcKI86VT8PYBHWc1d79sTM0+QkvnBO1ZPnaTiN0U
|
z4O8URZCUySQ0ps1Ia0GR3S9wojzpVPw9gEdZzV3v2xMzT5CS+cE7Vk+dpOI3RQFC1EmqJwqFBEdOV2A
|
||||||
BQtRJqicKhQRHTldgGm6VKYXn2CGWs6EuXcFFE1yxTwT7zLLgyJFrmiUA2XzHNRLRsXr2f7cNexWO6VB
|
abpUphefYIZazoS5dwUUTXLFPBPvMsuDIkWuaJQDZfMc1EtGxevZ/tw17FY7pUGc/E5gbtlFRPhY1yxs
|
||||||
nPxOYG7ZRUT4WNcsbEDaMwb+BvBNaIGCcS5lIk84lKEA8sbZqG4fx9SDxwKzD59gmd6YM3Tf7zDMwi6K
|
QNozBv4G8E1ogYJxLmUiTziUoQDyxtmobh/H1IPHArMPn2CZ3pgzdN/vMMzCLopYyTRHiJE3ysYOg0x4
|
||||||
WMk0R4iRN8rGDoNMeMc00fkfR25JOzT0/IaI67eErZuQjZW8991R55OuPhniuLR0juOoYzGJyIESOeOI
|
xzTR+R9Hbkk7NPT8hojrt4Stm5CNlbz33VHnk64+GeK4tHSO46hjMYnIgRI544h2meVCgZyGprVj/P6P
|
||||||
dpnlQoGchqa1Y/z+j19IQxMPEEIp3klkiibZhBzIkxj+r3WmUETfIh2HtWM8RW9tQlyb6d8SsJmFT7QM
|
X0hDEw8QQineSWSKJtmEHMiTGP6vdaZQRN8iHYe1YzxFb21CXJvp3xKwmYVPtAwCmosrpGglxRUNg1C1
|
||||||
ApqLK6RoJcUVDYNQtcrDTnKmQJErkhgFIthhmImv9a5j24k0bNNNxdf6aSJSeeMssd+8fvvJDOyzyEFp
|
ysNOcqZAkSuSGAUi2GGYia/1rmPbiTRs003F1/ppIlJ54yyx37x++8kM7LPIQWntABrpOzIq6SYO6pxv
|
||||||
7QAa6TsyKukmDuqcbyeOTwn8Ntwil9M25KtZVoxfyX//1XGzkPkaei80S8fIQT+0zxZhx0kiMCACcs4k
|
J45PCfw23CKX0zbkq1lWjF/Jf//VcbOQ+Rp6LzRLx8hBP7TPFmHHSSIwIAJyziQKAtkCPMaiWMQOIt6u
|
||||||
CgLZAjzGoljEDiLerp8O7dOFKKruQ4NkBNlFEmjp+S989sWB7cTBb8KXopfT1L/EDQ/wsfhQfp+pup5l
|
nw7t04Uoqu5Dg2QE2UUSaOn5L3z2xYHtxMFvwpeil9PUv8QND/Cx+FB+n6m6nmXYWgGdCv7SrWkehmdE
|
||||||
2FoBnQr+0q1pHoZnRB12mWQK59sNMoiMQGQCNPaNfga+oawoGmXA/UodqpoGUdc2jLTcZugYXFr7SkGX
|
HXaZZArn2w0yiIxAZAI09o1+Br6hrCgaZcD9Sh2qmgZR1zaMtNxm6BhcWvtKQZe/kvnoiS8itaNe1GzY
|
||||||
v5L56IkvIrWjXtRs2JET/i9+E4qC3K5seERTP+BBYnotORpBXeswbtQN4GJsI/RcS3DYNh9fn6D066aJ
|
kRP+L34TioLcrmx4RFM/4EFiei05GkFd6zBu1A3gYmwj9FxLcNg2H1+foPTrpom+nksJfGIaUFrTj5qW
|
||||||
vp5LCXxiGlBa04+almHUtgwhLL4Ch364sPjlzmPa5JMvHlF4zPWtlgd1N+zQsYsvCtgU8dHfP9//hdpR
|
YdS2DCEsvgKHfriw+OXOY9rkky8eUXjM9a2WB3U37NCxiy8K2BTx0d8/3/+F2lGPdlvnRKTnt5DjIeGY
|
||||||
j3Zb50Sk57eQ4yHhmFHTTNhobzUPEriV9VNzmmFmF4V9h106/vqPXf8mX3zvb1a9ELBfw526G3ZAx1sI
|
UdNM2GhvNQ8SuJX1U3OaYWYXhX2HXTr++o9d/yZffO9vVr0QsF/DnbobdkDHWwh4RQRvx/uET3eqmJqq
|
||||||
eEUEb8f7hE93qpiaqmp5jupbhMIrMAfJWY3IKGhDNaWZkU79pMwGnA/IxnGTYOw/cm50m6KBBT37ewJX
|
anmO6luEwiswB8lZjcgoaEM1pZmRTv2kzAacD8jGcZNg7D9ybnSbooEFPft7Ale8SDtjk2fPYVf6u2Fq
|
||||||
vEg7Y5Nnz2FX+rthatpeWwJeEcHFwhX7EeF3n2/TUlVStQndS5ERer/V8sS3mh7Yo+7ct0fdqUNhn1XY
|
2l5bAl4RwcXCFfsR4Xefb9NSVVK1Cd1LkRF6v9XyxLeaHtij7ty3R92pQ2GfVdg/v1T/jtb+gcD7/Q6B
|
||||||
P79U/47W/oHA+/0OgQN5iZyhcsiZhjZsv4annKqmx09A9qoQrmBOJx8lju6PG+A+j/E+8xpeu0W855CL
|
A3mJnKFyyJmGNmy/hqecqqbHT0D2qhCuYE4nHyWO7o8b4D6P8T7zGl67RbznkIucwEFnQaxy0ElO+YAT
|
||||||
nMBBZ0GsctBJTvmAE03977YphI8qO+aUMsmL4DGe4zUMXv8LJif3X9GYf76Y1zM7AAAAAElFTkSuQmCC
|
Tf3vtimEjyo75pQyyYvgMZ7jNQxe/wsmJ/df0Zh/vpjXMzsAAAAASUVORK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="bbtnitmEB.Caption" xml:space="preserve">
|
||||||
|
<value>Ergebnisbericht anzeigen</value>
|
||||||
|
</data>
|
||||||
|
<data name="bbtnitmEB.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||||
|
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||||
|
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAJYEAAAC77u/
|
||||||
|
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||||
|
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||||
|
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||||
|
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||||
|
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
|
||||||
|
LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
|
||||||
|
MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
|
||||||
|
Y2l0eTowLjc1O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkRvY3VtZW50UERGIj4NCiAgICA8cGF0aCBkPSJN
|
||||||
|
MjIsMjR2NEgyVjJoMTR2NWMwLDAuNiwwLjQsMSwxLDFoNXY0aDJWN2wtNy03SDFDMC40LDAsMCwwLjQs
|
||||||
|
MCwxdjI4YzAsMC42LDAuNCwxLDEsMWgyMmMwLjYsMCwxLTAuNCwxLTEgICB2LTVIMjJ6IiBjbGFzcz0i
|
||||||
|
QmxhY2siIC8+DQogICAgPHBhdGggZD0iTTE5LjIsMTZjMC4zLDAuNSwwLjQsMS4xLDAuNCwxLjljMCww
|
||||||
|
LjktMC4yLDEuNS0wLjUsMmMtMC4zLDAuNS0wLjcsMC43LTEuMywwLjdoLTAuNnYtNS4zaDAuNiAgIEMx
|
||||||
|
OC40LDE1LjMsMTguOSwxNS42LDE5LjIsMTZ6IE0xMi4xLDE1LjNoLTAuNXYyLjZoMC41YzAuNywwLDEu
|
||||||
|
MS0wLjQsMS4xLTEuM2MwLTAuNC0wLjEtMC44LTAuMy0xQzEyLjYsMTUuNCwxMi40LDE1LjMsMTIuMSwx
|
||||||
|
NS4zeiAgICBNMzAsMTJ2MTJINlYxMkgzMHogTTE0LjgsMTYuNWMwLTAuOC0wLjItMS41LTAuNi0xLjlj
|
||||||
|
LTAuNC0wLjQtMS0wLjctMS44LTAuN0gxMHY4aDEuNnYtMi43aDAuNmMwLjgsMCwxLjQtMC4zLDEuOS0w
|
||||||
|
LjggICBDMTQuNSwxOCwxNC44LDE3LjMsMTQuOCwxNi41eiBNMjEuMiwxNy45YzAtMi42LTEuMS0zLjkt
|
||||||
|
My40LTMuOWgtMi4xdjhoMi4yYzEuMSwwLDEuOS0wLjQsMi41LTEuMUMyMC45LDIwLjIsMjEuMiwxOS4y
|
||||||
|
LDIxLjIsMTcuOXogICAgTTI2LDE0aC0zLjd2OGgxLjZ2LTMuMWgydi0xLjNoLTJ2LTIuMkgyNlYxNHoi
|
||||||
|
IGNsYXNzPSJSZWQiIC8+DQogIDwvZz4NCjwvc3ZnPgs=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="bbtnitmInfoMail.Caption" xml:space="preserve">
|
||||||
|
<value>Support Mail</value>
|
||||||
|
</data>
|
||||||
|
<data name="BarButtonItem2.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||||
|
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||||
|
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKQCAAAC77u/
|
||||||
|
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||||
|
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||||
|
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||||
|
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||||
|
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku
|
||||||
|
WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLlJlZHtmaWxsOiNEMTFD
|
||||||
|
MUM7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7Zmls
|
||||||
|
bDojNzI3MjcyO30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuNzU7fQo8L3N0eWxl
|
||||||
|
Pg0KICA8ZyBpZD0iTWFpbCI+DQogICAgPHBhdGggZD0iTTE2LDE4LjNsMTQtOFYyNWMwLDAuNS0wLjUs
|
||||||
|
MS0xLDFIM2MtMC41LDAtMS0wLjUtMS0xVjEwLjNMMTYsMTguM3ogTTI5LDZIM0MyLjUsNiwyLDYuNSwy
|
||||||
|
LDd2MWwxNCw4bDE0LThWNyAgIEMzMCw2LjUsMjkuNSw2LDI5LDZ6IiBjbGFzcz0iQmxhY2siIC8+DQog
|
||||||
|
IDwvZz4NCjwvc3ZnPgs=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="BarButtonItem2.Caption" xml:space="preserve">
|
||||||
|
<value>BarButtonItem2</value>
|
||||||
|
</data>
|
||||||
|
<data name="BarButtonItem2.ImageOptions.SvgImage1" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||||
|
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||||
|
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKQCAAAC77u/
|
||||||
|
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||||
|
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||||
|
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||||
|
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||||
|
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku
|
||||||
|
WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLlJlZHtmaWxsOiNEMTFD
|
||||||
|
MUM7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7Zmls
|
||||||
|
bDojNzI3MjcyO30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuNzU7fQo8L3N0eWxl
|
||||||
|
Pg0KICA8ZyBpZD0iTWFpbCI+DQogICAgPHBhdGggZD0iTTE2LDE4LjNsMTQtOFYyNWMwLDAuNS0wLjUs
|
||||||
|
MS0xLDFIM2MtMC41LDAtMS0wLjUtMS0xVjEwLjNMMTYsMTguM3ogTTI5LDZIM0MyLjUsNiwyLDYuNSwy
|
||||||
|
LDd2MWwxNCw4bDE0LThWNyAgIEMzMCw2LjUsMjkuNSw2LDI5LDZ6IiBjbGFzcz0iQmxhY2siIC8+DQog
|
||||||
|
IDwvZz4NCjwvc3ZnPgs=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RibbonControl.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="RibbonControl.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
@@ -703,13 +777,13 @@
|
|||||||
<value>Einstellungen</value>
|
<value>Einstellungen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RibbonControl.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="RibbonControl.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1088, 160</value>
|
<value>1090, 162</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RibbonStatusBar.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="RibbonStatusBar.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 659</value>
|
<value>0, 656</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RibbonStatusBar.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="RibbonStatusBar.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1088, 22</value>
|
<value>1090, 26</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>RibbonStatusBar.Name" xml:space="preserve">
|
<data name=">>RibbonStatusBar.Name" xml:space="preserve">
|
||||||
<value>RibbonStatusBar</value>
|
<value>RibbonStatusBar</value>
|
||||||
@@ -736,7 +810,7 @@
|
|||||||
<value>2</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GridEnvelopes.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="GridEnvelopes.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1086, 466</value>
|
<value>1088, 455</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GridEnvelopes.TabIndex" type="System.Int32, mscorlib">
|
<data name="GridEnvelopes.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
@@ -754,7 +828,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="XtraTabPage1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="XtraTabPage1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1086, 466</value>
|
<value>1088, 455</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="XtraTabPage1.Text" xml:space="preserve">
|
<data name="XtraTabPage1.Text" xml:space="preserve">
|
||||||
<value>Offene Umschläge</value>
|
<value>Offene Umschläge</value>
|
||||||
@@ -766,15 +840,15 @@
|
|||||||
<value>DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
<value>DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>XtraTabPage1.Parent" xml:space="preserve">
|
<data name=">>XtraTabPage1.Parent" xml:space="preserve">
|
||||||
<value>XtraTabControl1</value>
|
<value>XtraTabControlMain</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>XtraTabPage1.ZOrder" xml:space="preserve">
|
<data name=">>XtraTabPage1.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="XtraTabControl1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="XtraTabControlMain.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1088, 489</value>
|
<value>1090, 484</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="XtraTabControl1.TabIndex" type="System.Int32, mscorlib">
|
<data name="XtraTabControlMain.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>3</value>
|
<value>3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GridCompleted.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="GridCompleted.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
@@ -916,7 +990,7 @@
|
|||||||
<value>195</value>
|
<value>195</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GridCompleted.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="GridCompleted.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1086, 466</value>
|
<value>1088, 455</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GridCompleted.TabIndex" type="System.Int32, mscorlib">
|
<data name="GridCompleted.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>3</value>
|
<value>3</value>
|
||||||
@@ -934,7 +1008,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="XtraTabPage2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="XtraTabPage2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1086, 466</value>
|
<value>1088, 455</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="XtraTabPage2.Text" xml:space="preserve">
|
<data name="XtraTabPage2.Text" xml:space="preserve">
|
||||||
<value>Abgeschlossene Umschläge</value>
|
<value>Abgeschlossene Umschläge</value>
|
||||||
@@ -946,21 +1020,21 @@
|
|||||||
<value>DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
<value>DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>XtraTabPage2.Parent" xml:space="preserve">
|
<data name=">>XtraTabPage2.Parent" xml:space="preserve">
|
||||||
<value>XtraTabControl1</value>
|
<value>XtraTabControlMain</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>XtraTabPage2.ZOrder" xml:space="preserve">
|
<data name=">>XtraTabPage2.ZOrder" xml:space="preserve">
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>XtraTabControl1.Name" xml:space="preserve">
|
<data name=">>XtraTabControlMain.Name" xml:space="preserve">
|
||||||
<value>XtraTabControl1</value>
|
<value>XtraTabControlMain</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>XtraTabControl1.Type" xml:space="preserve">
|
<data name=">>XtraTabControlMain.Type" xml:space="preserve">
|
||||||
<value>DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
<value>DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>XtraTabControl1.Parent" xml:space="preserve">
|
<data name=">>XtraTabControlMain.Parent" xml:space="preserve">
|
||||||
<value>SplitContainerControl1.Panel1</value>
|
<value>SplitContainerControl1.Panel1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>XtraTabControl1.ZOrder" xml:space="preserve">
|
<data name=">>XtraTabControlMain.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SplitContainerControl1.Panel1.Text" xml:space="preserve">
|
<data name="SplitContainerControl1.Panel1.Text" xml:space="preserve">
|
||||||
@@ -994,7 +1068,7 @@
|
|||||||
<value>1</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SplitContainerControl1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="SplitContainerControl1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1088, 499</value>
|
<value>1090, 494</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SplitContainerControl1.TabIndex" type="System.Int32, mscorlib">
|
<data name="SplitContainerControl1.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>5</value>
|
<value>5</value>
|
||||||
@@ -1012,8 +1086,14 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="RefreshTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="RefreshTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>196, 17</value>
|
<value>193, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="SaveFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>316, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="SaveFileDialog1.Filter" xml:space="preserve">
|
||||||
|
<value>PDF Files|*.pdf</value>
|
||||||
|
</data>
|
||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
@@ -1021,7 +1101,7 @@
|
|||||||
<value>6, 13</value>
|
<value>6, 13</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1088, 681</value>
|
<value>1090, 682</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="frmMain.IconOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="frmMain.IconOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
@@ -1277,6 +1357,18 @@
|
|||||||
<data name=">>BarCheckItem1.Type" xml:space="preserve">
|
<data name=">>BarCheckItem1.Type" xml:space="preserve">
|
||||||
<value>DevExpress.XtraBars.BarCheckItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
<value>DevExpress.XtraBars.BarCheckItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>bsitmInfo.Name" xml:space="preserve">
|
||||||
|
<value>bsitmInfo</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>bsitmInfo.Type" xml:space="preserve">
|
||||||
|
<value>DevExpress.XtraBars.BarStaticItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>bbtnitmEB.Name" xml:space="preserve">
|
||||||
|
<value>bbtnitmEB</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>bbtnitmEB.Type" xml:space="preserve">
|
||||||
|
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||||
|
</data>
|
||||||
<data name=">>RibbonPage1.Name" xml:space="preserve">
|
<data name=">>RibbonPage1.Name" xml:space="preserve">
|
||||||
<value>RibbonPage1</value>
|
<value>RibbonPage1</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -1403,11 +1495,23 @@
|
|||||||
<data name=">>RefreshTimer.Type" xml:space="preserve">
|
<data name=">>RefreshTimer.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>bsitmInfo.Name" xml:space="preserve">
|
<data name=">>SaveFileDialog1.Name" xml:space="preserve">
|
||||||
<value>bsitmInfo</value>
|
<value>SaveFileDialog1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>bsitmInfo.Type" xml:space="preserve">
|
<data name=">>SaveFileDialog1.Type" xml:space="preserve">
|
||||||
<value>DevExpress.XtraBars.BarStaticItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
<value>System.Windows.Forms.SaveFileDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>bbtnitmInfoMail.Name" xml:space="preserve">
|
||||||
|
<value>bbtnitmInfoMail</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>bbtnitmInfoMail.Type" xml:space="preserve">
|
||||||
|
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>BarButtonItem2.Name" xml:space="preserve">
|
||||||
|
<value>BarButtonItem2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>BarButtonItem2.Type" xml:space="preserve">
|
||||||
|
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
<value>frmMain</value>
|
<value>frmMain</value>
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
Imports DevExpress.Utils.Extensions
|
Imports System.IO
|
||||||
|
Imports DevExpress.LookAndFeel
|
||||||
|
Imports DevExpress.Utils.Extensions
|
||||||
Imports DevExpress.XtraCharts
|
Imports DevExpress.XtraCharts
|
||||||
Imports DevExpress.XtraGrid
|
Imports DevExpress.XtraGrid
|
||||||
Imports DevExpress.XtraGrid.Views.Grid
|
Imports DevExpress.XtraGrid.Views.Grid
|
||||||
@@ -8,6 +10,7 @@ Imports DigitalData.Modules.Base
|
|||||||
Imports DigitalData.Modules.Logging
|
Imports DigitalData.Modules.Logging
|
||||||
Imports EnvelopeGenerator.Common
|
Imports EnvelopeGenerator.Common
|
||||||
Imports EnvelopeGenerator.Common.My
|
Imports EnvelopeGenerator.Common.My
|
||||||
|
Imports System.Diagnostics
|
||||||
|
|
||||||
Public Class frmMain
|
Public Class frmMain
|
||||||
Private ReadOnly LogConfig As LogConfig
|
Private ReadOnly LogConfig As LogConfig
|
||||||
@@ -18,6 +21,8 @@ Public Class frmMain
|
|||||||
|
|
||||||
Private State As State
|
Private State As State
|
||||||
Private Controller As EnvelopeListController
|
Private Controller As EnvelopeListController
|
||||||
|
Private myFileData As Byte()
|
||||||
|
Private myResFileData As Byte()
|
||||||
|
|
||||||
Public Sub New(pState As State)
|
Public Sub New(pState As State)
|
||||||
' Dieser Aufruf ist für den Designer erforderlich.
|
' Dieser Aufruf ist für den Designer erforderlich.
|
||||||
@@ -38,6 +43,12 @@ Public Class frmMain
|
|||||||
RefreshHelper = New RefreshHelper(ViewEnvelopes, "Id")
|
RefreshHelper = New RefreshHelper(ViewEnvelopes, "Id")
|
||||||
|
|
||||||
Controller = New EnvelopeListController(State)
|
Controller = New EnvelopeListController(State)
|
||||||
|
Try
|
||||||
|
Me.LookAndFeel.UseDefaultLookAndFeel = False
|
||||||
|
LookAndFeel.SetSkinStyle(SkinStyle.Office2019Colorful, SkinSvgPalette.DefaultSkin)
|
||||||
|
Catch ex As Exception
|
||||||
|
|
||||||
|
End Try
|
||||||
|
|
||||||
LoadEnvelopeData()
|
LoadEnvelopeData()
|
||||||
End Sub
|
End Sub
|
||||||
@@ -45,8 +56,12 @@ Public Class frmMain
|
|||||||
Private Sub LoadEnvelopeData()
|
Private Sub LoadEnvelopeData()
|
||||||
Try
|
Try
|
||||||
RefreshHelper.SaveViewInfo()
|
RefreshHelper.SaveViewInfo()
|
||||||
LoadEnvelopes()
|
If XtraTabControlMain.SelectedTabPageIndex = 0 Then
|
||||||
LoadCompletedEnvelopes()
|
LoadEnvelopes()
|
||||||
|
ElseIf XtraTabControlMain.SelectedTabPageIndex = 1 Then
|
||||||
|
LoadCompletedEnvelopes()
|
||||||
|
End If
|
||||||
|
|
||||||
RefreshHelper.LoadViewInfo()
|
RefreshHelper.LoadViewInfo()
|
||||||
|
|
||||||
'LoadCharts()
|
'LoadCharts()
|
||||||
@@ -130,14 +145,14 @@ Public Class frmMain
|
|||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub DeleteEnvelope(pRowHandle As Integer)
|
Private Sub DeleteEnvelope(pRowHandle As Integer, pReason As String)
|
||||||
Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(pRowHandle)
|
Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(pRowHandle)
|
||||||
|
|
||||||
If MsgBox(Resources.Envelope.Do_you_really_want_to_delete_this_envelope, MsgBoxStyle.Question Or MsgBoxStyle.YesNo, Text) = MsgBoxResult.No Then
|
'If MsgBox(Resources.Envelope.Do_you_really_want_to_delete_this_envelope, MsgBoxStyle.Question Or MsgBoxStyle.YesNo, Text) = MsgBoxResult.No Then
|
||||||
Exit Sub
|
' Exit Sub
|
||||||
End If
|
'End If
|
||||||
|
|
||||||
If Controller.DeleteEnvelope(oEnvelope) Then
|
If Controller.DeleteEnvelope(oEnvelope, pReason) Then
|
||||||
LoadEnvelopeData()
|
LoadEnvelopeData()
|
||||||
Else
|
Else
|
||||||
MsgBox(Resources.Envelope.The_envelope_could_not_be_deleted, MsgBoxStyle.Critical, Text)
|
MsgBox(Resources.Envelope.The_envelope_could_not_be_deleted, MsgBoxStyle.Critical, Text)
|
||||||
@@ -152,10 +167,20 @@ Public Class frmMain
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub btnDeleteEnvelope_ItemClick_1(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnDeleteEnvelope.ItemClick
|
Private Sub btnDeleteEnvelope_ItemClick_1(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnDeleteEnvelope.ItemClick
|
||||||
Dim oSelectedRows = ViewEnvelopes.GetSelectedRows()
|
Try
|
||||||
If oSelectedRows.Count > 0 Then
|
Dim oSelectedRows = ViewEnvelopes.GetSelectedRows()
|
||||||
DeleteEnvelope(oSelectedRows.First)
|
If oSelectedRows.Count > 0 Then
|
||||||
End If
|
Dim ofrmAbort As New frmRueckruf
|
||||||
|
frmRueckruf.ShowDialog()
|
||||||
|
If frmRueckruf.Continue_Reject = True Then
|
||||||
|
DeleteEnvelope(oSelectedRows.First, frmRueckruf.Reject_reason)
|
||||||
|
End If
|
||||||
|
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
||||||
|
End Try
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub frmMain_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
|
Private Sub frmMain_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
|
||||||
@@ -163,18 +188,22 @@ Public Class frmMain
|
|||||||
TempFiles.CleanUp()
|
TempFiles.CleanUp()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub XtraTabControl1_SelectedPageChanged(sender As Object, e As DevExpress.XtraTab.TabPageChangedEventArgs) Handles XtraTabControl1.SelectedPageChanged
|
Private Sub XtraTabControl1_SelectedPageChanged(sender As Object, e As DevExpress.XtraTab.TabPageChangedEventArgs) Handles XtraTabControlMain.SelectedPageChanged
|
||||||
Select Case XtraTabControl1.SelectedTabPageIndex
|
Select Case XtraTabControlMain.SelectedTabPageIndex
|
||||||
Case 1
|
Case 1
|
||||||
btnEditEnvelope.Enabled = False
|
btnEditEnvelope.Enabled = False
|
||||||
btnDeleteEnvelope.Enabled = False
|
btnDeleteEnvelope.Enabled = False
|
||||||
btnContactReceiver.Enabled = False
|
btnContactReceiver.Enabled = False
|
||||||
btnShowDocument.Enabled = False
|
btnShowDocument.Enabled = False
|
||||||
|
bbtnitmEB.Enabled = True
|
||||||
|
LoadEnvelopeData()
|
||||||
Case 0
|
Case 0
|
||||||
btnEditEnvelope.Enabled = True
|
btnEditEnvelope.Enabled = True
|
||||||
btnDeleteEnvelope.Enabled = True
|
btnDeleteEnvelope.Enabled = True
|
||||||
btnContactReceiver.Enabled = True
|
btnContactReceiver.Enabled = True
|
||||||
btnShowDocument.Enabled = True
|
btnShowDocument.Enabled = True
|
||||||
|
bbtnitmEB.Enabled = False
|
||||||
|
LoadEnvelopeData()
|
||||||
End Select
|
End Select
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -197,9 +226,44 @@ Public Class frmMain
|
|||||||
btnEditEnvelope.Enabled = True
|
btnEditEnvelope.Enabled = True
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
Private Sub bbtnitmEB_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitmEB.ItemClick
|
||||||
|
Try
|
||||||
|
If ViewEnvelopes.FocusedRowHandle < 0 Then
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
Me.Cursor = Cursors.WaitCursor
|
||||||
|
Dim oEnvelope As Envelope = ViewCompleted.GetRow(ViewCompleted.FocusedRowHandle)
|
||||||
|
GetResRepFileStreamByte(oEnvelope.Id)
|
||||||
|
Dim oTempFolder = TempFiles.TempPath
|
||||||
|
Dim oFilename = "ViewEnvResReport"
|
||||||
|
Dim oVersion As Integer = 0
|
||||||
|
Dim oTempFilename = String.Concat(oTempFolder, "\", $"{oFilename}_{oEnvelope.Id}.pdf")
|
||||||
|
Do While File.Exists(oTempFilename)
|
||||||
|
oVersion += 1
|
||||||
|
oTempFilename = String.Concat(oTempFolder, "\", $"{oFilename}_{oEnvelope.Id}_", oVersion.ToString, ".pdf")
|
||||||
|
Loop
|
||||||
|
'If File.Exists(oTempFilename) Then
|
||||||
|
' oVersion += 1
|
||||||
|
' oTempFilename = String.Concat(oTempFolder, "\", $"ViewEnvResReport_{oEnvelope.Id}_", oVersion.ToString, ".pdf")
|
||||||
|
' Try
|
||||||
|
' File.OpenWrite(oTempFilename)
|
||||||
|
' Catch ex As Exception
|
||||||
|
' MsgBox("File might already be open?", MsgBoxStyle.Exclamation)
|
||||||
|
' Exit Sub
|
||||||
|
' End Try
|
||||||
|
|
||||||
|
|
||||||
|
' File.Delete(oTempFilename)
|
||||||
|
'End If
|
||||||
|
downloadResFile(oTempFilename)
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox(ex.Message, MsgBoxStyle.Exclamation)
|
||||||
|
End Try
|
||||||
|
Me.Cursor = Cursors.Default
|
||||||
|
End Sub
|
||||||
Private Sub ViewEnvelopes_CustomDrawCell(sender As Object, e As DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs) Handles ViewEnvelopes.CustomDrawCell
|
Private Sub ViewEnvelopes_CustomDrawCell(sender As Object, e As DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs) Handles ViewEnvelopes.CustomDrawCell
|
||||||
If e.RowHandle < 0 Then
|
If e.RowHandle < 0 Or XtraTabControlMain.SelectedTabPageIndex = 1 Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -294,33 +358,118 @@ Public Class frmMain
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub btnShowDocument_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnShowDocument.ItemClick
|
Private Sub btnShowDocument_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnShowDocument.ItemClick
|
||||||
If ViewEnvelopes.FocusedRowHandle < 0 Then
|
|
||||||
Exit Sub
|
|
||||||
End If
|
|
||||||
|
|
||||||
Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(ViewEnvelopes.FocusedRowHandle)
|
|
||||||
Dim oDocument = oEnvelope.Documents.FirstOrDefault()
|
|
||||||
|
|
||||||
If oDocument Is Nothing Then
|
|
||||||
MsgBox(Resources.Envelope.The_envelope_does_not_contain_any_documents, MsgBoxStyle.Exclamation, Text)
|
|
||||||
Exit Sub
|
|
||||||
End If
|
|
||||||
|
|
||||||
Try
|
Try
|
||||||
Process.Start(oDocument.Filepath)
|
If ViewEnvelopes.FocusedRowHandle < 0 Then
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
Me.Cursor = Cursors.WaitCursor
|
||||||
|
Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(ViewEnvelopes.FocusedRowHandle)
|
||||||
|
Dim oDocument = oEnvelope.Documents.FirstOrDefault()
|
||||||
|
If oDocument Is Nothing Then
|
||||||
|
MsgBox(Resources.Envelope.The_envelope_does_not_contain_any_documents, MsgBoxStyle.Exclamation, Text)
|
||||||
|
Me.Cursor = Cursors.Default
|
||||||
|
Exit Sub
|
||||||
|
Else
|
||||||
|
If Not IsNothing(oDocument.Byte_Data) Then
|
||||||
|
Dim oTempFolder = TempFiles.TempPath
|
||||||
|
Dim oTempFilename = String.Concat(oTempFolder, "\", $"ViewEnvDoc_{oEnvelope.Id}.pdf")
|
||||||
|
If File.Exists(oTempFilename) Then
|
||||||
|
Try
|
||||||
|
File.OpenWrite(oTempFilename)
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox("File might already be open?", MsgBoxStyle.Exclamation)
|
||||||
|
Me.Cursor = Cursors.Default
|
||||||
|
Exit Sub
|
||||||
|
End Try
|
||||||
|
|
||||||
|
|
||||||
|
File.Delete(oTempFilename)
|
||||||
|
End If
|
||||||
|
downloadFile(oTempFilename, oDocument.Byte_Data)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
MsgBox(Resources.Envelope.Document_could_not_be_opened, MsgBoxStyle.Critical, Text)
|
MsgBox(Resources.Envelope.Document_could_not_be_opened, MsgBoxStyle.Critical, Text)
|
||||||
Logger.Error(ex)
|
Logger.Error(ex)
|
||||||
|
End Try
|
||||||
|
Me.Cursor = Cursors.Default
|
||||||
|
End Sub
|
||||||
|
Private Sub GetResRepFileStreamByte(ByVal pEnvID As Long)
|
||||||
|
|
||||||
|
Dim strSql As String
|
||||||
|
'For Document
|
||||||
|
Try
|
||||||
|
'Get image data from gridview column.
|
||||||
|
strSql = "Select [DOC_RESULT] from [TBSIG_ENVELOPE] WHERE GUID = " & pEnvID
|
||||||
|
Dim obyteDB = DB_DD_ECM.GetScalarValue(strSql)
|
||||||
|
If Not IsDBNull(obyteDB) Then
|
||||||
|
'Get image data from DB
|
||||||
|
Dim fileData As Byte() = DirectCast(DB_DD_ECM.GetScalarValue(strSql), Byte())
|
||||||
|
If Not fileData Is Nothing Then
|
||||||
|
myResFileData = fileData
|
||||||
|
Else
|
||||||
|
myResFileData = Nothing
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
myResFileData = Nothing
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in GetResRepFileStreamByte")
|
||||||
|
myResFileData = Nothing
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
Private Sub downloadFile(ByVal sFileName As String, pByte As Byte())
|
||||||
|
|
||||||
|
'For Document
|
||||||
|
Try
|
||||||
|
If Not pByte Is Nothing Then
|
||||||
|
'Read image data into a file stream
|
||||||
|
Using fs As New FileStream(sFileName, FileMode.OpenOrCreate, FileAccess.Write)
|
||||||
|
fs.Write(pByte, 0, pByte.Length)
|
||||||
|
'Set image variable value using memory stream.
|
||||||
|
fs.Flush()
|
||||||
|
fs.Close()
|
||||||
|
End Using
|
||||||
|
'Open File
|
||||||
|
Process.Start(sFileName)
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in downloadFile")
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
Private Sub downloadResFile(ByVal sFileName As String)
|
||||||
|
Try
|
||||||
|
If Not myResFileData Is Nothing Then
|
||||||
|
'Read image data into a file stream
|
||||||
|
Using fs As New FileStream(sFileName, FileMode.OpenOrCreate, FileAccess.Write)
|
||||||
|
fs.Write(myResFileData, 0, myResFileData.Length)
|
||||||
|
'Set image variable value using memory stream.
|
||||||
|
fs.Flush()
|
||||||
|
fs.Close()
|
||||||
|
End Using
|
||||||
|
'Open File
|
||||||
|
Process.Start(sFileName)
|
||||||
|
Else
|
||||||
|
MsgBox("Could not get DocData from Database!", MsgBoxStyle.Exclamation, "Error in downloadResFile")
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in downloadResFile")
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub ViewCompleted_FocusedRowChanged(sender As Object, e As Views.Base.FocusedRowChangedEventArgs) Handles ViewCompleted.FocusedRowChanged
|
Private Sub ViewCompleted_FocusedRowChanged(sender As Object, e As Views.Base.FocusedRowChangedEventArgs) Handles ViewCompleted.FocusedRowChanged
|
||||||
If ViewCompleted.FocusedRowHandle < 0 Then
|
If ViewCompleted.FocusedRowHandle < 0 Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim oEnvelope As Envelope = ViewCompleted.GetRow(ViewCompleted.FocusedRowHandle)
|
Dim oEnvelope As Envelope = ViewCompleted.GetRow(ViewCompleted.FocusedRowHandle)
|
||||||
|
If oEnvelope.Status = Common.Constants.EnvelopeStatus.EnvelopeArchived Then
|
||||||
|
bbtnitmEB.Enabled = True
|
||||||
|
Else
|
||||||
|
bbtnitmEB.Enabled = False
|
||||||
|
End If
|
||||||
txtEnvelopeIdLabel.Caption = String.Format(txtEnvelopeIdLabel.Tag, oEnvelope.Id)
|
txtEnvelopeIdLabel.Caption = String.Format(txtEnvelopeIdLabel.Tag, oEnvelope.Id)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -351,6 +500,54 @@ Public Class frmMain
|
|||||||
Else
|
Else
|
||||||
BarCheckItem1.Checked = False
|
BarCheckItem1.Checked = False
|
||||||
End If
|
End If
|
||||||
|
bbtnitmEB.Enabled = False
|
||||||
RefreshTimer.Start()
|
RefreshTimer.Start()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub bbtnitmInfoMail_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitmInfoMail.ItemClick
|
||||||
|
If ViewEnvelopes.FocusedRowHandle < 0 Then
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
Try
|
||||||
|
Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(ViewEnvelopes.FocusedRowHandle)
|
||||||
|
Dim oView As GridView = GridEnvelopes.FocusedView
|
||||||
|
If oView.Name = ViewReceivers.Name Then
|
||||||
|
Dim oReceiver As EnvelopeReceiver = oView.GetRow(oView.FocusedRowHandle)
|
||||||
|
Dim oEnvelopeTitle As String = Net.WebUtility.UrlEncode(oEnvelope.Title)
|
||||||
|
Dim oCode = oReceiver.AccessCode
|
||||||
|
Dim oUID = oEnvelope.Uuid
|
||||||
|
|
||||||
|
' E-Mail-Details konfigurieren
|
||||||
|
Dim mailto As String = "support-flow@digitaldata.works"
|
||||||
|
Dim subject As String = "signFLOW - Envelope issue"
|
||||||
|
Dim body As String = $"<html><body>Dear Digital Data Team, <br> There is an error or misbehavin with following envelope and Receiver: <p> Envelope: <b>{oUID}</b> <br> Receiver: <b>{oReceiver.Email}</b>
|
||||||
|
<p>Issue/Description: Please describe the issue in Your own words...</p></body></html>"
|
||||||
|
|
||||||
|
' URL-encoding für Betreff und Inhalt der E-Mail
|
||||||
|
'Dim encodedSubject As String = Uri.EscapeDataString(subject)
|
||||||
|
'Dim encodedBody As String = Uri.EscapeDataString(body)
|
||||||
|
|
||||||
|
' mailto-Link erstellen
|
||||||
|
Dim mailtoLink As String = $"{mailto}?subject={subject}&body={body}"
|
||||||
|
Try
|
||||||
|
Process.Start(mailtoLink)
|
||||||
|
Catch ex1 As Exception
|
||||||
|
MsgBox(ex1.Message, MsgBoxStyle.Critical, Text)
|
||||||
|
End Try
|
||||||
|
' E-Mail-Client öffnen
|
||||||
|
|
||||||
|
|
||||||
|
Process.Start($"mailto:{oReceiver.Email}?subject={oEnvelopeTitle}")
|
||||||
|
Else
|
||||||
|
MsgBox(Resources.Envelope.Please_select_a_recipient_from_the_Recipients_tab, MsgBoxStyle.Information, Text)
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox(ex.Message, MsgBoxStyle.Critical, Text)
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
|
||||||
|
|
||||||
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
132
EnvelopeGenerator.Form/frmRueckruf.Designer.vb
generated
Normal file
132
EnvelopeGenerator.Form/frmRueckruf.Designer.vb
generated
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||||
|
Partial Class frmRueckruf
|
||||||
|
Inherits System.Windows.Forms.Form
|
||||||
|
|
||||||
|
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
|
||||||
|
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||||
|
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||||
|
Try
|
||||||
|
If disposing AndAlso components IsNot Nothing Then
|
||||||
|
components.Dispose()
|
||||||
|
End If
|
||||||
|
Finally
|
||||||
|
MyBase.Dispose(disposing)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Wird vom Windows Form-Designer benötigt.
|
||||||
|
Private components As System.ComponentModel.IContainer
|
||||||
|
|
||||||
|
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
|
||||||
|
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
|
||||||
|
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
|
||||||
|
<System.Diagnostics.DebuggerStepThrough()> _
|
||||||
|
Private Sub InitializeComponent()
|
||||||
|
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmRueckruf))
|
||||||
|
Me.Label2 = New System.Windows.Forms.Label()
|
||||||
|
Me.txtReason = New System.Windows.Forms.TextBox()
|
||||||
|
Me.btnWeiter = New System.Windows.Forms.Button()
|
||||||
|
Me.Label1 = New System.Windows.Forms.Label()
|
||||||
|
Me.btnCancel = New System.Windows.Forms.Button()
|
||||||
|
Me.StatusStrip1 = New System.Windows.Forms.StatusStrip()
|
||||||
|
Me.tsstatus = New System.Windows.Forms.ToolStripStatusLabel()
|
||||||
|
Me.StatusStrip1.SuspendLayout()
|
||||||
|
Me.SuspendLayout()
|
||||||
|
'
|
||||||
|
'Label2
|
||||||
|
'
|
||||||
|
Me.Label2.AutoSize = True
|
||||||
|
Me.Label2.Location = New System.Drawing.Point(22, 20)
|
||||||
|
Me.Label2.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
|
||||||
|
Me.Label2.Name = "Label2"
|
||||||
|
Me.Label2.Size = New System.Drawing.Size(380, 16)
|
||||||
|
Me.Label2.TabIndex = 0
|
||||||
|
Me.Label2.Text = "Bitte geben Sie einen Grund für den Rückruf des Umschlages ein:"
|
||||||
|
'
|
||||||
|
'txtReason
|
||||||
|
'
|
||||||
|
Me.txtReason.AcceptsReturn = True
|
||||||
|
Me.txtReason.Location = New System.Drawing.Point(25, 40)
|
||||||
|
Me.txtReason.Margin = New System.Windows.Forms.Padding(4)
|
||||||
|
Me.txtReason.Multiline = True
|
||||||
|
Me.txtReason.Name = "txtReason"
|
||||||
|
Me.txtReason.Size = New System.Drawing.Size(429, 87)
|
||||||
|
Me.txtReason.TabIndex = 1
|
||||||
|
'
|
||||||
|
'btnWeiter
|
||||||
|
'
|
||||||
|
Me.btnWeiter.Location = New System.Drawing.Point(25, 134)
|
||||||
|
Me.btnWeiter.Name = "btnWeiter"
|
||||||
|
Me.btnWeiter.Size = New System.Drawing.Size(203, 44)
|
||||||
|
Me.btnWeiter.TabIndex = 2
|
||||||
|
Me.btnWeiter.Text = "Umschlag zurückrufen"
|
||||||
|
Me.btnWeiter.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'Label1
|
||||||
|
'
|
||||||
|
Me.Label1.AutoSize = True
|
||||||
|
Me.Label1.Location = New System.Drawing.Point(28, 87)
|
||||||
|
Me.Label1.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
|
||||||
|
Me.Label1.Name = "Label1"
|
||||||
|
Me.Label1.Size = New System.Drawing.Size(0, 16)
|
||||||
|
Me.Label1.TabIndex = 3
|
||||||
|
'
|
||||||
|
'btnCancel
|
||||||
|
'
|
||||||
|
Me.btnCancel.Image = CType(resources.GetObject("btnCancel.Image"), System.Drawing.Image)
|
||||||
|
Me.btnCancel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.btnCancel.Location = New System.Drawing.Point(251, 134)
|
||||||
|
Me.btnCancel.Name = "btnCancel"
|
||||||
|
Me.btnCancel.Size = New System.Drawing.Size(203, 44)
|
||||||
|
Me.btnCancel.TabIndex = 4
|
||||||
|
Me.btnCancel.Text = "Abbrechen"
|
||||||
|
Me.btnCancel.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'StatusStrip1
|
||||||
|
'
|
||||||
|
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsstatus})
|
||||||
|
Me.StatusStrip1.Location = New System.Drawing.Point(0, 185)
|
||||||
|
Me.StatusStrip1.Name = "StatusStrip1"
|
||||||
|
Me.StatusStrip1.Size = New System.Drawing.Size(488, 22)
|
||||||
|
Me.StatusStrip1.TabIndex = 5
|
||||||
|
Me.StatusStrip1.Text = "StatusStrip1"
|
||||||
|
'
|
||||||
|
'tsstatus
|
||||||
|
'
|
||||||
|
Me.tsstatus.Name = "tsstatus"
|
||||||
|
Me.tsstatus.Size = New System.Drawing.Size(0, 17)
|
||||||
|
'
|
||||||
|
'frmRueckruf
|
||||||
|
'
|
||||||
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 16.0!)
|
||||||
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
|
Me.ClientSize = New System.Drawing.Size(488, 207)
|
||||||
|
Me.Controls.Add(Me.StatusStrip1)
|
||||||
|
Me.Controls.Add(Me.btnCancel)
|
||||||
|
Me.Controls.Add(Me.Label1)
|
||||||
|
Me.Controls.Add(Me.btnWeiter)
|
||||||
|
Me.Controls.Add(Me.txtReason)
|
||||||
|
Me.Controls.Add(Me.Label2)
|
||||||
|
Me.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||||
|
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
|
||||||
|
Me.Margin = New System.Windows.Forms.Padding(4)
|
||||||
|
Me.MaximizeBox = False
|
||||||
|
Me.MinimizeBox = False
|
||||||
|
Me.Name = "frmRueckruf"
|
||||||
|
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
|
||||||
|
Me.Text = "Abbruch - Bestätigung"
|
||||||
|
Me.StatusStrip1.ResumeLayout(False)
|
||||||
|
Me.StatusStrip1.PerformLayout()
|
||||||
|
Me.ResumeLayout(False)
|
||||||
|
Me.PerformLayout()
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Friend WithEvents Label2 As Label
|
||||||
|
Friend WithEvents txtReason As TextBox
|
||||||
|
Friend WithEvents btnWeiter As Button
|
||||||
|
Friend WithEvents Label1 As Label
|
||||||
|
Friend WithEvents btnCancel As Button
|
||||||
|
Friend WithEvents StatusStrip1 As StatusStrip
|
||||||
|
Friend WithEvents tsstatus As ToolStripStatusLabel
|
||||||
|
End Class
|
||||||
@@ -117,7 +117,20 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="Hello" xml:space="preserve">
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<value>Hallo!!</value>
|
<data name="btnCancel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFJSURBVDhPpVOhjoNQEOQT+gn9hPuEC56kFleBB41CYRs8
|
||||||
|
SSWyAg8aRULwh4OAwGHf7Sz7yuMCd+ImmfRlZ3cYeFsLWJblQnwSFXEmBiz8ANUj6dG8aSGoqko5jsNs
|
||||||
|
23YTCXS+Eussy5Rt26ooCuiRyNxQpmnKIuh5nhrHEUmQLMA5jmPW0Ee1l4yuQBMSaAMwSRI0zl3XsSFq
|
||||||
|
MKFaTbzI6AoUIOR5vjPB0/BKOBuprjK2x5kJCJNpmvD0T2k/BtyJHNU0gCnVn9J2DBk+TOC67p/xP4gz
|
||||||
|
Ppw5aH4D3/f5A8rIBj18Ers2b0Fu5iGjKxAtDMPdMBaGGvmu6feOHiQwjN9LZunt0jy6azoj5Rc0vFLT
|
||||||
|
NLxkLJoGp4tCQI1Yoh+v1Pd9ycIwDLzjEntzPgHpD/wXsLl0jrRzIPx1WIP67sQStJRS/6CyvgGjI/3S
|
||||||
|
/lGAOgAAAABJRU5ErkJggg==
|
||||||
|
</value>
|
||||||
</data>
|
</data>
|
||||||
|
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
</root>
|
</root>
|
||||||
50
EnvelopeGenerator.Form/frmRueckruf.vb
Normal file
50
EnvelopeGenerator.Form/frmRueckruf.vb
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
Imports EnvelopeGenerator.Common.My
|
||||||
|
|
||||||
|
Public Class frmRueckruf
|
||||||
|
|
||||||
|
Public Continue_Reject As Boolean = False
|
||||||
|
Public Reject_reason As String = ""
|
||||||
|
Public Sub New()
|
||||||
|
|
||||||
|
' Dieser Aufruf ist für den Designer erforderlich.
|
||||||
|
InitializeComponent()
|
||||||
|
|
||||||
|
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnWeiter.Click
|
||||||
|
If txtReason.Text <> "" Then
|
||||||
|
If MsgBox(Resources.Envelope.Do_you_really_want_to_delete_this_envelope, MsgBoxStyle.Question Or MsgBoxStyle.YesNo, Text) = MsgBoxResult.No Then
|
||||||
|
Me.Close()
|
||||||
|
End If
|
||||||
|
tsstatus.Text = ""
|
||||||
|
Continue_Reject = True
|
||||||
|
Dim oReason = txtReason.Text
|
||||||
|
'If oReason.Contains(vbCrLf) Then
|
||||||
|
' MsgBox("vbCrLf")
|
||||||
|
'ElseIf oReason.Contains(Chr(13)) Then
|
||||||
|
' MsgBox("chr13")
|
||||||
|
'ElseIf oReason.Contains(Chr(10)) Then
|
||||||
|
' MsgBox("chr10")
|
||||||
|
'End If
|
||||||
|
|
||||||
|
'oReason = oReason.Replace(vbLf, "<br>")
|
||||||
|
oReason = oReason.Replace(vbCrLf, "<br>")
|
||||||
|
oReason = oReason.Replace(Chr(13), "<br>")
|
||||||
|
oReason = oReason.Replace(Chr(10), "<br>")
|
||||||
|
Reject_reason = oReason
|
||||||
|
Me.Close()
|
||||||
|
Else
|
||||||
|
tsstatus.Text = "Please add a reason for aborting - " & Now
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
|
||||||
|
Me.Close()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub frmRueckruf_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||||
|
txtReason.Text = ""
|
||||||
|
tsstatus.Text = ""
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
10
EnvelopeGenerator.Form/frmSplashScreen.Designer.vb
generated
10
EnvelopeGenerator.Form/frmSplashScreen.Designer.vb
generated
@@ -46,10 +46,11 @@ Partial Class frmSplashScreen
|
|||||||
'
|
'
|
||||||
Me.lblCopyright.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
|
Me.lblCopyright.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
|
||||||
Me.lblCopyright.AutoSize = True
|
Me.lblCopyright.AutoSize = True
|
||||||
|
Me.lblCopyright.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||||
Me.lblCopyright.Location = New System.Drawing.Point(137, 226)
|
Me.lblCopyright.Location = New System.Drawing.Point(137, 226)
|
||||||
Me.lblCopyright.Name = "lblCopyright"
|
Me.lblCopyright.Name = "lblCopyright"
|
||||||
Me.lblCopyright.RightToLeft = System.Windows.Forms.RightToLeft.No
|
Me.lblCopyright.RightToLeft = System.Windows.Forms.RightToLeft.No
|
||||||
Me.lblCopyright.Size = New System.Drawing.Size(68, 13)
|
Me.lblCopyright.Size = New System.Drawing.Size(82, 14)
|
||||||
Me.lblCopyright.TabIndex = 9
|
Me.lblCopyright.TabIndex = 9
|
||||||
Me.lblCopyright.Tag = "Copyright {0}"
|
Me.lblCopyright.Tag = "Copyright {0}"
|
||||||
Me.lblCopyright.Text = "Copyright {0}"
|
Me.lblCopyright.Text = "Copyright {0}"
|
||||||
@@ -58,9 +59,10 @@ Partial Class frmSplashScreen
|
|||||||
'
|
'
|
||||||
Me.lblVersion.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
|
Me.lblVersion.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
|
||||||
Me.lblVersion.AutoSize = True
|
Me.lblVersion.AutoSize = True
|
||||||
|
Me.lblVersion.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||||
Me.lblVersion.Location = New System.Drawing.Point(12, 226)
|
Me.lblVersion.Location = New System.Drawing.Point(12, 226)
|
||||||
Me.lblVersion.Name = "lblVersion"
|
Me.lblVersion.Name = "lblVersion"
|
||||||
Me.lblVersion.Size = New System.Drawing.Size(91, 13)
|
Me.lblVersion.Size = New System.Drawing.Size(111, 14)
|
||||||
Me.lblVersion.TabIndex = 8
|
Me.lblVersion.TabIndex = 8
|
||||||
Me.lblVersion.Tag = "Version {0}.{1:00}"
|
Me.lblVersion.Tag = "Version {0}.{1:00}"
|
||||||
Me.lblVersion.Text = "Version {0}.{1:00}"
|
Me.lblVersion.Text = "Version {0}.{1:00}"
|
||||||
@@ -78,10 +80,10 @@ Partial Class frmSplashScreen
|
|||||||
Me.lblStatus.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
|
Me.lblStatus.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
|
||||||
Me.lblStatus.AutoSize = True
|
Me.lblStatus.AutoSize = True
|
||||||
Me.lblStatus.BackColor = System.Drawing.SystemColors.Control
|
Me.lblStatus.BackColor = System.Drawing.SystemColors.Control
|
||||||
Me.lblStatus.Font = New System.Drawing.Font("Segoe UI", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
Me.lblStatus.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||||
Me.lblStatus.Location = New System.Drawing.Point(12, 253)
|
Me.lblStatus.Location = New System.Drawing.Point(12, 253)
|
||||||
Me.lblStatus.Name = "lblStatus"
|
Me.lblStatus.Name = "lblStatus"
|
||||||
Me.lblStatus.Size = New System.Drawing.Size(47, 15)
|
Me.lblStatus.Size = New System.Drawing.Size(54, 14)
|
||||||
Me.lblStatus.TabIndex = 7
|
Me.lblStatus.TabIndex = 7
|
||||||
Me.lblStatus.Text = "{Status}"
|
Me.lblStatus.Text = "{Status}"
|
||||||
Me.lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
|
Me.lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
|
||||||
|
|||||||
@@ -121,7 +121,7 @@
|
|||||||
<data name="PictureEdit1.EditValue" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="PictureEdit1.EditValue" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAAyAAAADICAYAAAAQj4UaAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
|
iVBORw0KGgoAAAANSUhEUgAAAyAAAADICAYAAAAQj4UaAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
|
||||||
EAAACxABrSO9dQAASudJREFUeF7tvWusZNd5nukfcpSOmmre3Wp2s3lrdpNUk01RPxIk6iBBIjFxMBPZ
|
DwAACw8BkvkDpQAASudJREFUeF7tvWusZNd5nukfcpSOmmre3Wp2s3lrdpNUk01RPxIk6iBBIjFxMBPZ
|
||||||
DGxLEyB2M8ggkegAsSRElikHEsnBJFZrRjZtxZIpZaIZRy2AloGxrAHIRKIQRIqVGJ6AsJEAAwgDOzNJ
|
DGxLEyB2M8ggkegAsSRElikHEsnBJFZrRjZtxZIpZaIZRy2AloGxrAHIRKIQRIqVGJ6AsJEAAwgDOzNJ
|
||||||
HCBSLsqfynmq+HV9tepd+1KnLnufen88OKf2rfa67HPed3/rW+t7PnffoxNjjDHGGLNb/n4L/9t9l6b8
|
HCBSLsqfynmq+HV9tepd+1KnLnufen88OKf2rfa67HPed3/rW+t7PnffoxNjjDHGGLNb/n4L/9t9l6b8
|
||||||
vXsX+ewBn1ngkSkvCH79hy9NXr5yafKbz1yavHr10uRfv/jo5Pe//Ohk8uoMfmcb+ziGYznnc4/q663C
|
vXsX+ewBn1ngkSkvCH79hy9NXr5yafKbz1yavHr10uRfv/jo5Pe//Ohk8uoMfmcb+ziGYznnc4/q663C
|
||||||
|
|||||||
@@ -70,6 +70,8 @@ Public Class frmSplashScreen
|
|||||||
|
|
||||||
If oState.Database?.DBInitialized = False Then
|
If oState.Database?.DBInitialized = False Then
|
||||||
Throw New ApplicationException("Could not connect to the database. Application will close!")
|
Throw New ApplicationException("Could not connect to the database. Application will close!")
|
||||||
|
Else
|
||||||
|
DB_DD_ECM = oState.Database
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Worker.ReportProgress(40, "Initialize Confguration")
|
Worker.ReportProgress(40, "Initialize Confguration")
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
# Editor configuration, see https://editorconfig.org
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.ts]
|
||||||
|
quote_type = single
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
max_line_length = off
|
||||||
|
trim_trailing_whitespace = false
|
||||||
42
EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/.gitignore
vendored
Normal file
42
EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/.gitignore
vendored
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# See https://docs.github.com/get-started/getting-started-with-git/ignoring-files for more about ignoring files.
|
||||||
|
|
||||||
|
# Compiled output
|
||||||
|
/dist
|
||||||
|
/tmp
|
||||||
|
/out-tsc
|
||||||
|
/bazel-out
|
||||||
|
|
||||||
|
# Node
|
||||||
|
/node_modules
|
||||||
|
npm-debug.log
|
||||||
|
yarn-error.log
|
||||||
|
|
||||||
|
# IDEs and editors
|
||||||
|
.idea/
|
||||||
|
.project
|
||||||
|
.classpath
|
||||||
|
.c9/
|
||||||
|
*.launch
|
||||||
|
.settings/
|
||||||
|
*.sublime-workspace
|
||||||
|
|
||||||
|
# Visual Studio Code
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/settings.json
|
||||||
|
!.vscode/tasks.json
|
||||||
|
!.vscode/launch.json
|
||||||
|
!.vscode/extensions.json
|
||||||
|
.history/*
|
||||||
|
|
||||||
|
# Miscellaneous
|
||||||
|
/.angular/cache
|
||||||
|
.sass-cache/
|
||||||
|
/connect.lock
|
||||||
|
/coverage
|
||||||
|
/libpeerconnection.log
|
||||||
|
testem.log
|
||||||
|
/typings
|
||||||
|
|
||||||
|
# System files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user