Compare commits
172 Commits
f509cc8b3b
...
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 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -362,3 +362,4 @@ MigrationBackup/
|
|||||||
# Fody - auto-generated XML schema
|
# Fody - auto-generated XML schema
|
||||||
FodyWeavers.xsd
|
FodyWeavers.xsd
|
||||||
/EnvelopeGenerator.Web/.config/dotnet-tools.json
|
/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,13 +1,12 @@
|
|||||||
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;
|
|
||||||
using static EnvelopeGenerator.Common.Constants;
|
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);
|
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,14 +1,14 @@
|
|||||||
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.EnvelopeHistory;
|
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 : ICRUDService<IEnvelopeHistoryRepository, EnvelopeHistoryCreateDto, EnvelopeHistoryDto, 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);
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ namespace EnvelopeGenerator.Application.Contracts
|
|||||||
|
|
||||||
Task<IEnumerable<EnvelopeHistoryDto>> ReadRejectedAsync(int envelopeId, string? userReference = null);
|
Task<IEnumerable<EnvelopeHistoryDto>> ReadRejectedAsync(int envelopeId, string? userReference = null);
|
||||||
|
|
||||||
Task<IEnumerable<ReceiverDto>> ReadRejectingReceivers(int envelopeId);
|
Task<IEnumerable<ReceiverReadDto>> ReadRejectingReceivers(int envelopeId);
|
||||||
|
|
||||||
Task<DataResult<long>> RecordAsync(int envelopeId, string userReference, EnvelopeStatus status, string? comment = null);
|
Task<DataResult<long>> RecordAsync(int envelopeId, string userReference, EnvelopeStatus status, string? comment = null);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
using DigitalData.Core.DTO;
|
using DigitalData.Core.DTO;
|
||||||
using DigitalData.EmailProfilerDispatcher.Application.Contracts;
|
using DigitalData.EmailProfilerDispatcher.Abstraction.Contracts;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
using EnvelopeGenerator.Common;
|
using EnvelopeGenerator.Common;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,38 +1,66 @@
|
|||||||
using DigitalData.UserManager.Domain.Entities;
|
using DigitalData.EmailProfilerDispatcher.Abstraction.Attributes;
|
||||||
using EnvelopeGenerator.Application.DTOs.EnvelopeHistory;
|
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; }
|
||||||
|
|
||||||
|
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; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
using DigitalData.Core.DTO;
|
using DigitalData.Core.DTO;
|
||||||
using DigitalData.UserManager.Application.DTOs.User;
|
using DigitalData.UserManager.Application.DTOs.User;
|
||||||
|
using EnvelopeGenerator.Application.DTOs.Receiver;
|
||||||
using static EnvelopeGenerator.Common.Constants;
|
using static EnvelopeGenerator.Common.Constants;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.DTOs.EnvelopeHistory
|
namespace EnvelopeGenerator.Application.DTOs.EnvelopeHistory
|
||||||
@@ -12,7 +13,7 @@ namespace EnvelopeGenerator.Application.DTOs.EnvelopeHistory
|
|||||||
DateTime AddedWhen,
|
DateTime AddedWhen,
|
||||||
DateTime? ActionDate,
|
DateTime? ActionDate,
|
||||||
UserCreateDto? Sender,
|
UserCreateDto? Sender,
|
||||||
ReceiverDto? Receiver,
|
ReceiverReadDto? Receiver,
|
||||||
ReferenceType ReferenceType,
|
ReferenceType ReferenceType,
|
||||||
string? Comment = null) : BaseDTO<long>(Id);
|
string? Comment = null) : BaseDTO<long>(Id);
|
||||||
}
|
}
|
||||||
@@ -1,15 +1,31 @@
|
|||||||
namespace EnvelopeGenerator.Application.DTOs
|
using DigitalData.EmailProfilerDispatcher.Abstraction.Attributes;
|
||||||
|
using EnvelopeGenerator.Application.DTOs.Receiver;
|
||||||
|
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
using DigitalData.Core.DTO;
|
using DigitalData.Core.DTO;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.DTOs
|
namespace EnvelopeGenerator.Application.DTOs.Receiver
|
||||||
{
|
{
|
||||||
public record ReceiverDto(
|
public record ReceiverReadDto(
|
||||||
int Id,
|
int Id,
|
||||||
string EmailAddress,
|
string EmailAddress,
|
||||||
string Signature,
|
string Signature,
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
namespace EnvelopeGenerator.Application.DTOs.Receiver
|
||||||
|
{
|
||||||
|
public record ReceiverUpdateDto();
|
||||||
|
}
|
||||||
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,39 +26,24 @@
|
|||||||
</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.EmailProfilerDispatcher.Application">
|
|
||||||
<HintPath>..\..\EmailProfilerDispatcher\DigitalData.EmailProfilerDispatcher.Application\bin\Debug\net7.0\DigitalData.EmailProfilerDispatcher.Application.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.EmailProfilerDispatcher.Domain">
|
|
||||||
<HintPath>..\..\EmailProfilerDispatcher\DigitalData.EmailProfilerDispatcher.Application\bin\Debug\net7.0\DigitalData.EmailProfilerDispatcher.Domain.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.EmailProfilerDispatcher.Infrastructure">
|
|
||||||
<HintPath>..\..\EmailProfilerDispatcher\DigitalData.EmailProfilerDispatcher.Application\bin\Debug\net7.0\DigitalData.EmailProfilerDispatcher.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\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">
|
<EmbeddedResource Update="Resources\Resource.de-DE.resx">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
|||||||
@@ -102,7 +102,16 @@ namespace EnvelopeGenerator.Application
|
|||||||
/// <returns>The receiver signature.</returns>
|
/// <returns>The receiver signature.</returns>
|
||||||
public static string? GetReceiverSignature(this string envelopeReceiverId) => envelopeReceiverId.DecodeEnvelopeReceiverId().ReceiverSignature;
|
public static string? GetReceiverSignature(this string envelopeReceiverId) => envelopeReceiverId.DecodeEnvelopeReceiverId().ReceiverSignature;
|
||||||
|
|
||||||
public static void LogEnvelopeError(this ILogger logger, string envelopeReceiverId, Exception? exception = null, string? message = null, params object?[] args)
|
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());
|
var sb = new StringBuilder().AppendLine(envelopeReceiverId.DecodeEnvelopeReceiverId().ToTitle());
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using AutoMapper;
|
using AutoMapper;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
using EnvelopeGenerator.Application.DTOs.EnvelopeHistory;
|
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
|
||||||
@@ -21,7 +22,9 @@ namespace EnvelopeGenerator.Application.MappingProfiles
|
|||||||
CreateMap<EnvelopeHistory, EnvelopeHistoryCreateDto>();
|
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>();
|
||||||
|
|
||||||
// DTO to Entity mappings
|
// DTO to Entity mappings
|
||||||
@@ -36,7 +39,9 @@ namespace EnvelopeGenerator.Application.MappingProfiles
|
|||||||
CreateMap<EnvelopeHistoryCreateDto, 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>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -145,10 +145,10 @@
|
|||||||
<value>Englisch</value>
|
<value>Englisch</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnvelopeInfo1" xml:space="preserve">
|
<data name="EnvelopeInfo1" xml:space="preserve">
|
||||||
<value>Sie müssen {0} Vorgang unterzeichen. Bitte prüfen Sie die Seite {1}.</value>
|
<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>
|
||||||
<data name="EnvelopeInfo2" xml:space="preserve">
|
<data name="EnvelopeInfo2" xml:space="preserve">
|
||||||
<value>Erstellt am {0} von {1}. Sie können den Absender über <a href="mailto:{2}?subject={3}&body=Sehr%20geehrter%20{4}%20{5},%0A%0A%0A">{6}</a> kontaktieren.</value>
|
<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>
|
||||||
<data name="Finalize" xml:space="preserve">
|
<data name="Finalize" xml:space="preserve">
|
||||||
<value>Abschließen</value>
|
<value>Abschließen</value>
|
||||||
@@ -159,6 +159,9 @@
|
|||||||
<data name="LocakedOpen" xml:space="preserve">
|
<data name="LocakedOpen" xml:space="preserve">
|
||||||
<value>Öffnen</value>
|
<value>Öffnen</value>
|
||||||
</data>
|
</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">
|
<data name="LockedAccessCode" xml:space="preserve">
|
||||||
<value>Zugriffscode</value>
|
<value>Zugriffscode</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -181,7 +184,7 @@
|
|||||||
<value>Ablehnung</value>
|
<value>Ablehnung</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RejectionInfo1" xml:space="preserve">
|
<data name="RejectionInfo1" xml:space="preserve">
|
||||||
<value>Ihre Ablehnung wurde weitergeleitet!</value>
|
<value>Dieser Unterzeichnungsvorgang wurde abgelehnt!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RejectionInfo1_ext" xml:space="preserve">
|
<data name="RejectionInfo1_ext" xml:space="preserve">
|
||||||
<value>Vorgang abgebrochen!</value>
|
<value>Vorgang abgebrochen!</value>
|
||||||
@@ -201,9 +204,15 @@
|
|||||||
<data name="SignDoc" xml:space="preserve">
|
<data name="SignDoc" xml:space="preserve">
|
||||||
<value>Dokument unterschreiben</value>
|
<value>Dokument unterschreiben</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="SigningProcessTitle" xml:space="preserve">
|
||||||
|
<value>Titel des Unterzeichnungs-Vorgangs</value>
|
||||||
|
</data>
|
||||||
<data name="UnexpectedError" xml:space="preserve">
|
<data name="UnexpectedError" xml:space="preserve">
|
||||||
<value>Ein unerwarteter Fehler ist aufgetreten.</value>
|
<value>Ein unerwarteter Fehler ist aufgetreten.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="WelcomeToTheESignPortal" xml:space="preserve">
|
||||||
|
<value>Herzlich willkommen im eSign-Portal</value>
|
||||||
|
</data>
|
||||||
<data name="WrongAccessCode" xml:space="preserve">
|
<data name="WrongAccessCode" xml:space="preserve">
|
||||||
<value>Ungültiger Zugangscode.</value>
|
<value>Ungültiger Zugangscode.</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -145,10 +145,10 @@
|
|||||||
<value>English</value>
|
<value>English</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnvelopeInfo1" xml:space="preserve">
|
<data name="EnvelopeInfo1" xml:space="preserve">
|
||||||
<value>You have to sign {0} process. Please check page {1}.</value>
|
<value>You have to sign {0} process. <span class="highlight highlight-envelope-info-1">Please check page {1}</span>.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnvelopeInfo2" xml:space="preserve">
|
<data name="EnvelopeInfo2" xml:space="preserve">
|
||||||
<value>Created on {0} by {1}. You can contact the sender via <a href="mailto:{2}?subject={3}&body=Dear%20{4}%20{5},%0A%0A%0A">{6}</a>.</value>
|
<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>
|
||||||
<data name="Finalize" xml:space="preserve">
|
<data name="Finalize" xml:space="preserve">
|
||||||
<value>Finalize</value>
|
<value>Finalize</value>
|
||||||
@@ -159,6 +159,9 @@
|
|||||||
<data name="LocakedOpen" xml:space="preserve">
|
<data name="LocakedOpen" xml:space="preserve">
|
||||||
<value>Open</value>
|
<value>Open</value>
|
||||||
</data>
|
</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">
|
<data name="LockedAccessCode" xml:space="preserve">
|
||||||
<value>Access Code</value>
|
<value>Access Code</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -181,7 +184,7 @@
|
|||||||
<value>Rejection</value>
|
<value>Rejection</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RejectionInfo1" xml:space="preserve">
|
<data name="RejectionInfo1" xml:space="preserve">
|
||||||
<value>Your rejection has been forwarded!</value>
|
<value>This signing process was rejected!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RejectionInfo1_ext" xml:space="preserve">
|
<data name="RejectionInfo1_ext" xml:space="preserve">
|
||||||
<value>Process canceled!</value>
|
<value>Process canceled!</value>
|
||||||
@@ -201,9 +204,15 @@
|
|||||||
<data name="SignDoc" xml:space="preserve">
|
<data name="SignDoc" xml:space="preserve">
|
||||||
<value>Sign document</value>
|
<value>Sign document</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="SigningProcessTitle" xml:space="preserve">
|
||||||
|
<value>Title of the signing process</value>
|
||||||
|
</data>
|
||||||
<data name="UnexpectedError" xml:space="preserve">
|
<data name="UnexpectedError" xml:space="preserve">
|
||||||
<value>An unexpected error has occurred.</value>
|
<value>An unexpected error has occurred.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="WelcomeToTheESignPortal" xml:space="preserve">
|
||||||
|
<value>Welcome to the eSign portal</value>
|
||||||
|
</data>
|
||||||
<data name="WrongAccessCode" xml:space="preserve">
|
<data name="WrongAccessCode" xml:space="preserve">
|
||||||
<value>Invalid access code.</value>
|
<value>Invalid access code.</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ 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)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ 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)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,14 +8,14 @@ using static EnvelopeGenerator.Common.Constants;
|
|||||||
using EnvelopeGenerator.Application.Resources;
|
using EnvelopeGenerator.Application.Resources;
|
||||||
using DigitalData.Core.DTO;
|
using DigitalData.Core.DTO;
|
||||||
using EnvelopeGenerator.Application.DTOs.EnvelopeHistory;
|
using EnvelopeGenerator.Application.DTOs.EnvelopeHistory;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs.Receiver;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Services
|
namespace EnvelopeGenerator.Application.Services
|
||||||
{
|
{
|
||||||
public class EnvelopeHistoryService : CRUDService<IEnvelopeHistoryRepository, EnvelopeHistoryCreateDto, EnvelopeHistoryDto, 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)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -67,11 +67,11 @@ namespace EnvelopeGenerator.Application.Services
|
|||||||
await ReadAsync(envelopeId: envelopeId, userReference: userReference, status: (int)EnvelopeStatus.DocumentRejected, withReceiver:true);
|
await ReadAsync(envelopeId: envelopeId, userReference: userReference, status: (int)EnvelopeStatus.DocumentRejected, withReceiver:true);
|
||||||
|
|
||||||
//TODO: use IQueryable in repository to incerease the performance
|
//TODO: use IQueryable in repository to incerease the performance
|
||||||
public async Task<IEnumerable<ReceiverDto>> ReadRejectingReceivers(int envelopeId)
|
public async Task<IEnumerable<ReceiverReadDto>> ReadRejectingReceivers(int envelopeId)
|
||||||
{
|
{
|
||||||
var envelopes = await ReadRejectedAsync(envelopeId);
|
var envelopes = await ReadRejectedAsync(envelopeId);
|
||||||
return envelopes is null
|
return envelopes is null
|
||||||
? Enumerable.Empty<ReceiverDto>()
|
? Enumerable.Empty<ReceiverReadDto>()
|
||||||
: envelopes
|
: envelopes
|
||||||
.Where(eh => eh?.Receiver != null)
|
.Where(eh => eh?.Receiver != null)
|
||||||
.Select(eh => eh.Receiver!);
|
.Select(eh => eh.Receiver!);
|
||||||
|
|||||||
@@ -1,36 +1,99 @@
|
|||||||
using AutoMapper;
|
using AutoMapper;
|
||||||
using DigitalData.Core.DTO;
|
using DigitalData.Core.DTO;
|
||||||
using DigitalData.EmailProfilerDispatcher.Application.DTOs.EmailOut;
|
using DigitalData.EmailProfilerDispatcher.Abstraction.Contracts;
|
||||||
using DigitalData.EmailProfilerDispatcher.Application.Services;
|
using DigitalData.EmailProfilerDispatcher.Abstraction.DTOs.EmailOut;
|
||||||
using DigitalData.EmailProfilerDispatcher.Infrastructure.Contracts;
|
using DigitalData.EmailProfilerDispatcher.Abstraction.Services;
|
||||||
using DigitalData.UserManager.Application;
|
using DigitalData.UserManager.Application;
|
||||||
using EnvelopeGenerator.Application.Contracts;
|
using EnvelopeGenerator.Application.Contracts;
|
||||||
using EnvelopeGenerator.Application.DTOs;
|
using EnvelopeGenerator.Application.DTOs;
|
||||||
using EnvelopeGenerator.Common;
|
using EnvelopeGenerator.Common;
|
||||||
using Microsoft.Extensions.Caching.Memory;
|
|
||||||
using Microsoft.Extensions.Localization;
|
using Microsoft.Extensions.Localization;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
using static EnvelopeGenerator.Common.Constants;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Services
|
namespace EnvelopeGenerator.Application.Services
|
||||||
{
|
{
|
||||||
public class EnvelopeMailService : EmailOutService<Resource>, IEnvelopeMailService
|
public class EnvelopeMailService : EmailOutService, IEnvelopeMailService
|
||||||
{
|
{
|
||||||
private readonly IEmailTemplateService _tempService;
|
private readonly IEmailTemplateService _tempService;
|
||||||
private readonly IMemoryCache _cache;
|
private readonly IEnvelopeReceiverService _envRcvService;
|
||||||
|
private readonly DispatcherConfig _dConfig;
|
||||||
|
private readonly IConfigService _configService;
|
||||||
|
|
||||||
public EnvelopeMailService(IEmailOutRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper, IEmailTemplateService tempService, IMemoryCache cache) : base(repository, localizer, mapper)
|
public EnvelopeMailService(IEmailOutRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper, IEmailTemplateService tempService, IEnvelopeReceiverService envelopeReceiverService, IOptions<DispatcherConfig> dispatcherConfigOptions, IConfigService configService) : base(repository, mapper)
|
||||||
{
|
{
|
||||||
_tempService = tempService;
|
_tempService = tempService;
|
||||||
_cache = cache;
|
_envRcvService = envelopeReceiverService;
|
||||||
|
_dConfig = dispatcherConfigOptions.Value;
|
||||||
|
_configService = configService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<DataResult<int>> SendAccessCodeAsync(EnvelopeReceiverDto envelopeReceiverDto)
|
//TODO: create ioptions and implement TemplatePlaceHolderAttribute instead of this method
|
||||||
{
|
private async Task<Dictionary<string, string>> CreatePlaceholders(string? accessCode = null, EnvelopeReceiverDto? envelopeReceiverDto = null)
|
||||||
throw new NotImplementedException();
|
{
|
||||||
}
|
Dictionary<string, string> placeholders = new() {
|
||||||
|
{ "[NAME_PORTAL]", "signFlow" },
|
||||||
|
{ "[SIGNATURE_TYPE]" , "signieren"},
|
||||||
|
{ "[REASON]", string.Empty } };
|
||||||
|
|
||||||
public Task<DataResult<int>> SendAsync(EnvelopeReceiverDto envelopeReceiverDto, Constants.EmailTemplateType tempType)
|
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)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -11,11 +11,14 @@ using Microsoft.Extensions.Logging;
|
|||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14,8 +14,8 @@ 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)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,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.6.0.0")>
|
<Assembly: AssemblyVersion("1.9.1.0")>
|
||||||
<Assembly: AssemblyFileVersion("1.6.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,6 +34,10 @@ 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, pReason As String) 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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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; }
|
||||||
|
|||||||
@@ -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,16 +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.Core.Domain">
|
<ProjectReference Include="..\EnvelopeGenerator.Common\EnvelopeGenerator.Common.vbproj" />
|
||||||
<HintPath>..\..\WebCoreModules\DigitalData.Core.Domain\bin\Debug\net7.0\DigitalData.Core.Domain.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.UserManager.Domain">
|
|
||||||
<HintPath>..\..\WebUserManager\DigitalData.UserManager.Domain\bin\Debug\net7.0\DigitalData.UserManager.Domain.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -179,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>
|
||||||
@@ -246,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
|
||||||
|
|||||||
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
|
||||||
|
|||||||
65
EnvelopeGenerator.Form/frmMain.Designer.vb
generated
65
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()
|
||||||
@@ -59,6 +59,7 @@ Partial Class frmMain
|
|||||||
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.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()
|
||||||
@@ -83,13 +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.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]
|
||||||
@@ -398,6 +402,14 @@ Partial Class frmMain
|
|||||||
Me.bsitmInfo.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph
|
Me.bsitmInfo.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph
|
||||||
Me.bsitmInfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
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})
|
||||||
@@ -423,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")
|
||||||
'
|
'
|
||||||
@@ -581,6 +596,24 @@ Partial Class frmMain
|
|||||||
'
|
'
|
||||||
Me.RefreshTimer.Interval = 120000
|
Me.RefreshTimer.Interval = 120000
|
||||||
'
|
'
|
||||||
|
'SaveFileDialog1
|
||||||
|
'
|
||||||
|
resources.ApplyResources(Me.SaveFileDialog1, "SaveFileDialog1")
|
||||||
|
'
|
||||||
|
'bbtnitmInfoMail
|
||||||
|
'
|
||||||
|
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
|
||||||
'
|
'
|
||||||
resources.ApplyResources(Me, "$this")
|
resources.ApplyResources(Me, "$this")
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -125,10 +125,10 @@
|
|||||||
<data name="SplitContainerControl1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="SplitContainerControl1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 162</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">
|
||||||
@@ -679,6 +679,80 @@
|
|||||||
2l5bAl4RwcXCFfsR4Xefb9NSVVK1Cd1LkRF6v9XyxLeaHtij7ty3R92pQ2GfVdg/v1T/jtb+gcD7/Q6B
|
2l5bAl4RwcXCFfsR4Xefb9NSVVK1Cd1LkRF6v9XyxLeaHtij7ty3R92pQ2GfVdg/v1T/jtb+gcD7/Q6B
|
||||||
A3mJnKFyyJmGNmy/hqecqqbHT0D2qhCuYE4nHyWO7o8b4D6P8T7zGl67RbznkIucwEFnQaxy0ElO+YAT
|
A3mJnKFyyJmGNmy/hqecqqbHT0D2qhCuYE4nHyWO7o8b4D6P8T7zGl67RbznkIucwEFnQaxy0ElO+YAT
|
||||||
Tf3vtimEjyo75pQyyYvgMZ7jNQxe/wsmJ/df0Zh/vpjXMzsAAAAASUVORK5CYII=
|
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">
|
||||||
@@ -706,10 +780,10 @@
|
|||||||
<value>1090, 162</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, 660</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>1090, 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>1088, 459</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>1088, 459</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>1090, 488</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>1090, 498</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>
|
||||||
@@ -1014,6 +1088,12 @@
|
|||||||
<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>193, 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>
|
||||||
@@ -1283,6 +1363,12 @@
|
|||||||
<data name=">>bsitmInfo.Type" xml:space="preserve">
|
<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>
|
<value>DevExpress.XtraBars.BarStaticItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||||
</data>
|
</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>
|
||||||
@@ -1409,6 +1495,24 @@
|
|||||||
<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=">>SaveFileDialog1.Name" xml:space="preserve">
|
||||||
|
<value>SaveFileDialog1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>SaveFileDialog1.Type" xml:space="preserve">
|
||||||
|
<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 name=">>$this.Name" xml:space="preserve">
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
<value>frmMain</value>
|
<value>frmMain</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Imports DevExpress.LookAndFeel
|
Imports System.IO
|
||||||
|
Imports DevExpress.LookAndFeel
|
||||||
Imports DevExpress.Utils.Extensions
|
Imports DevExpress.Utils.Extensions
|
||||||
Imports DevExpress.XtraCharts
|
Imports DevExpress.XtraCharts
|
||||||
Imports DevExpress.XtraGrid
|
Imports DevExpress.XtraGrid
|
||||||
@@ -9,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
|
||||||
@@ -19,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.
|
||||||
@@ -52,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()
|
||||||
@@ -180,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
|
||||||
|
|
||||||
@@ -214,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
|
||||||
|
|
||||||
@@ -311,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
|
||||||
|
|
||||||
@@ -368,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
|
||||||
11
EnvelopeGenerator.Form/frmRueckruf.Designer.vb
generated
11
EnvelopeGenerator.Form/frmRueckruf.Designer.vb
generated
@@ -22,6 +22,7 @@ Partial Class frmRueckruf
|
|||||||
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
|
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
|
||||||
<System.Diagnostics.DebuggerStepThrough()> _
|
<System.Diagnostics.DebuggerStepThrough()> _
|
||||||
Private Sub InitializeComponent()
|
Private Sub InitializeComponent()
|
||||||
|
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmRueckruf))
|
||||||
Me.Label2 = New System.Windows.Forms.Label()
|
Me.Label2 = New System.Windows.Forms.Label()
|
||||||
Me.txtReason = New System.Windows.Forms.TextBox()
|
Me.txtReason = New System.Windows.Forms.TextBox()
|
||||||
Me.btnWeiter = New System.Windows.Forms.Button()
|
Me.btnWeiter = New System.Windows.Forms.Button()
|
||||||
@@ -38,9 +39,9 @@ Partial Class frmRueckruf
|
|||||||
Me.Label2.Location = New System.Drawing.Point(22, 20)
|
Me.Label2.Location = New System.Drawing.Point(22, 20)
|
||||||
Me.Label2.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
|
Me.Label2.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
|
||||||
Me.Label2.Name = "Label2"
|
Me.Label2.Name = "Label2"
|
||||||
Me.Label2.Size = New System.Drawing.Size(432, 16)
|
Me.Label2.Size = New System.Drawing.Size(380, 16)
|
||||||
Me.Label2.TabIndex = 0
|
Me.Label2.TabIndex = 0
|
||||||
Me.Label2.Text = "Bitte geben Sie einen Grund für den Abbruch/Rückruf des Umschlages ein:"
|
Me.Label2.Text = "Bitte geben Sie einen Grund für den Rückruf des Umschlages ein:"
|
||||||
'
|
'
|
||||||
'txtReason
|
'txtReason
|
||||||
'
|
'
|
||||||
@@ -58,7 +59,7 @@ Partial Class frmRueckruf
|
|||||||
Me.btnWeiter.Name = "btnWeiter"
|
Me.btnWeiter.Name = "btnWeiter"
|
||||||
Me.btnWeiter.Size = New System.Drawing.Size(203, 44)
|
Me.btnWeiter.Size = New System.Drawing.Size(203, 44)
|
||||||
Me.btnWeiter.TabIndex = 2
|
Me.btnWeiter.TabIndex = 2
|
||||||
Me.btnWeiter.Text = "Weiter"
|
Me.btnWeiter.Text = "Umschlag zurückrufen"
|
||||||
Me.btnWeiter.UseVisualStyleBackColor = True
|
Me.btnWeiter.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
'Label1
|
'Label1
|
||||||
@@ -72,11 +73,13 @@ Partial Class frmRueckruf
|
|||||||
'
|
'
|
||||||
'btnCancel
|
'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.Location = New System.Drawing.Point(251, 134)
|
||||||
Me.btnCancel.Name = "btnCancel"
|
Me.btnCancel.Name = "btnCancel"
|
||||||
Me.btnCancel.Size = New System.Drawing.Size(203, 44)
|
Me.btnCancel.Size = New System.Drawing.Size(203, 44)
|
||||||
Me.btnCancel.TabIndex = 4
|
Me.btnCancel.TabIndex = 4
|
||||||
Me.btnCancel.Text = "Abbruch"
|
Me.btnCancel.Text = "Abbrechen"
|
||||||
Me.btnCancel.UseVisualStyleBackColor = True
|
Me.btnCancel.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
'StatusStrip1
|
'StatusStrip1
|
||||||
|
|||||||
@@ -117,6 +117,19 @@
|
|||||||
<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>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<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>
|
||||||
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>17, 17</value>
|
<value>17, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
|||||||
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
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# EnvelopeGeneratorUi
|
||||||
|
|
||||||
|
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.3.8.
|
||||||
|
|
||||||
|
## Development server
|
||||||
|
|
||||||
|
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files.
|
||||||
|
|
||||||
|
## Code scaffolding
|
||||||
|
|
||||||
|
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
|
||||||
|
|
||||||
|
## Running unit tests
|
||||||
|
|
||||||
|
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
||||||
|
|
||||||
|
## Running end-to-end tests
|
||||||
|
|
||||||
|
Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.
|
||||||
|
|
||||||
|
## Further help
|
||||||
|
|
||||||
|
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
||||||
@@ -0,0 +1,122 @@
|
|||||||
|
{
|
||||||
|
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
||||||
|
"version": 1,
|
||||||
|
"newProjectRoot": "projects",
|
||||||
|
"projects": {
|
||||||
|
"envelope-generator-ui": {
|
||||||
|
"projectType": "application",
|
||||||
|
"schematics": {
|
||||||
|
"@schematics/angular:component": {
|
||||||
|
"style": "scss"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "",
|
||||||
|
"sourceRoot": "src",
|
||||||
|
"prefix": "app",
|
||||||
|
"architect": {
|
||||||
|
"build": {
|
||||||
|
"builder": "@angular-devkit/build-angular:application",
|
||||||
|
"options": {
|
||||||
|
"outputPath": "dist/envelope-generator-ui",
|
||||||
|
"index": "src/index.html",
|
||||||
|
"browser": "src/main.ts",
|
||||||
|
"polyfills": [
|
||||||
|
"zone.js"
|
||||||
|
],
|
||||||
|
"tsConfig": "tsconfig.app.json",
|
||||||
|
"inlineStyleLanguage": "scss",
|
||||||
|
"assets": [
|
||||||
|
"src/favicon.ico",
|
||||||
|
"src/assets"
|
||||||
|
],
|
||||||
|
"styles": [
|
||||||
|
"@angular/material/prebuilt-themes/indigo-pink.css",
|
||||||
|
"src/styles.scss",
|
||||||
|
"node_modules/bootstrap/dist/css/bootstrap.min.css"
|
||||||
|
],
|
||||||
|
"scripts": [
|
||||||
|
"node_modules/jquery/dist/jquery.min.js",
|
||||||
|
"node_modules/@popperjs/core/dist/umd/popper.min.js",
|
||||||
|
"node_modules/bootstrap/dist/js/bootstrap.min.js"
|
||||||
|
],
|
||||||
|
"server": "src/main.server.ts",
|
||||||
|
"prerender": true,
|
||||||
|
"ssr": {
|
||||||
|
"entry": "server.ts"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"configurations": {
|
||||||
|
"production": {
|
||||||
|
"budgets": [
|
||||||
|
{
|
||||||
|
"type": "initial",
|
||||||
|
"maximumWarning": "1.5mb",
|
||||||
|
"maximumError": "2mb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "anyComponentStyle",
|
||||||
|
"maximumWarning": "2kb",
|
||||||
|
"maximumError": "4kb"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outputHashing": "all"
|
||||||
|
},
|
||||||
|
"development": {
|
||||||
|
"optimization": false,
|
||||||
|
"extractLicenses": false,
|
||||||
|
"sourceMap": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"defaultConfiguration": "production"
|
||||||
|
},
|
||||||
|
"serve": {
|
||||||
|
"builder": "@angular-devkit/build-angular:dev-server",
|
||||||
|
"configurations": {
|
||||||
|
"production": {
|
||||||
|
"buildTarget": "envelope-generator-ui:build:production"
|
||||||
|
},
|
||||||
|
"development": {
|
||||||
|
"buildTarget": "envelope-generator-ui:build:development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"defaultConfiguration": "development",
|
||||||
|
"options": {
|
||||||
|
"proxyConfig": "proxy.conf.json"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"extract-i18n": {
|
||||||
|
"builder": "@angular-devkit/build-angular:extract-i18n",
|
||||||
|
"options": {
|
||||||
|
"buildTarget": "envelope-generator-ui:build"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"test": {
|
||||||
|
"builder": "@angular-devkit/build-angular:karma",
|
||||||
|
"options": {
|
||||||
|
"polyfills": [
|
||||||
|
"zone.js",
|
||||||
|
"zone.js/testing"
|
||||||
|
],
|
||||||
|
"tsConfig": "tsconfig.spec.json",
|
||||||
|
"inlineStyleLanguage": "scss",
|
||||||
|
"assets": [
|
||||||
|
"src/favicon.ico",
|
||||||
|
"src/assets"
|
||||||
|
],
|
||||||
|
"styles": [
|
||||||
|
"@angular/material/prebuilt-themes/indigo-pink.css",
|
||||||
|
"src/styles.scss",
|
||||||
|
"node_modules/bootstrap/dist/css/bootstrap.min.css",
|
||||||
|
"src/styles.css"
|
||||||
|
],
|
||||||
|
"scripts": [
|
||||||
|
"node_modules/jquery/dist/jquery.min.js",
|
||||||
|
"node_modules/@popperjs/core/dist/umd/popper.min.js",
|
||||||
|
"node_modules/bootstrap/dist/js/bootstrap.min.js"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
13477
EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/package-lock.json
generated
Normal file
13477
EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,55 @@
|
|||||||
|
{
|
||||||
|
"name": "envelope-generator-ui",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"scripts": {
|
||||||
|
"ng": "ng",
|
||||||
|
"start": "ng serve",
|
||||||
|
"build": "ng build",
|
||||||
|
"watch": "ng build --watch --configuration development",
|
||||||
|
"test": "ng test",
|
||||||
|
"serve:ssr:envelope-generator-ui": "node dist/envelope-generator-ui/server/server.mjs"
|
||||||
|
},
|
||||||
|
"private": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@angular/animations": "^17.3.0",
|
||||||
|
"@angular/cdk": "^17.3.10",
|
||||||
|
"@angular/common": "^17.3.0",
|
||||||
|
"@angular/compiler": "^17.3.0",
|
||||||
|
"@angular/core": "^17.3.0",
|
||||||
|
"@angular/forms": "^17.3.0",
|
||||||
|
"@angular/material": "^17.3.10",
|
||||||
|
"@angular/platform-browser": "^17.3.0",
|
||||||
|
"@angular/platform-browser-dynamic": "^17.3.0",
|
||||||
|
"@angular/platform-server": "^17.3.0",
|
||||||
|
"@angular/router": "^17.3.0",
|
||||||
|
"@angular/ssr": "^17.3.8",
|
||||||
|
"@generic-ui/fabric": "^0.21.0",
|
||||||
|
"@generic-ui/hermes": "^0.21.0",
|
||||||
|
"@generic-ui/ngx-grid": "^0.21.0",
|
||||||
|
"@ng-bootstrap/ng-bootstrap": "^16.0.0",
|
||||||
|
"bootstrap": "^5.3.3",
|
||||||
|
"express": "^4.18.2",
|
||||||
|
"jquery": "^3.7.1",
|
||||||
|
"rxjs": "~7.8.0",
|
||||||
|
"tslib": "^2.3.0",
|
||||||
|
"uuid": "^10.0.0",
|
||||||
|
"zone.js": "~0.14.3"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@angular-devkit/build-angular": "^17.3.8",
|
||||||
|
"@angular/cli": "^17.3.8",
|
||||||
|
"@angular/compiler-cli": "^17.3.0",
|
||||||
|
"@angular/localize": "^17.3.0",
|
||||||
|
"@types/express": "^4.17.17",
|
||||||
|
"@types/jasmine": "~5.1.0",
|
||||||
|
"@types/node": "^18.18.0",
|
||||||
|
"@types/uuid": "^10.0.0",
|
||||||
|
"jasmine-core": "~5.1.0",
|
||||||
|
"karma": "~6.4.0",
|
||||||
|
"karma-chrome-launcher": "~3.2.0",
|
||||||
|
"karma-coverage": "~2.2.0",
|
||||||
|
"karma-jasmine": "~5.1.0",
|
||||||
|
"karma-jasmine-html-reporter": "~2.1.0",
|
||||||
|
"typescript": "~5.4.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"/api": {
|
||||||
|
"target": "https://localhost:7174",
|
||||||
|
"secure": false,
|
||||||
|
"changeOrigin": true
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
import { APP_BASE_HREF } from '@angular/common';
|
||||||
|
import { CommonEngine } from '@angular/ssr';
|
||||||
|
import express from 'express';
|
||||||
|
import { fileURLToPath } from 'node:url';
|
||||||
|
import { dirname, join, resolve } from 'node:path';
|
||||||
|
import bootstrap from './src/main.server';
|
||||||
|
|
||||||
|
// The Express app is exported so that it can be used by serverless Functions.
|
||||||
|
export function app(): express.Express {
|
||||||
|
const server = express();
|
||||||
|
const serverDistFolder = dirname(fileURLToPath(import.meta.url));
|
||||||
|
const browserDistFolder = resolve(serverDistFolder, '../browser');
|
||||||
|
const indexHtml = join(serverDistFolder, 'index.server.html');
|
||||||
|
|
||||||
|
const commonEngine = new CommonEngine();
|
||||||
|
|
||||||
|
server.set('view engine', 'html');
|
||||||
|
server.set('views', browserDistFolder);
|
||||||
|
|
||||||
|
// Example Express Rest API endpoints
|
||||||
|
// server.get('/api/**', (req, res) => { });
|
||||||
|
// Serve static files from /browser
|
||||||
|
server.get('*.*', express.static(browserDistFolder, {
|
||||||
|
maxAge: '1y'
|
||||||
|
}));
|
||||||
|
|
||||||
|
// All regular routes use the Angular engine
|
||||||
|
server.get('*', (req, res, next) => {
|
||||||
|
const { protocol, originalUrl, baseUrl, headers } = req;
|
||||||
|
|
||||||
|
commonEngine
|
||||||
|
.render({
|
||||||
|
bootstrap,
|
||||||
|
documentFilePath: indexHtml,
|
||||||
|
url: `${protocol}://${headers.host}${originalUrl}`,
|
||||||
|
publicPath: browserDistFolder,
|
||||||
|
providers: [{ provide: APP_BASE_HREF, useValue: baseUrl }],
|
||||||
|
})
|
||||||
|
.then((html) => res.send(html))
|
||||||
|
.catch((err) => next(err));
|
||||||
|
});
|
||||||
|
|
||||||
|
return server;
|
||||||
|
}
|
||||||
|
|
||||||
|
function run(): void {
|
||||||
|
const port = process.env['PORT'] || 4000;
|
||||||
|
|
||||||
|
// Start up the Node server
|
||||||
|
const server = app();
|
||||||
|
server.listen(port, () => {
|
||||||
|
console.log(`Node Express server listening on http://localhost:${port}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
run();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<app-navbar></app-navbar>
|
||||||
|
<main>
|
||||||
|
<router-outlet />
|
||||||
|
</main>
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
main {
|
||||||
|
width: 100%;
|
||||||
|
min-height: calc(100% - 4rem);
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
display: grid;
|
||||||
|
}
|
||||||
|
|
||||||
|
router-outlet{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
import { TestBed } from '@angular/core/testing';
|
||||||
|
import { AppComponent } from './app.component';
|
||||||
|
|
||||||
|
describe('AppComponent', () => {
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
imports: [AppComponent],
|
||||||
|
}).compileComponents();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create the app', () => {
|
||||||
|
const fixture = TestBed.createComponent(AppComponent);
|
||||||
|
const app = fixture.componentInstance;
|
||||||
|
expect(app).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should have the 'envelope-generator-ui' title`, () => {
|
||||||
|
const fixture = TestBed.createComponent(AppComponent);
|
||||||
|
const app = fixture.componentInstance;
|
||||||
|
expect(app.title).toEqual('envelope-generator-ui');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should render title', () => {
|
||||||
|
const fixture = TestBed.createComponent(AppComponent);
|
||||||
|
fixture.detectChanges();
|
||||||
|
const compiled = fixture.nativeElement as HTMLElement;
|
||||||
|
expect(compiled.querySelector('h1')?.textContent).toContain('Hello, envelope-generator-ui');
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { RouterOutlet } from '@angular/router';
|
||||||
|
import { NavbarComponent } from "./components/navbar/navbar.component";
|
||||||
|
import { LoginComponent } from "./components/login/login.component";
|
||||||
|
import { HomeComponent } from "./pages/home/home.component";
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-root',
|
||||||
|
standalone: true,
|
||||||
|
templateUrl: './app.component.html',
|
||||||
|
styleUrl: './app.component.scss',
|
||||||
|
imports: [RouterOutlet, NavbarComponent, LoginComponent, HomeComponent]
|
||||||
|
})
|
||||||
|
export class AppComponent {
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
import { mergeApplicationConfig, ApplicationConfig } from '@angular/core';
|
||||||
|
import { provideServerRendering } from '@angular/platform-server';
|
||||||
|
import { appConfig } from './app.config';
|
||||||
|
|
||||||
|
const serverConfig: ApplicationConfig = {
|
||||||
|
providers: [
|
||||||
|
provideServerRendering()
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
export const config = mergeApplicationConfig(appConfig, serverConfig);
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
import { ApplicationConfig } from '@angular/core';
|
||||||
|
import { provideRouter } from '@angular/router';
|
||||||
|
import { routes } from './app.routes';
|
||||||
|
import { provideClientHydration } from '@angular/platform-browser';
|
||||||
|
import { provideAnimationsAsync } from '@angular/platform-browser/animations/async';
|
||||||
|
import { APP_BASE_HREF } from '@angular/common';
|
||||||
|
import { UrlService } from './services/url.service';
|
||||||
|
import { API_URL } from './tokens/index'
|
||||||
|
import { HTTP_INTERCEPTORS, provideHttpClient, withFetch } from '@angular/common/http';
|
||||||
|
import { HttpRequestInterceptor } from './http.interceptor';
|
||||||
|
|
||||||
|
export const appConfig: ApplicationConfig = {
|
||||||
|
providers: [
|
||||||
|
provideRouter(routes),
|
||||||
|
provideClientHydration(),
|
||||||
|
provideAnimationsAsync(),
|
||||||
|
provideHttpClient(withFetch()),
|
||||||
|
{
|
||||||
|
provide: APP_BASE_HREF,
|
||||||
|
useFactory: (urlService: UrlService) => urlService.getBaseHref(),
|
||||||
|
deps: [UrlService]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provide: API_URL,
|
||||||
|
useFactory: (urlService: UrlService) => urlService.getApiUrl(),
|
||||||
|
deps: [UrlService]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provide: HTTP_INTERCEPTORS,
|
||||||
|
useClass: HttpRequestInterceptor,
|
||||||
|
multi: true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
import { Routes } from '@angular/router';
|
||||||
|
import { HomeComponent } from '../app/pages/home/home.component'
|
||||||
|
import { authGuard } from './guards/auth.guard'
|
||||||
|
import { EnvelopeComponent } from './pages/envelope/envelope.component';
|
||||||
|
import { EnvelopeCreationComponent } from './pages/envelope-creation/envelope-creation.component';
|
||||||
|
|
||||||
|
export const routes: Routes = [
|
||||||
|
{ path: '', component: EnvelopeComponent, canActivate: [authGuard] },
|
||||||
|
{ path: 'login', component: HomeComponent },
|
||||||
|
{ path: 'envelope', component: EnvelopeComponent, canActivate: [authGuard] },
|
||||||
|
{ path: 'envelope-creation', component: EnvelopeCreationComponent, canActivate: [authGuard] }
|
||||||
|
];
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<mat-form-field class="example-form-field">
|
||||||
|
<mat-label>{{label}}</mat-label>
|
||||||
|
<input matInput type="text" [(ngModel)]="value">
|
||||||
|
@if (value) {
|
||||||
|
<button matSuffix mat-icon-button aria-label="Clear" (click)="value=''">
|
||||||
|
<mat-icon>close</mat-icon>
|
||||||
|
</button>
|
||||||
|
}
|
||||||
|
</mat-form-field>
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
.mat-stepper-vertical {
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mat-mdc-form-field {
|
||||||
|
margin-top: 16px;
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { ClearableInputComponent } from './clearable-input.component';
|
||||||
|
|
||||||
|
describe('ClearableInputComponent', () => {
|
||||||
|
let component: ClearableInputComponent;
|
||||||
|
let fixture: ComponentFixture<ClearableInputComponent>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
imports: [ClearableInputComponent]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(ClearableInputComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
import {Component, Input} from '@angular/core';
|
||||||
|
import {MatIconModule} from '@angular/material/icon';
|
||||||
|
import {MatButtonModule} from '@angular/material/button';
|
||||||
|
import {FormsModule} from '@angular/forms';
|
||||||
|
import {MatInputModule} from '@angular/material/input';
|
||||||
|
import {MatFormFieldModule} from '@angular/material/form-field';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'clearable-input',
|
||||||
|
standalone: true,
|
||||||
|
imports: [MatFormFieldModule, MatInputModule, FormsModule, MatButtonModule, MatIconModule],
|
||||||
|
templateUrl: './clearable-input.component.html',
|
||||||
|
styleUrl: './clearable-input.component.scss'
|
||||||
|
})
|
||||||
|
export class ClearableInputComponent {
|
||||||
|
@Input() public value: string = '';
|
||||||
|
@Input() public label: string = '';
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
<table #table mat-table [dataSource]="data" class="mat-elevation-z8">
|
||||||
|
|
||||||
|
@for (colId of displayedColumns; track colId) {
|
||||||
|
<ng-container matColumnDef="{{colId}}">
|
||||||
|
<th mat-header-cell *matHeaderCellDef> {{schema[colId].header}} </th>
|
||||||
|
<td mat-cell *matCellDef="let element"> {{schema[colId].field(element)}} </td>
|
||||||
|
</ng-container>
|
||||||
|
}
|
||||||
|
|
||||||
|
<ng-container matColumnDef="expand">
|
||||||
|
<th mat-header-cell *matHeaderCellDef aria-label="row actions"> </th>
|
||||||
|
<td mat-cell *matCellDef="let element">
|
||||||
|
<button mat-icon-button aria-label="expand row"
|
||||||
|
(click)="(expandedElement = expandedElement === element ? null : element); $event.stopPropagation()">
|
||||||
|
@if (expandedElement === element) {
|
||||||
|
<mat-icon>keyboard_arrow_up</mat-icon>
|
||||||
|
} @else {
|
||||||
|
<mat-icon>keyboard_arrow_down</mat-icon>
|
||||||
|
}
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->
|
||||||
|
<ng-container matColumnDef="expandedDetail">
|
||||||
|
<td mat-cell *matCellDef="let element" [attr.colspan]="columnsToDisplayWithExpand.length">
|
||||||
|
<div class="example-element-detail" [@detailExpand]="element == expandedElement ? 'expanded' : 'collapsed'">
|
||||||
|
<div class="example-element-diagram">
|
||||||
|
<div class="example-element-position"> {{"element.position"}} </div>
|
||||||
|
<div class="example-element-symbol"> {{"element.symbol"}} </div>
|
||||||
|
<div class="example-element-name"> {{"element.name"}} </div>
|
||||||
|
<div class="example-element-weight"> {{"element.weight"}} </div>
|
||||||
|
</div>
|
||||||
|
<div class="example-element-description">
|
||||||
|
{{"element.description"}}
|
||||||
|
<span class="example-element-description-attribution"> -- Wikipedia </span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<tr mat-header-row *matHeaderRowDef="columnsToDisplayWithExpand"></tr>
|
||||||
|
<tr mat-row *matRowDef="let element; columns: columnsToDisplayWithExpand;" class="example-element-row"
|
||||||
|
[class.example-expanded-row]="expandedElement === element"
|
||||||
|
(click)="expandedElement = expandedElement === element ? null : element">
|
||||||
|
</tr>
|
||||||
|
<!--<tr mat-row *matRowDef="let row; columns: ['expandedDetail']; when: isExpandedRow" class="example-detail-row"></tr>-->
|
||||||
|
</table>
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
.example-element-row td {
|
||||||
|
border-bottom-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-element-detail {
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-element-diagram {
|
||||||
|
min-width: 80px;
|
||||||
|
border: 2px solid black;
|
||||||
|
padding: 8px;
|
||||||
|
font-weight: lighter;
|
||||||
|
margin: 8px 0;
|
||||||
|
height: 104px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-element-symbol {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 40px;
|
||||||
|
line-height: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-element-description {
|
||||||
|
padding: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-element-description-attribution {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { EnvelopeTableComponent } from './envelope-table.component';
|
||||||
|
|
||||||
|
describe('EnvelopeTableComponent', () => {
|
||||||
|
let component: EnvelopeTableComponent;
|
||||||
|
let fixture: ComponentFixture<EnvelopeTableComponent>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
imports: [EnvelopeTableComponent]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(EnvelopeTableComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
import { Component, Input, ViewChild } from '@angular/core';
|
||||||
|
import { EnvelopeReceiverService } from '../../services/envelope-receiver.service';
|
||||||
|
import { MatTable, MatTableModule } from '@angular/material/table';
|
||||||
|
import { CommonModule } from '@angular/common'
|
||||||
|
import { MatIconModule } from '@angular/material/icon';
|
||||||
|
import { MatButtonModule } from '@angular/material/button';
|
||||||
|
import { animate, state, style, transition, trigger } from '@angular/animations';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-envelope-table',
|
||||||
|
standalone: true,
|
||||||
|
imports: [MatTableModule, CommonModule, MatTableModule, MatButtonModule, MatIconModule],
|
||||||
|
templateUrl: './envelope-table.component.html',
|
||||||
|
animations: [
|
||||||
|
trigger('detailExpand', [
|
||||||
|
state('collapsed,void', style({ height: '0px', minHeight: '0' })),
|
||||||
|
state('expanded', style({ height: '*' })),
|
||||||
|
transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
|
||||||
|
]),
|
||||||
|
],
|
||||||
|
styleUrl: './envelope-table.component.scss'
|
||||||
|
})
|
||||||
|
export class EnvelopeTableComponent {
|
||||||
|
|
||||||
|
@Input() data: Array<any> = []
|
||||||
|
|
||||||
|
@Input() options?: { min_status?: number; max_status?: number; ignore_status?: number[] }
|
||||||
|
|
||||||
|
@Input() displayedColumns: string[] = ['title', 'status', 'type', 'privateMessage', 'addedWhen'];
|
||||||
|
|
||||||
|
@Input() schema: Record<string, { header: string; field: (element: any) => any; }> = {
|
||||||
|
'title': {
|
||||||
|
header: 'Title',
|
||||||
|
field: (element: any) => element.envelope.title
|
||||||
|
},
|
||||||
|
'status': {
|
||||||
|
header: 'Status',
|
||||||
|
field: (element: any) => element.envelope.statusName
|
||||||
|
},
|
||||||
|
'type': {
|
||||||
|
header: 'Type',
|
||||||
|
field: (element: any) => element.envelope.contractType
|
||||||
|
},
|
||||||
|
'privateMessage': {
|
||||||
|
header: 'Private Message',
|
||||||
|
field: (element: any) => element.privateMessage
|
||||||
|
},
|
||||||
|
'addedWhen': {
|
||||||
|
header: 'Added When',
|
||||||
|
field: (element: any) => element.addedWhen
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
columnsToDisplayWithExpand = [...this.displayedColumns, 'expand'];
|
||||||
|
|
||||||
|
expandedElement: any | null;
|
||||||
|
|
||||||
|
@ViewChild(MatTable) table!: MatTable<any>;
|
||||||
|
|
||||||
|
constructor(private erService: EnvelopeReceiverService) { }
|
||||||
|
|
||||||
|
async ngOnInit() {
|
||||||
|
if (this.data.length === 0)
|
||||||
|
this.data = await this.erService.getEnvelopeReceiverAsync(this.options);
|
||||||
|
}
|
||||||
|
|
||||||
|
public updateTable() {
|
||||||
|
this.table.renderRows();
|
||||||
|
}
|
||||||
|
|
||||||
|
isExpandedRow(index: number, row: any): boolean {
|
||||||
|
return (row?.envelopeId === this.expandedElement?.envelopeId) && (row?.receiverId === this.expandedElement?.receiverId);
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user