Compare commits

...

40 Commits

Author SHA1 Message Date
Developer01
c0b2ad0d9b Push nach rename 2026-02-10 08:42:14 +01:00
Developer01
2b7d797c3e 2.9.1 2026-02-10 08:38:45 +01:00
Developer01
1e2e018f7f MS Anpassungen 2025-11-12 21:43:50 +01:00
Developer01
69afea012b Handling InsertReceivers und kleinigkeiten frm Main 2025-09-16 09:00:43 +02:00
Developer01
85e0bc3400 Logging wegen Y-Konstante 2025-09-04 14:35:54 +02:00
b8c00884a9 Merge EnvelopeReceiver and EnvelopeReceiverBase 2025-08-13 16:35:51 +02:00
51d49d68ba fix(Envelope): Fügen Nicht-relationalen Eigenschaften NotMapped-Attribute hinzu. 2025-08-13 16:07:26 +02:00
4d5ee2b461 fix(MailParams): make Placeholders Dictionary 2025-08-13 13:03:56 +02:00
8a79ee4126 Stil: BaseController auf Datei-Namensraumformat umstellen 2025-08-12 11:24:38 +02:00
cde9896c01 Merge branch 'master' of http://git.dd:3000/AppStd/EnvelopeGenerator 2025-08-07 17:01:51 +02:00
c7d26a87b0 fix(EnvelopeMailService): Vermeiden Sie gemeinsam genutzte veränderbare Zustände in EnvelopeMailService-Platzhaltern
EnvelopeMailService wurde umgestaltet, um gemeinsam genutzte Veränderungen des _placeholders-Wörterbuchs zu vermeiden.
Die Konfigurationseigenschaft MailParams.Placeholders wurde von einem veränderbaren Dictionary<string, string>
zu einem ImmutableDictionary<string, string> geändert, und _placeholders wird nun bei der Dienstkonstruktion als neues Wörterbuch instanziiert.
2025-08-07 17:01:32 +02:00
17ceb1f72a Update EnvelopeGenerator.Web/wwwroot/README.md 2025-08-06 09:48:34 +02:00
b2c396c3b2 Add EnvelopeGenerator.Web/wwwroot/README.md 2025-08-06 09:45:11 +02:00
Developer01
286e17a900 layout specihern 2025-07-18 15:42:07 +02:00
Developer01
a21db6d6c5 Button AccessCode manuell versenden 2025-07-15 07:27:01 +02:00
Developer01
fe7030b9d7 Resend AccessCode Manually 2025-07-14 15:19:05 +02:00
Developer01
888c04b5c9 EnvelopeDomain Add Comment 2025-07-14 13:45:14 +02:00
de2cc62f95 Merge branch 'master' of http://git.dd:3000/AppStd/EnvelopeGenerator 2025-07-02 14:26:08 +02:00
0cfa732d87 Fix StatusTranslated property for correct enum translation
Updated the `StatusTranslated` property to cast the `Status` integer to the `Constants.EnvelopeStatus` enum before calling `ToString()`. This ensures accurate string representation based on the enum rather than the integer value.
2025-07-02 14:25:14 +02:00
Developer01
b14d9169f2 Fild editor msgbox 2025-07-02 13:18:01 +02:00
be51ca31dd Add initial migration for database schema setup
This commit introduces the `InitialCreate` migration class, establishing the initial database schema with multiple tables including `TBDD_CLIENT_USER`, `TBDD_GROUPS`, `TBDD_MODULES`, and `TBDD_USER`. Foreign key relationships are defined to ensure referential integrity, and a `Down` method is included for rollback functionality.

Additionally, the `InitialCreate.Designer.cs` file is generated to capture the model snapshot post-migration, while the `EGDbContextModelSnapshot.cs` file is updated to reflect the current state of the database model for future migrations.
2025-07-01 17:22:13 +02:00
bb8d7cd208 Update AddedWho property in EnvelopeReceiverReadOnly
Modified the `AddedWho` property to use `nvarchar(250)`
and increased the string length constraint from 100 to 250
characters, allowing for more extensive data storage.
2025-07-01 17:17:24 +02:00
b6588db615 Increase email address length in data models
Updated `ReceiverMail` and `EmailAddress` columns to
support `nvarchar(250)` for longer email addresses.
Retained `[NotMapped]` attribute for `Envelope` in
`EnvelopeReceiverReadOnly.cs` with a note for future
standardization of `EnvelopeId` data type.
2025-07-01 17:08:30 +02:00
9a9aa2608b Refactor EnvelopeHistory and update DbContext for migrations
Removed Sender and Receiver properties from EnvelopeHistory.
Added ActionDate and Comment properties. Introduced IsMigration
property in EGDbContext to conditionally configure foreign key
relationships for EnvelopeHistory. Updated EGDbContextFactory
to set IsMigration during context creation for migration operations.
2025-07-01 16:38:42 +02:00
349d65d050 Update DbTriggerParams and EF Core package versions
- Changed DbTriggerParams to use ICollection<string> for flexibility.
- Updated Microsoft.EntityFrameworkCore.SqlServer to version 9.0.6.
- Made _logger in EGDbContext nullable and optional in constructor.
- Updated logging statements to prevent null reference exceptions.
- Added Microsoft.EntityFrameworkCore.SqlServer package for net8.0 and net9.0.
- Introduced appsettings.migration.json for connection strings and trigger parameters.
- Added EGDbContextFactory for design-time DbContext creation.
2025-07-01 13:07:40 +02:00
93593226e2 Add conditional DB connection string selection
Updated `Program.cs` to conditionally select the database connection string based on an environment variable or configuration setting. Introduced a new variable `cnnStrName` for determining the use of a migration test database.

Added a new setting `"UseDbMigration": true` in `appsettings.json` to enable the migration test database, and included the corresponding connection string as `"DbMigrationTest"`. Removed the previous `"Dev"` connection string.
2025-06-30 16:19:22 +02:00
351cead423 Update Entity Framework packages and add Design package
The project file `EnvelopeGenerator.Infrastructure.csproj` has been modified to include the `Microsoft.EntityFrameworkCore.Design` package for net7.0, net8.0, and net9.0, with appropriate configurations for `PrivateAssets` and `IncludeAssets`. Additionally, the versions of `Microsoft.EntityFrameworkCore` and `Microsoft.EntityFrameworkCore.Relational` have been updated for net8.0 (from 8.0.15 to 8.0.17) and net9.0 (from 9.0.5 to 9.0.6).
2025-06-30 15:59:35 +02:00
07cab88e0d Refactor service registration with lambda expression 2025-06-30 15:53:38 +02:00
faa019355a Add DbMigrationTest key and update connection logic
Introduced a new static readonly string `DbMigrationTest` in the `Key` class for database migration tests. Updated connection string logic in `Program.cs` to use `DbMigrationTest` when `useDbMigration` is true, allowing for dynamic connection string selection based on environment configuration.
2025-06-30 15:38:01 +02:00
df9bcf3221 Remove IUserReceiverService registration 2025-06-30 15:29:57 +02:00
cda19e2b83 Add migration support and update launch settings
Introduce `useDbMigration` variable in `Program.cs` to conditionally manage database migrations based on environment settings. Update `launchSettings.json` to include a new `httpsDbMigration` profile for testing with Swagger UI. Modify `appsettings.json` to add `UseDbMigration` setting and replace the "Dev" connection string with "DbMigrationTest" for migration testing.
2025-06-30 15:29:47 +02:00
1586009a72 Add development connection string to appsettings.json 2025-06-30 15:07:04 +02:00
408b1e9f0d Merge branch 'refactor/split-common' 2025-06-30 14:59:37 +02:00
9158933333 Refactor security key handling and culture info setup
Updated `IssuerSigningKeyResolver` to use array syntax for returning security keys. Changed supported culture names declaration to use square brackets and modified the creation of the `CultureInfo` list to utilize the spread operator. Adjusted exception handling to throw `InvalidOperationException` when no supported culture is found.
2025-06-30 14:36:55 +02:00
902848958d Refactor empty array initialization 2025-06-30 14:26:26 +02:00
f5418499a7 Refactor envelope generator service registration 2025-06-30 14:25:32 +02:00
47d190d9ea Remove UserReceiver repository registration 2025-06-30 14:23:20 +02:00
35f46d3182 Remove UserReceiver repository and related entities
This commit removes the `IUserReceiverRepository` service registration from `DIExtensions`, indicating it is no longer needed. The `UserReceiver` and `Config` DbSet properties have been eliminated from the `EGDbContext`, along with their initialization in the constructor. Additionally, the `UserReceiver` entity has been removed from the model builder configuration and the associated trigger has been deleted. These changes reflect a refactoring of the data model to simplify the architecture and improve maintainability.
2025-06-30 14:23:00 +02:00
f5733228bf Merge branch 'refactor/split-common' 2025-06-30 11:28:32 +02:00
Developer01
260c1c174d Merge Master 2025-06-30 11:26:46 +02:00
55 changed files with 4663 additions and 584 deletions

View File

@@ -3,6 +3,6 @@
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public class DbTriggerParams : Dictionary<string, IEnumerable<string>> public class DbTriggerParams : Dictionary<string, ICollection<string>>
{ {
} }

View File

@@ -54,7 +54,7 @@ public class MappingProfile : Profile
CreateMap<ReceiverReadDto, Domain.Entities.Receiver>().ForMember(rcv => rcv.EnvelopeReceivers, rcvReadDto => rcvReadDto.Ignore()); CreateMap<ReceiverReadDto, Domain.Entities.Receiver>().ForMember(rcv => rcv.EnvelopeReceivers, rcvReadDto => rcvReadDto.Ignore());
CreateMap<ReceiverCreateDto, Domain.Entities.Receiver>(); CreateMap<ReceiverCreateDto, Domain.Entities.Receiver>();
CreateMap<ReceiverUpdateDto, Domain.Entities.Receiver>(); CreateMap<ReceiverUpdateDto, Domain.Entities.Receiver>();
CreateMap<EnvelopeReceiverBase, EnvelopeReceiverBasicDto>(); CreateMap<Domain.Entities.EnvelopeReceiver, EnvelopeReceiverBasicDto>();
CreateMap<EnvelopeReceiverReadOnlyCreateDto, Domain.Entities.EnvelopeReceiverReadOnly>(); CreateMap<EnvelopeReceiverReadOnlyCreateDto, Domain.Entities.EnvelopeReceiverReadOnly>();
CreateMap<EnvelopeReceiverReadOnlyUpdateDto, Domain.Entities.EnvelopeReceiverReadOnly>(); CreateMap<EnvelopeReceiverReadOnlyUpdateDto, Domain.Entities.EnvelopeReceiverReadOnly>();

View File

@@ -38,7 +38,6 @@ public static class DependencyInjection
services.TryAddScoped<IEnvelopeReceiverService, EnvelopeReceiverService>(); services.TryAddScoped<IEnvelopeReceiverService, EnvelopeReceiverService>();
services.TryAddScoped<IEnvelopeTypeService, EnvelopeTypeService>(); services.TryAddScoped<IEnvelopeTypeService, EnvelopeTypeService>();
services.TryAddScoped<IReceiverService, ReceiverService>(); services.TryAddScoped<IReceiverService, ReceiverService>();
services.TryAddScoped<IUserReceiverService, UserReceiverService>();
services.TryAddScoped<IEnvelopeReceiverReadOnlyService, EnvelopeReceiverReadOnlyService>(); services.TryAddScoped<IEnvelopeReceiverReadOnlyService, EnvelopeReceiverReadOnlyService>();
//Auto mapping profiles //Auto mapping profiles

View File

@@ -74,4 +74,9 @@ public static class Key
/// ///
/// </summary> /// </summary>
public static readonly string Default = nameof(Default); public static readonly string Default = nameof(Default);
/// <summary>
///
/// </summary>
public static readonly string DbMigrationTest = nameof(DbMigrationTest);
} }

View File

@@ -44,11 +44,11 @@ private readonly IAuthenticator _authenticator;
public EnvelopeMailService(IEmailOutRepository repository, IMapper mapper, IEmailTemplateService tempService, IEnvelopeReceiverService envelopeReceiverService, IOptions<DispatcherParams> dispatcherConfigOptions, IConfigService configService, IOptions<MailParams> mailConfig, IAuthenticator authenticator) : base(repository, mapper) public EnvelopeMailService(IEmailOutRepository repository, IMapper mapper, IEmailTemplateService tempService, IEnvelopeReceiverService envelopeReceiverService, IOptions<DispatcherParams> dispatcherConfigOptions, IConfigService configService, IOptions<MailParams> mailConfig, IAuthenticator authenticator) : base(repository, mapper)
{ {
_tempService = tempService; _tempService = tempService;
_envRcvService = envelopeReceiverService; _envRcvService = envelopeReceiverService;
_dConfig = dispatcherConfigOptions.Value; _dConfig = dispatcherConfigOptions.Value;
_configService = configService; _configService = configService;
_placeholders = mailConfig.Value.Placeholders; _placeholders = new Dictionary<string, string>(mailConfig.Value.Placeholders);
_authenticator = authenticator; _authenticator = authenticator;
} }
private async Task<Dictionary<string, string>> CreatePlaceholders(string? accessCode = null, EnvelopeReceiverDto? envelopeReceiverDto = null) private async Task<Dictionary<string, string>> CreatePlaceholders(string? accessCode = null, EnvelopeReceiverDto? envelopeReceiverDto = null)

View File

@@ -1,10 +1,11 @@
Imports DigitalData.Modules.Database Imports System.IO
Imports System.Security.Cryptography
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports EnvelopeGenerator.CommonServices.Jobs
Imports EnvelopeGenerator.CommonServices.Jobs.FinalizeDocument
Imports GdPicture14 Imports GdPicture14
Imports Newtonsoft.Json.Linq Imports Newtonsoft.Json.Linq
Imports EnvelopeGenerator.CommonServices.Jobs
Imports System.IO
Imports EnvelopeGenerator.CommonServices.Jobs.FinalizeDocument
Public Class frmFinalizePDF Public Class frmFinalizePDF
Private Const CONNECTIONSTRING = "Server=sDD-VMP04-SQL17\DD_DEVELOP01;Database=DD_ECM;User Id=sa;Password=+bk8oAbbQP1AzoHtvZUbd+Mbok2f8Fl4miEx1qssJ5yEaEWoQJ9prg4L14fURpPnqi1WMNs9fE4=;" Private Const CONNECTIONSTRING = "Server=sDD-VMP04-SQL17\DD_DEVELOP01;Database=DD_ECM;User Id=sa;Password=+bk8oAbbQP1AzoHtvZUbd+Mbok2f8Fl4miEx1qssJ5yEaEWoQJ9prg4L14fURpPnqi1WMNs9fE4=;"
@@ -65,6 +66,22 @@ Public Class frmFinalizePDF
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try Try
'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
'Logger.Debug("Burning Annotations to pdf ...")
'sd
'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
Dim oTable = LoadAnnotationDataForEnvelope() Dim oTable = LoadAnnotationDataForEnvelope()
Dim oJsonList = oTable.Rows. Dim oJsonList = oTable.Rows.

View File

@@ -123,6 +123,7 @@ Namespace Jobs
Throw New ArgumentNullException("EnvelopeData") Throw New ArgumentNullException("EnvelopeData")
End If End If
Logger.Debug("Burning Annotations to pdf ...") Logger.Debug("Burning Annotations to pdf ...")
Dim oBurnedDocument As Byte() = BurnAnnotationsToPdf(oEnvelopeData) Dim oBurnedDocument As Byte() = BurnAnnotationsToPdf(oEnvelopeData)
If oBurnedDocument Is Nothing Then If oBurnedDocument Is Nothing Then
Logger.Warn("Document could not be finalized!") Logger.Warn("Document could not be finalized!")

View File

@@ -16,6 +16,8 @@ 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 Const ANNOTATION_TYPE_WIDGET = "pspdfkit/widget"
Private Annotationheight_min As Double = 0
Private Annotationheight_max As Double = 0
Private Property _pdfBurnerParams As PDFBurnerParams Private Property _pdfBurnerParams As PDFBurnerParams
Public Sub New(pLogConfig As LogConfig, pGDPictureLicenseKey As String, pdfBurnerParams As PDFBurnerParams) Public Sub New(pLogConfig As LogConfig, pGDPictureLicenseKey As String, pdfBurnerParams As PDFBurnerParams)
@@ -69,12 +71,14 @@ Namespace Jobs.FinalizeDocument
Try Try
Dim oAnnotationData = JsonConvert.DeserializeObject(Of AnnotationData)(pInstantJSON) Dim oAnnotationData = JsonConvert.DeserializeObject(Of AnnotationData)(pInstantJSON)
oAnnotationData.annotations.Reverse() oAnnotationData.annotations.Reverse()
Dim formFieldIndex = 0 Dim formFieldIndex = 0, AnnotationIndex = 0, AnnotationImageIndex = 0
For Each oAnnotation In oAnnotationData.annotations For Each oAnnotation In oAnnotationData.annotations
Logger.Debug("Adding AnnotationID: " + oAnnotation.id) AnnotationIndex += 1
Logger.Debug("Adding AnnotationID: " + oAnnotation.id + " -Index: " + AnnotationIndex.ToString)
Select Case oAnnotation.type Select Case oAnnotation.type
Case ANNOTATION_TYPE_IMAGE Case ANNOTATION_TYPE_IMAGE
AddImageAnnotation(oAnnotation, oAnnotationData.attachments) AnnotationImageIndex += 1
AddImageAnnotation(AnnotationImageIndex, oAnnotation, oAnnotationData.attachments)
Case ANNOTATION_TYPE_INK Case ANNOTATION_TYPE_INK
AddInkAnnotation(oAnnotation) AddInkAnnotation(oAnnotation)
@@ -98,19 +102,26 @@ Namespace Jobs.FinalizeDocument
End Try End Try
End Function End Function
Private Function AddImageAnnotation(pAnnotation As Annotation, pAttachments As Dictionary(Of String, Attachment)) As Boolean Private Function AddImageAnnotation(pidX As Integer, pAnnotation As Annotation, pAttachments As Dictionary(Of String, Attachment)) As Boolean
Try Try
Dim oAttachment = pAttachments.Where(Function(a) a.Key = pAnnotation.imageAttachmentId). Dim oAttachment = pAttachments.Where(Function(a) a.Key = pAnnotation.imageAttachmentId).
SingleOrDefault() SingleOrDefault()
' Convert pixels to Inches ' Convert pixels to Inches
Dim oBounds = pAnnotation.bbox.Select(AddressOf ToInches).ToList() Dim oBounds = pAnnotation.bbox.Select(AddressOf ToInches).ToList()
Dim oX = oBounds.Item(0) Dim oX = oBounds.Item(0)
Dim oY = oBounds.Item(1) Dim oY = oBounds.Item(1)
Dim oWidth = oBounds.Item(2) Dim oWidth = oBounds.Item(2)
Dim oHeight = oBounds.Item(3) Dim oHeight = oBounds.Item(3)
If pidX = 1 Then
If Annotationheight_min = 0 Then
Annotationheight_min = oHeight
Annotationheight_min = oHeight
End If
End If
Manager.SelectPage(pAnnotation.pageIndex + 1) Manager.SelectPage(pAnnotation.pageIndex + 1)
Manager.AddEmbeddedImageAnnotFromBase64(oAttachment.Value.binary, oX, oY, oWidth, oHeight) Manager.AddEmbeddedImageAnnotFromBase64(oAttachment.Value.binary, oX, oY, oWidth, oHeight)

View File

@@ -152,6 +152,9 @@ Public Class ElementModel
pElement.Id = GetElementId(pElement) pElement.Id = GetElementId(pElement)
Return True Return True
Else Else
Dim filledSql As String = GetFilledSql(oCommand)
Logger.Warn(filledSql)
Return False Return False
End If End If
@@ -161,6 +164,26 @@ Public Class ElementModel
End Try End Try
End Function End Function
Function GetFilledSql(command As SqlCommand) As String
Dim oSql As String = command.CommandText
For Each oParam As SqlParameter In command.Parameters
Dim oValue As String
If oParam.Value Is Nothing OrElse oParam.Value Is DBNull.Value Then
oValue = "NULL"
ElseIf TypeOf oParam.Value Is String OrElse TypeOf oParam.Value Is Date Then
oValue = $"'{oParam.Value.ToString().Replace("'", "''")}'"
ElseIf TypeOf oParam.Value Is Boolean Then
oValue = If(CBool(oParam.Value), "1", "0")
Else
oValue = oParam.Value.ToString()
End If
oSql = oSql.Replace("@" & oParam.ParameterName, oValue)
Next
Return oSql
End Function
Public Function Update(pElement As DocumentReceiverElement) As Boolean Public Function Update(pElement As DocumentReceiverElement) As Boolean
Try Try
Dim oSql = "UPDATE [dbo].[TBSIG_DOCUMENT_RECEIVER_ELEMENT] Dim oSql = "UPDATE [dbo].[TBSIG_DOCUMENT_RECEIVER_ELEMENT]

View File

@@ -27,6 +27,7 @@ Public Class EnvelopeModel
Dim oEnvelope = New Envelope() With { Dim oEnvelope = New Envelope() With {
.Id = pRow.ItemEx("GUID", 0), .Id = pRow.ItemEx("GUID", 0),
.Title = pRow.ItemEx("TITLE", ""), .Title = pRow.ItemEx("TITLE", ""),
.Comment = pRow.ItemEx("COMMENT", ""),
.EnvelopeTypeId = pRow.ItemEx("ENVELOPE_TYPE", 0), .EnvelopeTypeId = pRow.ItemEx("ENVELOPE_TYPE", 0),
.ContractType = pRow.ItemEx("CONTRACT_TYPE", 0), .ContractType = pRow.ItemEx("CONTRACT_TYPE", 0),
.Uuid = pRow.ItemEx("ENVELOPE_UUID", ""), .Uuid = pRow.ItemEx("ENVELOPE_UUID", ""),

View File

@@ -57,7 +57,9 @@ Public Class ActionService
Public Function ResendReceiver(pEnvelope As Domain.Entities.Envelope, pReceiver As Receiver) As Boolean Public Function ResendReceiver(pEnvelope As Domain.Entities.Envelope, pReceiver As Receiver) As Boolean
Return EmailService.SendDocumentReceivedEmail(pEnvelope, pReceiver) Return EmailService.SendDocumentReceivedEmail(pEnvelope, pReceiver)
End Function End Function
Public Function ManuallySendAccessCode(pEnvelope As Domain.Entities.Envelope, pReceiver As Receiver) As Boolean
Return EmailService.SendDocumentAccessCodeReceivedEmail(pEnvelope, pReceiver)
End Function
Public Function DeleteEnvelope(pEnvelope As Domain.Entities.Envelope, pReason As String) As Boolean Public Function DeleteEnvelope(pEnvelope As Domain.Entities.Envelope, pReason As String) As Boolean
Dim oStatus As EnvelopeStatus Dim oStatus As EnvelopeStatus

View File

@@ -325,7 +325,11 @@ Namespace My.Resources
Return ResourceManager.GetString("Invitation successfully resend", resourceCulture) Return ResourceManager.GetString("Invitation successfully resend", resourceCulture)
End Get End Get
End Property End Property
Public Shared ReadOnly Property AccessCode_successfully_send() As String
Get
Return ResourceManager.GetString("AccessCode manually send", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Fehlendes Dokument ähnelt. ''' Sucht eine lokalisierte Zeichenfolge, die Fehlendes Dokument ähnelt.
'''</summary> '''</summary>

View File

@@ -56,6 +56,9 @@ namespace EnvelopeGenerator.Domain.Entities
[Column("TITLE", TypeName = "nvarchar(128)")] [Column("TITLE", TypeName = "nvarchar(128)")]
public string Title { get; set; } = string.Empty; public string Title { get; set; } = string.Empty;
[Column("COMMENT", TypeName = "nvarchar(128)")]
public string Comment { get; set; } = string.Empty;
[Column("CONTRACT_TYPE")] [Column("CONTRACT_TYPE")]
public int ContractType { get; set; } public int ContractType { get; set; }
@@ -126,7 +129,7 @@ namespace EnvelopeGenerator.Domain.Entities
public bool IsAlreadySent => Status > (int)Constants.EnvelopeStatus.EnvelopeSaved; public bool IsAlreadySent => Status > (int)Constants.EnvelopeStatus.EnvelopeSaved;
[NotMapped] [NotMapped]
public string StatusTranslated => My.Resources.Model.ResourceManager.GetString(Status.ToString()); public string StatusTranslated => My.Resources.Model.ResourceManager.GetString(((Constants.EnvelopeStatus)Status).ToString());
[NotMapped] [NotMapped]
public bool TFA_Enabled { get; set; } = false; public bool TFA_Enabled { get; set; } = false;
@@ -135,12 +138,15 @@ namespace EnvelopeGenerator.Domain.Entities
public byte[] DOC_RESULT { get; set; } public byte[] DOC_RESULT { get; set; }
// TODO: * Check the Form App and remove the default value // TODO: * Check the Form App and remove the default value
[NotMapped]
public List<EnvelopeDocument> Documents { get; set; } = new List<EnvelopeDocument>(); public List<EnvelopeDocument> Documents { get; set; } = new List<EnvelopeDocument>();
// TODO: * Check the Form App and remove the default value // TODO: * Check the Form App and remove the default value
[NotMapped]
public List<EnvelopeHistory> History { get; set; } = new List<EnvelopeHistory>(); public List<EnvelopeHistory> History { get; set; } = new List<EnvelopeHistory>();
// TODO: * Check the Form App and remove the default value // TODO: * Check the Form App and remove the default value
[NotMapped]
public List<Receiver> Receivers { get; set; } = new List<Receiver>(); public List<Receiver> Receivers { get; set; } = new List<Receiver>();
/// <summary> /// <summary>

View File

@@ -38,10 +38,8 @@ namespace EnvelopeGenerator.Domain.Entities
[Column("COMMENT", TypeName = "nvarchar(max)")] [Column("COMMENT", TypeName = "nvarchar(max)")]
public string Comment { get; set; } public string Comment { get; set; }
[ForeignKey("UserReference")]
public virtual User Sender { get; set; } public virtual User Sender { get; set; }
[ForeignKey("UserReference")]
public virtual Receiver Receiver { get; set; } public virtual Receiver Receiver { get; set; }
[NotMapped] [NotMapped]

View File

@@ -1,10 +1,59 @@
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
#if NETFRAMEWORK
using System;
#endif
namespace EnvelopeGenerator.Domain.Entities namespace EnvelopeGenerator.Domain.Entities
{ {
[Table("TBSIG_ENVELOPE_RECEIVER", Schema = "dbo")] [Table("TBSIG_ENVELOPE_RECEIVER", Schema = "dbo")]
public class EnvelopeReceiver : EnvelopeReceiverBase public class EnvelopeReceiver
{ {
[Key]
[Column("ENVELOPE_ID")]
public int EnvelopeId { get; set; }
[Key]
[Column("RECEIVER_ID")]
public int ReceiverId { get; set; }
[Required]
[Column("SEQUENCE")]
public int Sequence { get; set; }
[Column("NAME", TypeName = "nvarchar(128)")]
public string Name { get; set; }
[Column("JOB_TITLE", TypeName = "nvarchar(128)")]
public string JobTitle { get; set; }
[Column("COMPANY_NAME", TypeName = "nvarchar(128)")]
public string CompanyName { get; set; }
[Column("PRIVATE_MESSAGE", TypeName = "nvarchar(max)")]
public string PrivateMessage { get; set; }
[Column("ACCESS_CODE", TypeName = "nvarchar(64)")]
public string AccessCode { get; set; }
[Required]
[Column("ADDED_WHEN", TypeName = "datetime")]
public DateTime AddedWhen { get; set; }
[Column("CHANGED_WHEN", TypeName = "datetime")]
public DateTime ChangedWhen { get; set; }
[Column("PHONE_NUMBER")]
[StringLength(20)]
[RegularExpression(@"^\+[0-9]+$", ErrorMessage = "Phone number must start with '+' followed by digits.")]
public string PhoneNumber { get; set; }
[NotMapped]
public Tuple<int, int> Id => Tuple.Create(EnvelopeId, ReceiverId);
[NotMapped]
public bool HasPhoneNumber => !string.IsNullOrWhiteSpace(PhoneNumber);
[ForeignKey("EnvelopeId")] [ForeignKey("EnvelopeId")]
public Envelope Envelope { get; set; } public Envelope Envelope { get; set; }

View File

@@ -1,57 +0,0 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
#if NETFRAMEWORK
using System;
#endif
namespace EnvelopeGenerator.Domain.Entities
{
[Table("TBSIG_ENVELOPE_RECEIVER", Schema = "dbo")]
public class EnvelopeReceiverBase
{
[Key]
[Column("ENVELOPE_ID")]
public int EnvelopeId { get; set; }
[Key]
[Column("RECEIVER_ID")]
public int ReceiverId { get; set; }
[Required]
[Column("SEQUENCE")]
public int Sequence { get; set; }
[Column("NAME", TypeName = "nvarchar(128)")]
public string Name { get; set; }
[Column("JOB_TITLE", TypeName = "nvarchar(128)")]
public string JobTitle { get; set; }
[Column("COMPANY_NAME", TypeName = "nvarchar(128)")]
public string CompanyName { get; set; }
[Column("PRIVATE_MESSAGE", TypeName = "nvarchar(max)")]
public string PrivateMessage { get; set; }
[Column("ACCESS_CODE", TypeName = "nvarchar(64)")]
public string AccessCode { get; set; }
[Required]
[Column("ADDED_WHEN", TypeName = "datetime")]
public DateTime AddedWhen { get; set; }
[Column("CHANGED_WHEN", TypeName = "datetime")]
public DateTime ChangedWhen { get; set; }
[Column("PHONE_NUMBER")]
[StringLength(20)]
[RegularExpression(@"^\+[0-9]+$", ErrorMessage = "Phone number must start with '+' followed by digits.")]
public string PhoneNumber { get; set; }
[NotMapped]
public Tuple<int, int> Id => Tuple.Create(EnvelopeId, ReceiverId);
[NotMapped]
public bool HasPhoneNumber => !string.IsNullOrWhiteSpace(PhoneNumber);
}
}

View File

@@ -23,7 +23,7 @@ namespace EnvelopeGenerator.Domain.Entities
[NotMapped] [NotMapped]
public Envelope Envelope { get; set; } public Envelope Envelope { get; set; }
[Column("RECEIVER_MAIL")] [Column("RECEIVER_MAIL", TypeName = "nvarchar(250)")]
[Required] [Required]
[StringLength(250)] [StringLength(250)]
[TemplatePlaceholder("NAME_RECEIVER")] [TemplatePlaceholder("NAME_RECEIVER")]
@@ -33,9 +33,9 @@ namespace EnvelopeGenerator.Domain.Entities
[Required] [Required]
public DateTime DateValid { get; set; } public DateTime DateValid { get; set; }
[Column("ADDED_WHO")] [Column("ADDED_WHO", TypeName = "nvarchar(250)")]
[Required] [Required]
[StringLength(100)] [StringLength(250)]
public string AddedWho { get; set; } public string AddedWho { get; set; }
public Receiver Receiver { get; set; } public Receiver Receiver { get; set; }

View File

@@ -17,7 +17,8 @@ namespace EnvelopeGenerator.Domain.Entities
public int Id { get; set; } public int Id { get; set; }
[Required, EmailAddress] [Required, EmailAddress]
[Column("EMAIL_ADDRESS", TypeName = "nvarchar(128)")] [Column("EMAIL_ADDRESS", TypeName = "nvarchar(250)")]
[StringLength(250)]
public string EmailAddress { get; set; } public string EmailAddress { get; set; }
[Required] [Required]

View File

@@ -2,6 +2,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net462;net7.0;net8.0;net9.0</TargetFrameworks> <TargetFrameworks>net462;net7.0;net8.0;net9.0</TargetFrameworks>
<AssemblyVersion>1.4.0</AssemblyVersion>
<FileVersion>1.4.0</FileVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'net462'"> <PropertyGroup Condition="'$(TargetFramework)' == 'net462'">

View File

@@ -1,10 +1,10 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // Dieser Code wurde von einem Tool generiert.
// Runtime Version:4.0.30319.42000 // Laufzeitversion:4.0.30319.42000
// //
// Changes to this file may cause incorrect behavior and will be lost if // Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// the code is regenerated. // der Code erneut generiert wird.
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@@ -13,12 +13,12 @@ namespace My.Resources {
/// <summary> /// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc. /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
/// </summary> /// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
// class via a tool like ResGen or Visual Studio. // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
// To add or remove a member, edit your .ResX file then rerun ResGen // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
// with the /str option, or rebuild your VS project. // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
@@ -33,7 +33,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Returns the cached ResourceManager instance used by this class. /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
/// </summary> /// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Resources.ResourceManager ResourceManager { public static global::System.Resources.ResourceManager ResourceManager {
@@ -47,8 +47,8 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Overrides the current thread's CurrentUICulture property for all /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
/// resource lookups using this strongly typed resource class. /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
/// </summary> /// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Globalization.CultureInfo Culture { public static global::System.Globalization.CultureInfo Culture {
@@ -61,7 +61,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Sie haben ein Dokument zur Unterschrift erhalten: {0}. /// Sucht eine lokalisierte Zeichenfolge, die Sie haben ein Dokument zur Unterschrift erhalten: {0} ähnelt.
/// </summary> /// </summary>
public static string Sie_haben_ein_Dokument_zur_Unterschrift_erhalten___0_ { public static string Sie_haben_ein_Dokument_zur_Unterschrift_erhalten___0_ {
get { get {

View File

@@ -1,10 +1,10 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // Dieser Code wurde von einem Tool generiert.
// Runtime Version:4.0.30319.42000 // Laufzeitversion:4.0.30319.42000
// //
// Changes to this file may cause incorrect behavior and will be lost if // Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// the code is regenerated. // der Code erneut generiert wird.
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@@ -13,12 +13,12 @@ namespace My.Resources {
/// <summary> /// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc. /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
/// </summary> /// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
// class via a tool like ResGen or Visual Studio. // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
// To add or remove a member, edit your .ResX file then rerun ResGen // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
// with the /str option, or rebuild your VS project. // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
@@ -33,7 +33,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Returns the cached ResourceManager instance used by this class. /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
/// </summary> /// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Resources.ResourceManager ResourceManager { public static global::System.Resources.ResourceManager ResourceManager {
@@ -47,8 +47,8 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Overrides the current thread's CurrentUICulture property for all /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
/// resource lookups using this strongly typed resource class. /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
/// </summary> /// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Globalization.CultureInfo Culture { public static global::System.Globalization.CultureInfo Culture {
@@ -61,7 +61,16 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Bitte wählen Sie die PDF-Dokumente die Sie verketten möchten:. /// Sucht eine lokalisierte Zeichenfolge, die Der Zugangs Code wurde erfolgreich an [@Mail] versendet! ähnelt.
/// </summary>
public static string AccessCode_manually_send {
get {
return ResourceManager.GetString("AccessCode manually send", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Bitte wählen Sie die PDF-Dokumente die Sie verketten möchten: ähnelt.
/// </summary> /// </summary>
public static string Dialog_Concat_PDF { public static string Dialog_Concat_PDF {
get { get {
@@ -70,7 +79,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Wollen Sie diesen Umschlag wirklich zurückrufen/löschen?. /// Sucht eine lokalisierte Zeichenfolge, die Wollen Sie diesen Umschlag wirklich zurückrufen/löschen? ähnelt.
/// </summary> /// </summary>
public static string Do_you_really_want_to_delete_this_envelope { public static string Do_you_really_want_to_delete_this_envelope {
get { get {
@@ -79,7 +88,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Wollen Sie dieses Dokument wirklich entfernen?. /// Sucht eine lokalisierte Zeichenfolge, die Wollen Sie dieses Dokument wirklich entfernen? ähnelt.
/// </summary> /// </summary>
public static string Do_you_really_want_to_remove_this_document { public static string Do_you_really_want_to_remove_this_document {
get { get {
@@ -88,7 +97,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Wollen Sie den ausgewählten Empfänger löschen?. /// Sucht eine lokalisierte Zeichenfolge, die Wollen Sie den ausgewählten Empfänger löschen? ähnelt.
/// </summary> /// </summary>
public static string Do_you_want_to_delete_the_selected_recipient { public static string Do_you_want_to_delete_the_selected_recipient {
get { get {
@@ -97,7 +106,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Wollen Sie die Signatur löschen?. /// Sucht eine lokalisierte Zeichenfolge, die Wollen Sie die Signatur löschen? ähnelt.
/// </summary> /// </summary>
public static string Do_you_want_to_delete_the_signature { public static string Do_you_want_to_delete_the_signature {
get { get {
@@ -106,7 +115,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Wollen Sie den Signaturprozess nun starten?. /// Sucht eine lokalisierte Zeichenfolge, die Wollen Sie den Signaturprozess nun starten? ähnelt.
/// </summary> /// </summary>
public static string Do_you_want_to_start_the_signature_process_now { public static string Do_you_want_to_start_the_signature_process_now {
get { get {
@@ -115,7 +124,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Das Dokument konnte nicht geöffnet werden!. /// Sucht eine lokalisierte Zeichenfolge, die Das Dokument konnte nicht geöffnet werden! ähnelt.
/// </summary> /// </summary>
public static string Document_could_not_be_opened { public static string Document_could_not_be_opened {
get { get {
@@ -124,7 +133,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Dokument konnte nicht gespeichert werden!. /// Sucht eine lokalisierte Zeichenfolge, die Dokument konnte nicht gespeichert werden! ähnelt.
/// </summary> /// </summary>
public static string Document_Could_Not_Be_Saved { public static string Document_Could_Not_Be_Saved {
get { get {
@@ -133,7 +142,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Umschlag an Empfänger {0} weitergeleitet.. /// Sucht eine lokalisierte Zeichenfolge, die Umschlag an Empfänger {0} weitergeleitet. ähnelt.
/// </summary> /// </summary>
public static string Document_forwarded { public static string Document_forwarded {
get { get {
@@ -142,7 +151,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Aktuell ist per Drag and Drop nur eine PDF-Datei erlaubt.. /// Sucht eine lokalisierte Zeichenfolge, die Aktuell ist per Drag and Drop nur eine PDF-Datei erlaubt. ähnelt.
/// </summary> /// </summary>
public static string Drop_only_one_file { public static string Drop_only_one_file {
get { get {
@@ -151,7 +160,16 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Bearbeite Umschlag. /// Sucht eine lokalisierte Zeichenfolge, die Aktuell sind per Drag and Drop nur PDF-Dateien erlaubt. ähnelt.
/// </summary>
public static string Drop_only_pdf {
get {
return ResourceManager.GetString("Drop only pdf", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Bearbeite Umschlag ähnelt.
/// </summary> /// </summary>
public static string Edit_Envelope { public static string Edit_Envelope {
get { get {
@@ -160,7 +178,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Signatur-Elemente konnten nicht geladen werden!. /// Sucht eine lokalisierte Zeichenfolge, die Signatur-Elemente konnten nicht geladen werden! ähnelt.
/// </summary> /// </summary>
public static string Elements_could_not_be_loaded { public static string Elements_could_not_be_loaded {
get { get {
@@ -169,7 +187,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Signatur-Elemente konnten nicht gespeichert werden!. /// Sucht eine lokalisierte Zeichenfolge, die Signatur-Elemente konnten nicht gespeichert werden! ähnelt.
/// </summary> /// </summary>
public static string Elements_could_not_be_saved { public static string Elements_could_not_be_saved {
get { get {
@@ -178,7 +196,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Der Umschlag wurde bereits versendet!. /// Sucht eine lokalisierte Zeichenfolge, die Der Umschlag wurde bereits versendet! ähnelt.
/// </summary> /// </summary>
public static string Envelope_already_sent { public static string Envelope_already_sent {
get { get {
@@ -187,7 +205,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Umschlag konnte nicht gesendet werden!. /// Sucht eine lokalisierte Zeichenfolge, die Umschlag konnte nicht gesendet werden! ähnelt.
/// </summary> /// </summary>
public static string Envelope_could_not_be_sent { public static string Envelope_could_not_be_sent {
get { get {
@@ -196,7 +214,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Umschlag-Editor. /// Sucht eine lokalisierte Zeichenfolge, die Umschlag-Editor ähnelt.
/// </summary> /// </summary>
public static string Envelope_Editor { public static string Envelope_Editor {
get { get {
@@ -205,7 +223,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Die Einladungen zum Signieren wurden zum Versand eingereiht.. /// Sucht eine lokalisierte Zeichenfolge, die Die Einladungen zum Signieren wurden zum Versand eingereiht. ähnelt.
/// </summary> /// </summary>
public static string Envelope_Invitations_Sent { public static string Envelope_Invitations_Sent {
get { get {
@@ -214,7 +232,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Übersicht. /// Sucht eine lokalisierte Zeichenfolge, die Übersicht ähnelt.
/// </summary> /// </summary>
public static string Envelope_Overview { public static string Envelope_Overview {
get { get {
@@ -223,7 +241,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Die Einladungen wurden erfolgreich zum Versand bereitgestellt.. /// Sucht eine lokalisierte Zeichenfolge, die Die Einladungen wurden erfolgreich zum Versand bereitgestellt. ähnelt.
/// </summary> /// </summary>
public static string Envelope_successfully_sent { public static string Envelope_successfully_sent {
get { get {
@@ -232,7 +250,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Die Email-Adresse [ @Mail ] konnte nicht validiert werden!. /// Sucht eine lokalisierte Zeichenfolge, die Die Email-Adresse [ @Mail ] konnte nicht validiert werden! ähnelt.
/// </summary> /// </summary>
public static string Error_email_Validation { public static string Error_email_Validation {
get { get {
@@ -241,8 +259,8 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to The mobile phone number [@PhoneNr] could not be validated. /// Sucht eine lokalisierte Zeichenfolge, die Die Mobiltelefonnummer [@PhoneNr] konnte nicht validiert werden.
///Pattern: +491234567890. ///Muster: +491234567890 ähnelt.
/// </summary> /// </summary>
public static string Error_phone_Validation { public static string Error_phone_Validation {
get { get {
@@ -251,7 +269,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Fehler beim Senden des Umschlags:. /// Sucht eine lokalisierte Zeichenfolge, die Fehler beim Senden des Umschlags: ähnelt.
/// </summary> /// </summary>
public static string Error_sending_the_envelope { public static string Error_sending_the_envelope {
get { get {
@@ -260,7 +278,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Fehler beim Speichern des Umschlags!. /// Sucht eine lokalisierte Zeichenfolge, die Fehler beim Speichern des Umschlags! ähnelt.
/// </summary> /// </summary>
public static string Error_when_saving_the_envelope { public static string Error_when_saving_the_envelope {
get { get {
@@ -269,7 +287,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Fehler beim Speichern der Empfänger!. /// Sucht eine lokalisierte Zeichenfolge, die Fehler beim Speichern der Empfänger! ähnelt.
/// </summary> /// </summary>
public static string Error_when_saving_the_recipients { public static string Error_when_saving_the_recipients {
get { get {
@@ -278,7 +296,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Fehler bei der Validierung des Umschlags:. /// Sucht eine lokalisierte Zeichenfolge, die Fehler bei der Validierung des Umschlags: ähnelt.
/// </summary> /// </summary>
public static string Error_when_validating_the_envelope { public static string Error_when_validating_the_envelope {
get { get {
@@ -287,7 +305,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Fehler beim Speichern des Umschlags: . /// Sucht eine lokalisierte Zeichenfolge, die Fehler beim Speichern des Umschlags: ähnelt.
/// </summary> /// </summary>
public static string Errors_when_saving_the_envelope { public static string Errors_when_saving_the_envelope {
get { get {
@@ -296,7 +314,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Mindestens ein Empfänger hat keine Anrede oder keine Email Adresse.. /// Sucht eine lokalisierte Zeichenfolge, die Mindestens ein Empfänger hat keine Anrede oder keine Email Adresse. ähnelt.
/// </summary> /// </summary>
public static string Incomplete_Receivers { public static string Incomplete_Receivers {
get { get {
@@ -305,7 +323,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Empfänger {0} hat keine gültige Email Addresse.. /// Sucht eine lokalisierte Zeichenfolge, die Empfänger {0} hat keine gültige Email Addresse. ähnelt.
/// </summary> /// </summary>
public static string Invalid_Email_Address { public static string Invalid_Email_Address {
get { get {
@@ -314,7 +332,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Die Einladung an [@Mail] wurde nochmal versendet!. /// Sucht eine lokalisierte Zeichenfolge, die Die Einladung an [@Mail] wurde nochmal versendet! ähnelt.
/// </summary> /// </summary>
public static string Invitation_successfully_resend { public static string Invitation_successfully_resend {
get { get {
@@ -323,7 +341,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Fehlendes Dokument. /// Sucht eine lokalisierte Zeichenfolge, die Fehlendes Dokument ähnelt.
/// </summary> /// </summary>
public static string Missing_Documents { public static string Missing_Documents {
get { get {
@@ -332,7 +350,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Es muss mindestens ein Signaturfeld gesetzt werden.. /// Sucht eine lokalisierte Zeichenfolge, die Es muss mindestens ein Signaturfeld gesetzt werden. ähnelt.
/// </summary> /// </summary>
public static string Missing_Elements { public static string Missing_Elements {
get { get {
@@ -341,7 +359,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Für den Empfänger {0} gibt es noch kein Signaturfeld.. /// Sucht eine lokalisierte Zeichenfolge, die Für den Empfänger {0} gibt es noch kein Signaturfeld. ähnelt.
/// </summary> /// </summary>
public static string Missing_Elements_for_Receiver { public static string Missing_Elements_for_Receiver {
get { get {
@@ -350,7 +368,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Fehlende Nachricht. /// Sucht eine lokalisierte Zeichenfolge, die Fehlende Nachricht ähnelt.
/// </summary> /// </summary>
public static string Missing_Message { public static string Missing_Message {
get { get {
@@ -359,7 +377,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Fehlende Empfänger. /// Sucht eine lokalisierte Zeichenfolge, die Fehlende Empfänger ähnelt.
/// </summary> /// </summary>
public static string Missing_Receivers { public static string Missing_Receivers {
get { get {
@@ -368,7 +386,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to . /// Sucht eine lokalisierte Zeichenfolge, die Not translated ähnelt.
/// </summary> /// </summary>
public static string ModificationOriginFile_FormFields { public static string ModificationOriginFile_FormFields {
get { get {
@@ -377,7 +395,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Neuer Umschlag. /// Sucht eine lokalisierte Zeichenfolge, die Neuer Umschlag ähnelt.
/// </summary> /// </summary>
public static string New_Envelope { public static string New_Envelope {
get { get {
@@ -386,7 +404,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Es ist nur eine Datei zulässig!. /// Sucht eine lokalisierte Zeichenfolge, die Es ist nur eine Datei zulässig! ähnelt.
/// </summary> /// </summary>
public static string Only_one_file_is_allowed { public static string Only_one_file_is_allowed {
get { get {
@@ -395,7 +413,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Bitte lesen und unterzeichnen Sie dieses Dokument.. /// Sucht eine lokalisierte Zeichenfolge, die Bitte lesen und unterzeichnen Sie dieses Dokument. ähnelt.
/// </summary> /// </summary>
public static string Please_read_and_sign_this_document { public static string Please_read_and_sign_this_document {
get { get {
@@ -404,7 +422,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Bitte wählen Sie einen Empfänger aus dem Reiter Empfänger aus.. /// Sucht eine lokalisierte Zeichenfolge, die Bitte wählen Sie einen Empfänger aus dem Reiter Empfänger aus. ähnelt.
/// </summary> /// </summary>
public static string Please_select_a_recipient_from_the_Recipients_tab { public static string Please_select_a_recipient_from_the_Recipients_tab {
get { get {
@@ -413,7 +431,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Empfänger konnte nicht gelöscht werden!. /// Sucht eine lokalisierte Zeichenfolge, die Empfänger konnte nicht gelöscht werden! ähnelt.
/// </summary> /// </summary>
public static string Recipient_could_not_be_deleted { public static string Recipient_could_not_be_deleted {
get { get {
@@ -422,7 +440,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Soll der Umschlag gespeichert werden?. /// Sucht eine lokalisierte Zeichenfolge, die Soll der Umschlag gespeichert werden? ähnelt.
/// </summary> /// </summary>
public static string Should_The_Envelope_Be_Saved { public static string Should_The_Envelope_Be_Saved {
get { get {
@@ -431,7 +449,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Platzhalter Signatur. /// Sucht eine lokalisierte Zeichenfolge, die Platzhalter Signatur ähnelt.
/// </summary> /// </summary>
public static string Signature { public static string Signature {
get { get {
@@ -440,7 +458,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Signatur-Editor. /// Sucht eine lokalisierte Zeichenfolge, die Signatur-Editor ähnelt.
/// </summary> /// </summary>
public static string Signature_Editor { public static string Signature_Editor {
get { get {
@@ -449,7 +467,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Der Umschlag konnte nicht gelöscht werden!. /// Sucht eine lokalisierte Zeichenfolge, die Der Umschlag konnte nicht gelöscht werden! ähnelt.
/// </summary> /// </summary>
public static string The_envelope_could_not_be_deleted { public static string The_envelope_could_not_be_deleted {
get { get {
@@ -458,7 +476,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Der Umschlag enthält keine Dokumente. /// Sucht eine lokalisierte Zeichenfolge, die Der Umschlag enthält keine Dokumente ähnelt.
/// </summary> /// </summary>
public static string The_envelope_does_not_contain_any_documents { public static string The_envelope_does_not_contain_any_documents {
get { get {
@@ -467,7 +485,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Es gibt für diesen Empfänger bereits Elemente. Wollen Sie den Empfänger trotzdem löschen?. /// Sucht eine lokalisierte Zeichenfolge, die Es gibt für diesen Empfänger bereits Elemente. Wollen Sie den Empfänger trotzdem löschen? ähnelt.
/// </summary> /// </summary>
public static string There_are_already_elements_for_this_recipient { public static string There_are_already_elements_for_this_recipient {
get { get {
@@ -476,7 +494,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Es sind ungespeicherte Änderungen vorhanden. Wollen Sie diese Speichern?. /// Sucht eine lokalisierte Zeichenfolge, die Es sind ungespeicherte Änderungen vorhanden. Wollen Sie diese speichern? ähnelt.
/// </summary> /// </summary>
public static string There_are_unsaved_changes { public static string There_are_unsaved_changes {
get { get {
@@ -485,7 +503,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Sie haben ein Dokument zum signieren erhalten:. /// Sucht eine lokalisierte Zeichenfolge, die Sie haben ein Dokument zum signieren erhalten: ähnelt.
/// </summary> /// </summary>
public static string You_received_a_document_to_sign { public static string You_received_a_document_to_sign {
get { get {

View File

@@ -147,9 +147,6 @@
<data name="Drop only one file" xml:space="preserve"> <data name="Drop only one file" xml:space="preserve">
<value>Currently, only one PDF file is permitted via drag and drop.</value> <value>Currently, only one PDF file is permitted via drag and drop.</value>
</data> </data>
<data name="Drop only pdf" xml:space="preserve">
<value />
</data>
<data name="Edit Envelope" xml:space="preserve"> <data name="Edit Envelope" xml:space="preserve">
<value>Edit Envelope</value> <value>Edit Envelope</value>
</data> </data>
@@ -181,7 +178,8 @@
<value>The email [ @Mail ] could not be varified!</value> <value>The email [ @Mail ] could not be varified!</value>
</data> </data>
<data name="Error phone Validation" xml:space="preserve"> <data name="Error phone Validation" xml:space="preserve">
<value /> <value>The mobile phone number [@PhoneNr] could not be validated.
Pattern: +491234567890</value>
</data> </data>
<data name="Error sending the envelope" xml:space="preserve"> <data name="Error sending the envelope" xml:space="preserve">
<value>Error sending the envelope:</value> <value>Error sending the envelope:</value>
@@ -222,6 +220,9 @@
<data name="Missing Receivers" xml:space="preserve"> <data name="Missing Receivers" xml:space="preserve">
<value>Missing Receivers</value> <value>Missing Receivers</value>
</data> </data>
<data name="ModificationOriginFile_FormFields" xml:space="preserve">
<value>Not translated</value>
</data>
<data name="New Envelope" xml:space="preserve"> <data name="New Envelope" xml:space="preserve">
<value>New Envelope</value> <value>New Envelope</value>
</data> </data>
@@ -255,10 +256,16 @@
<data name="There are already elements for this recipient" xml:space="preserve"> <data name="There are already elements for this recipient" xml:space="preserve">
<value>There are already elements for this recipient. Do you still want to delete the recipient?</value> <value>There are already elements for this recipient. Do you still want to delete the recipient?</value>
</data> </data>
<data name="There are unsaved changes." xml:space="preserve"> <data name="There are unsaved changes" xml:space="preserve">
<value>There are unsaved changes. Do you want to save them?</value> <value>There are unsaved changes. Do you want to save them?</value>
</data> </data>
<data name="You received a document to sign" xml:space="preserve"> <data name="You received a document to sign" xml:space="preserve">
<value>You received a document to sign:</value> <value>You received a document to sign:</value>
</data> </data>
<data name="Drop only pdf" xml:space="preserve">
<value>Currently, only PDF files are allowed via drag and drop.</value>
</data>
<data name="AccessCode manually send" xml:space="preserve">
<value>The access code was successfully sent to [@Mail]!</value>
</data>
</root> </root>

View File

@@ -178,8 +178,8 @@
<value>Die Email-Adresse [ @Mail ] konnte nicht validiert werden!</value> <value>Die Email-Adresse [ @Mail ] konnte nicht validiert werden!</value>
</data> </data>
<data name="Error phone Validation" xml:space="preserve"> <data name="Error phone Validation" xml:space="preserve">
<value>The mobile phone number [@PhoneNr] could not be validated. <value>Die Mobiltelefonnummer [@PhoneNr] konnte nicht validiert werden.
Pattern: +491234567890</value> Muster: +491234567890</value>
</data> </data>
<data name="Error sending the envelope" xml:space="preserve"> <data name="Error sending the envelope" xml:space="preserve">
<value>Fehler beim Senden des Umschlags:</value> <value>Fehler beim Senden des Umschlags:</value>
@@ -221,7 +221,7 @@ Pattern: +491234567890</value>
<value>Fehlende Empfänger</value> <value>Fehlende Empfänger</value>
</data> </data>
<data name="ModificationOriginFile_FormFields" xml:space="preserve"> <data name="ModificationOriginFile_FormFields" xml:space="preserve">
<value /> <value>Not translated</value>
</data> </data>
<data name="New Envelope" xml:space="preserve"> <data name="New Envelope" xml:space="preserve">
<value>Neuer Umschlag</value> <value>Neuer Umschlag</value>
@@ -257,9 +257,15 @@ Pattern: +491234567890</value>
<value>Es gibt für diesen Empfänger bereits Elemente. Wollen Sie den Empfänger trotzdem löschen?</value> <value>Es gibt für diesen Empfänger bereits Elemente. Wollen Sie den Empfänger trotzdem löschen?</value>
</data> </data>
<data name="There are unsaved changes" xml:space="preserve"> <data name="There are unsaved changes" xml:space="preserve">
<value>Es sind ungespeicherte Änderungen vorhanden. Wollen Sie diese Speichern?</value> <value>Es sind ungespeicherte Änderungen vorhanden. Wollen Sie diese speichern?</value>
</data> </data>
<data name="You received a document to sign" xml:space="preserve"> <data name="You received a document to sign" xml:space="preserve">
<value>Sie haben ein Dokument zum signieren erhalten:</value> <value>Sie haben ein Dokument zum signieren erhalten:</value>
</data> </data>
<data name="Drop only pdf" xml:space="preserve">
<value>Aktuell sind per Drag and Drop nur PDF-Dateien erlaubt.</value>
</data>
<data name="AccessCode manually send" xml:space="preserve">
<value>Der Zugangs Code wurde erfolgreich an [@Mail] versendet!</value>
</data>
</root> </root>

View File

@@ -1,10 +1,10 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // Dieser Code wurde von einem Tool generiert.
// Runtime Version:4.0.30319.42000 // Laufzeitversion:4.0.30319.42000
// //
// Changes to this file may cause incorrect behavior and will be lost if // Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// the code is regenerated. // der Code erneut generiert wird.
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@@ -13,12 +13,12 @@ namespace My.Resources {
/// <summary> /// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc. /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
/// </summary> /// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
// class via a tool like ResGen or Visual Studio. // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
// To add or remove a member, edit your .ResX file then rerun ResGen // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
// with the /str option, or rebuild your VS project. // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
@@ -33,7 +33,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Returns the cached ResourceManager instance used by this class. /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
/// </summary> /// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Resources.ResourceManager ResourceManager { public static global::System.Resources.ResourceManager ResourceManager {
@@ -47,8 +47,8 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Overrides the current thread's CurrentUICulture property for all /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
/// resource lookups using this strongly typed resource class. /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
/// </summary> /// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Globalization.CultureInfo Culture { public static global::System.Globalization.CultureInfo Culture {
@@ -61,7 +61,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Zugriffscode korrekt eingegeben. /// Sucht eine lokalisierte Zeichenfolge, die Zugriffscode korrekt eingegeben ähnelt.
/// </summary> /// </summary>
public static string AccessCodeCorrect { public static string AccessCodeCorrect {
get { get {
@@ -70,7 +70,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Zugriffscode falsch eingegeben. /// Sucht eine lokalisierte Zeichenfolge, die Zugriffscode falsch eingegeben ähnelt.
/// </summary> /// </summary>
public static string AccessCodeIncorrect { public static string AccessCodeIncorrect {
get { get {
@@ -79,7 +79,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Zugriffscode angefordert. /// Sucht eine lokalisierte Zeichenfolge, die Zugriffscode angefordert ähnelt.
/// </summary> /// </summary>
public static string AccessCodeRequested { public static string AccessCodeRequested {
get { get {
@@ -88,7 +88,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Fortgeschrittene Elektronische Signatur. /// Sucht eine lokalisierte Zeichenfolge, die Fortgeschrittene Elektronische Signatur ähnelt.
/// </summary> /// </summary>
public static string AdvancedElectronicSignature { public static string AdvancedElectronicSignature {
get { get {
@@ -97,7 +97,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Abgeschlossen. /// Sucht eine lokalisierte Zeichenfolge, die Abgeschlossen ähnelt.
/// </summary> /// </summary>
public static string Completed { public static string Completed {
get { get {
@@ -106,7 +106,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Vollständig Signiert. /// Sucht eine lokalisierte Zeichenfolge, die Vollständig Signiert ähnelt.
/// </summary> /// </summary>
public static string CompletelySigned { public static string CompletelySigned {
get { get {
@@ -115,7 +115,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Vertrag. /// Sucht eine lokalisierte Zeichenfolge, die Vertrag ähnelt.
/// </summary> /// </summary>
public static string Contract { public static string Contract {
get { get {
@@ -124,7 +124,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Erstellt. /// Sucht eine lokalisierte Zeichenfolge, die Erstellt ähnelt.
/// </summary> /// </summary>
public static string Created { public static string Created {
get { get {
@@ -133,7 +133,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Dokument Rotation geändert. /// Sucht eine lokalisierte Zeichenfolge, die Dokument Rotation geändert ähnelt.
/// </summary> /// </summary>
public static string DocumentMod_Rotation { public static string DocumentMod_Rotation {
get { get {
@@ -142,7 +142,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Dokument geöffnet. /// Sucht eine lokalisierte Zeichenfolge, die Dokument geöffnet ähnelt.
/// </summary> /// </summary>
public static string DocumentOpened { public static string DocumentOpened {
get { get {
@@ -151,7 +151,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Unterzeichnung abgelehnt. /// Sucht eine lokalisierte Zeichenfolge, die Unterzeichnung abgelehnt ähnelt.
/// </summary> /// </summary>
public static string DocumentRejected { public static string DocumentRejected {
get { get {
@@ -160,7 +160,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Dokument unterzeichnet. /// Sucht eine lokalisierte Zeichenfolge, die Dokument unterzeichnet ähnelt.
/// </summary> /// </summary>
public static string DocumentSigned { public static string DocumentSigned {
get { get {
@@ -169,7 +169,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Entwurf. /// Sucht eine lokalisierte Zeichenfolge, die Entwurf ähnelt.
/// </summary> /// </summary>
public static string Draft { public static string Draft {
get { get {
@@ -178,7 +178,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Archiviert. /// Sucht eine lokalisierte Zeichenfolge, die Archiviert ähnelt.
/// </summary> /// </summary>
public static string EnvelopeArchived { public static string EnvelopeArchived {
get { get {
@@ -187,7 +187,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Vollständig signiert. /// Sucht eine lokalisierte Zeichenfolge, die Vollständig signiert ähnelt.
/// </summary> /// </summary>
public static string EnvelopeCompletelySigned { public static string EnvelopeCompletelySigned {
get { get {
@@ -196,7 +196,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Umschlag Erstellt. /// Sucht eine lokalisierte Zeichenfolge, die Umschlag Erstellt ähnelt.
/// </summary> /// </summary>
public static string EnvelopeCreated { public static string EnvelopeCreated {
get { get {
@@ -205,7 +205,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Umschlag Gelöscht. /// Sucht eine lokalisierte Zeichenfolge, die Umschlag Gelöscht ähnelt.
/// </summary> /// </summary>
public static string EnvelopeDeleted { public static string EnvelopeDeleted {
get { get {
@@ -214,7 +214,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Teil-Signiert. /// Sucht eine lokalisierte Zeichenfolge, die Teil-Signiert ähnelt.
/// </summary> /// </summary>
public static string EnvelopePartlySigned { public static string EnvelopePartlySigned {
get { get {
@@ -223,7 +223,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Umschlag in Queue. /// Sucht eine lokalisierte Zeichenfolge, die Umschlag in Queue ähnelt.
/// </summary> /// </summary>
public static string EnvelopeQueued { public static string EnvelopeQueued {
get { get {
@@ -232,7 +232,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Umschlag abgelehnt. /// Sucht eine lokalisierte Zeichenfolge, die Umschlag abgelehnt ähnelt.
/// </summary> /// </summary>
public static string EnvelopeRejected { public static string EnvelopeRejected {
get { get {
@@ -241,7 +241,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Signierungszertifikat erstellt. /// Sucht eine lokalisierte Zeichenfolge, die Signierungszertifikat erstellt ähnelt.
/// </summary> /// </summary>
public static string EnvelopeReportCreated { public static string EnvelopeReportCreated {
get { get {
@@ -250,7 +250,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Gespeichert. /// Sucht eine lokalisierte Zeichenfolge, die Gespeichert ähnelt.
/// </summary> /// </summary>
public static string EnvelopeSaved { public static string EnvelopeSaved {
get { get {
@@ -259,7 +259,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Gesendet. /// Sucht eine lokalisierte Zeichenfolge, die Gesendet ähnelt.
/// </summary> /// </summary>
public static string EnvelopeSent { public static string EnvelopeSent {
get { get {
@@ -268,7 +268,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Umschlag zurückgezogen. /// Sucht eine lokalisierte Zeichenfolge, die Umschlag zurückgezogen ähnelt.
/// </summary> /// </summary>
public static string EnvelopeWithdrawn { public static string EnvelopeWithdrawn {
get { get {
@@ -277,7 +277,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Zugriffscode versendet. /// Sucht eine lokalisierte Zeichenfolge, die Zugriffscode versendet ähnelt.
/// </summary> /// </summary>
public static string MessageAccessCodeSent { public static string MessageAccessCodeSent {
get { get {
@@ -286,7 +286,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Abschlussemail versendet. /// Sucht eine lokalisierte Zeichenfolge, die Abschlussemail versendet ähnelt.
/// </summary> /// </summary>
public static string MessageCompletionSent { public static string MessageCompletionSent {
get { get {
@@ -295,7 +295,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Signaturbestätigung versendet. /// Sucht eine lokalisierte Zeichenfolge, die Signaturbestätigung versendet ähnelt.
/// </summary> /// </summary>
public static string MessageConfirmationSent { public static string MessageConfirmationSent {
get { get {
@@ -304,7 +304,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Löschinformation versendet. /// Sucht eine lokalisierte Zeichenfolge, die Löschinformation versendet ähnelt.
/// </summary> /// </summary>
public static string MessageDeletionSent { public static string MessageDeletionSent {
get { get {
@@ -313,7 +313,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Dokumentenlink versendet. /// Sucht eine lokalisierte Zeichenfolge, die Dokumentenlink versendet ähnelt.
/// </summary> /// </summary>
public static string MessageInvitationSent { public static string MessageInvitationSent {
get { get {
@@ -322,7 +322,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Nein. /// Sucht eine lokalisierte Zeichenfolge, die Nein ähnelt.
/// </summary> /// </summary>
public static string No { public static string No {
get { get {
@@ -331,7 +331,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Teil-Signiert. /// Sucht eine lokalisierte Zeichenfolge, die Teil-Signiert ähnelt.
/// </summary> /// </summary>
public static string PartlySigned { public static string PartlySigned {
get { get {
@@ -340,7 +340,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Qualifizierte Signatur. /// Sucht eine lokalisierte Zeichenfolge, die Qualifizierte Signatur ähnelt.
/// </summary> /// </summary>
public static string QualifiedSignature { public static string QualifiedSignature {
get { get {
@@ -349,7 +349,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Arbeitsanweisung. /// Sucht eine lokalisierte Zeichenfolge, die Arbeitsanweisung ähnelt.
/// </summary> /// </summary>
public static string ReadAndSign { public static string ReadAndSign {
get { get {
@@ -358,7 +358,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Wollen Sie die 2-Faktor Definition für diesen Empfänger zurücksetzen. Der Empfänger muss sich dann neu identifizieren!. /// Sucht eine lokalisierte Zeichenfolge, die Wollen Sie die 2-Faktor Definition für diesen Empfänger zurücksetzen. Der Empfänger muss sich dann neu identifizieren! ähnelt.
/// </summary> /// </summary>
public static string ResetTOTPUser { public static string ResetTOTPUser {
get { get {
@@ -367,7 +367,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Gespeichert. /// Sucht eine lokalisierte Zeichenfolge, die Gespeichert ähnelt.
/// </summary> /// </summary>
public static string Saved { public static string Saved {
get { get {
@@ -376,7 +376,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Gesendet. /// Sucht eine lokalisierte Zeichenfolge, die Gesendet ähnelt.
/// </summary> /// </summary>
public static string Sent { public static string Sent {
get { get {
@@ -385,7 +385,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Signatur. /// Sucht eine lokalisierte Zeichenfolge, die Signatur ähnelt.
/// </summary> /// </summary>
public static string Signature { public static string Signature {
get { get {
@@ -394,7 +394,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Signatur bestätigt. /// Sucht eine lokalisierte Zeichenfolge, die Signatur bestätigt ähnelt.
/// </summary> /// </summary>
public static string SignatureConfirmed { public static string SignatureConfirmed {
get { get {
@@ -403,7 +403,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Signiert. /// Sucht eine lokalisierte Zeichenfolge, die Signiert ähnelt.
/// </summary> /// </summary>
public static string Signed { public static string Signed {
get { get {
@@ -412,7 +412,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Erfolgreich! Dialog wird geschlossen.. /// Sucht eine lokalisierte Zeichenfolge, die Erfolgreich! Dialog wird geschlossen. ähnelt.
/// </summary> /// </summary>
public static string Success_FormClose { public static string Success_FormClose {
get { get {
@@ -421,7 +421,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Unsigniert. /// Sucht eine lokalisierte Zeichenfolge, die Unsigniert ähnelt.
/// </summary> /// </summary>
public static string Unsigned { public static string Unsigned {
get { get {
@@ -430,7 +430,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Ja. /// Sucht eine lokalisierte Zeichenfolge, die Ja ähnelt.
/// </summary> /// </summary>
public static string Yes { public static string Yes {
get { get {
@@ -439,7 +439,7 @@ namespace My.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Ja, mit Anhang. /// Sucht eine lokalisierte Zeichenfolge, die Ja, mit Anhang ähnelt.
/// </summary> /// </summary>
public static string YesWithAttachment { public static string YesWithAttachment {
get { get {

View File

@@ -132,6 +132,9 @@
<data name="Completed" xml:space="preserve"> <data name="Completed" xml:space="preserve">
<value>Completed</value> <value>Completed</value>
</data> </data>
<data name="CompletelySigned" xml:space="preserve">
<value>Completely signed</value>
</data>
<data name="Contract" xml:space="preserve"> <data name="Contract" xml:space="preserve">
<value>Contract</value> <value>Contract</value>
</data> </data>

View File

@@ -11,7 +11,7 @@ Imports System.Runtime.InteropServices
<Assembly: AssemblyCompany("Digital Data")> <Assembly: AssemblyCompany("Digital Data")>
<Assembly: AssemblyProduct("Envelope Generator")> <Assembly: AssemblyProduct("Envelope Generator")>
<Assembly: AssemblyCopyright("Copyright © 2024")> <Assembly: AssemblyCopyright("Copyright © 2024")>
<Assembly: AssemblyTrademark("2.9.0.0")> <Assembly: AssemblyTrademark("2.9.2.0")>
<Assembly: AssemblyCulture("")> <Assembly: AssemblyCulture("")>
' Setting ComVisible to false makes the types in this assembly not visible ' Setting ComVisible to false makes the types in this assembly not visible
@@ -32,5 +32,5 @@ Imports System.Runtime.InteropServices
' You can specify all the values or you can default the Build and Revision Numbers ' You can specify all the values or you can default the Build and Revision Numbers
' by using the '*' as shown below: ' by using the '*' as shown below:
' [assembly: AssemblyVersion("1.0.*")] ' [assembly: AssemblyVersion("1.0.*")]
<Assembly: AssemblyVersion("2.9.1.0")> <Assembly: AssemblyVersion("2.9.2.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")> <Assembly: AssemblyFileVersion("1.0.0.0")>

View File

@@ -424,7 +424,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, 418)
Me.LayoutControlGroup4.TextVisible = False Me.LayoutControlGroup4.TextVisible = False
' '
'LayoutControlGroup5 'LayoutControlGroup5
@@ -432,7 +432,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, 418)
resources.ApplyResources(Me.LayoutControlGroup5, "LayoutControlGroup5") resources.ApplyResources(Me.LayoutControlGroup5, "LayoutControlGroup5")
' '
'LayoutControlItem5 'LayoutControlItem5
@@ -440,7 +440,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, 373)
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
' '
@@ -594,7 +594,7 @@ Partial Public Class frmEnvelopeEditor
Me.LayoutControlGroup2.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlGroup3}) Me.LayoutControlGroup2.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlGroup3})
Me.LayoutControlGroup2.Name = "LayoutControlGroup2" Me.LayoutControlGroup2.Name = "LayoutControlGroup2"
Me.LayoutControlGroup2.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0) Me.LayoutControlGroup2.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
Me.LayoutControlGroup2.Size = New System.Drawing.Size(899, 249) Me.LayoutControlGroup2.Size = New System.Drawing.Size(796, 249)
Me.LayoutControlGroup2.TextVisible = False Me.LayoutControlGroup2.TextVisible = False
' '
'LayoutControlGroup3 'LayoutControlGroup3
@@ -602,7 +602,7 @@ Partial Public Class frmEnvelopeEditor
Me.LayoutControlGroup3.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem2}) Me.LayoutControlGroup3.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem2})
Me.LayoutControlGroup3.Location = New System.Drawing.Point(0, 0) Me.LayoutControlGroup3.Location = New System.Drawing.Point(0, 0)
Me.LayoutControlGroup3.Name = "LayoutControlGroup3" Me.LayoutControlGroup3.Name = "LayoutControlGroup3"
Me.LayoutControlGroup3.Size = New System.Drawing.Size(899, 249) Me.LayoutControlGroup3.Size = New System.Drawing.Size(796, 249)
resources.ApplyResources(Me.LayoutControlGroup3, "LayoutControlGroup3") resources.ApplyResources(Me.LayoutControlGroup3, "LayoutControlGroup3")
' '
'LayoutControlItem2 'LayoutControlItem2
@@ -610,7 +610,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(772, 204)
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
' '
@@ -644,7 +644,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(796, 151)
Me.Root.TextVisible = False Me.Root.TextVisible = False
' '
'LayoutControlGroup1 'LayoutControlGroup1
@@ -653,7 +653,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(796, 151)
resources.ApplyResources(Me.LayoutControlGroup1, "LayoutControlGroup1") resources.ApplyResources(Me.LayoutControlGroup1, "LayoutControlGroup1")
' '
'LayoutControlItem3 'LayoutControlItem3
@@ -662,7 +662,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(770, 104)
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(46, 13) Me.LayoutControlItem3.TextSize = New System.Drawing.Size(46, 13)

View File

@@ -485,13 +485,13 @@
<value>Start</value> <value>Start</value>
</data> </data>
<data name="RibbonControl1.Size" type="System.Drawing.Size, System.Drawing"> <data name="RibbonControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>1164, 132</value> <value>1061, 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, 550</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>1061, 22</value>
</data> </data>
<data name="&gt;&gt;RibbonStatusBar1.Name" xml:space="preserve"> <data name="&gt;&gt;RibbonStatusBar1.Name" xml:space="preserve">
<value>RibbonStatusBar1</value> <value>RibbonStatusBar1</value>
@@ -518,7 +518,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, 369</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>
@@ -545,7 +545,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, 418</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>
@@ -587,7 +587,7 @@
<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>334, 17</value> <value>17, 91</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, 35</value>
@@ -627,7 +627,7 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="colColor.Width" type="System.Int32, mscorlib"> <data name="colColor.Width" type="System.Int32, mscorlib">
<value>32</value> <value>54</value>
</data> </data>
<data name="RepositoryItemComboBox1.AutoHeight" type="System.Boolean, mscorlib"> <data name="RepositoryItemComboBox1.AutoHeight" type="System.Boolean, mscorlib">
<value>False</value> <value>False</value>
@@ -696,7 +696,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>768, 200</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>
@@ -726,7 +726,7 @@
<value>Empfänger</value> <value>Empfänger</value>
</data> </data>
<data name="LayoutControl2.Size" type="System.Drawing.Size, System.Drawing"> <data name="LayoutControl2.Size" type="System.Drawing.Size, System.Drawing">
<value>899, 249</value> <value>796, 249</value>
</data> </data>
<data name="LayoutControl2.TabIndex" type="System.Int32, mscorlib"> <data name="LayoutControl2.TabIndex" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
@@ -756,7 +756,7 @@
<value>0, 0, 0, 0</value> <value>0, 0, 0, 0</value>
</data> </data>
<data name="PanelControl1.Size" type="System.Drawing.Size, System.Drawing"> <data name="PanelControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>903, 253</value> <value>800, 253</value>
</data> </data>
<data name="PanelControl1.TabIndex" type="System.Int32, mscorlib"> <data name="PanelControl1.TabIndex" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
@@ -795,7 +795,7 @@
<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>750, 68</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>
@@ -825,7 +825,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>796, 151</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>
@@ -855,7 +855,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>800, 155</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>
@@ -888,7 +888,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>800, 418</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>
@@ -921,7 +921,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>1061, 418</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>
@@ -939,13 +939,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>792, 17</value> <value>17, 165</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>557, 17</value> <value>17, 128</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>193, 17</value> <value>17, 54</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>
@@ -985,7 +985,7 @@
<value>6, 13</value> <value>6, 13</value>
</data> </data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>1164, 684</value> <value>1061, 572</value>
</data> </data>
<data name="frmEnvelopeEditor.IconOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="frmEnvelopeEditor.IconOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>

View File

@@ -142,12 +142,16 @@ Partial Class frmEnvelopeMainData
' '
resources.ApplyResources(Me.txtTitle, "txtTitle") resources.ApplyResources(Me.txtTitle, "txtTitle")
Me.txtTitle.Name = "txtTitle" Me.txtTitle.Name = "txtTitle"
Me.txtTitle.Properties.Appearance.Font = CType(resources.GetObject("txtTitle.Properties.Appearance.Font"), System.Drawing.Font)
Me.txtTitle.Properties.Appearance.Options.UseFont = True
Me.txtTitle.StyleController = Me.LayoutControl1 Me.txtTitle.StyleController = Me.LayoutControl1
' '
'cmbEnvelopeType 'cmbEnvelopeType
' '
resources.ApplyResources(Me.cmbEnvelopeType, "cmbEnvelopeType") resources.ApplyResources(Me.cmbEnvelopeType, "cmbEnvelopeType")
Me.cmbEnvelopeType.Name = "cmbEnvelopeType" Me.cmbEnvelopeType.Name = "cmbEnvelopeType"
Me.cmbEnvelopeType.Properties.Appearance.Font = CType(resources.GetObject("cmbEnvelopeType.Properties.Appearance.Font"), System.Drawing.Font)
Me.cmbEnvelopeType.Properties.Appearance.Options.UseFont = True
Me.cmbEnvelopeType.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(CType(resources.GetObject("cmbEnvelopeType.Properties.Buttons"), DevExpress.XtraEditors.Controls.ButtonPredefines))}) Me.cmbEnvelopeType.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(CType(resources.GetObject("cmbEnvelopeType.Properties.Buttons"), DevExpress.XtraEditors.Controls.ButtonPredefines))})
Me.cmbEnvelopeType.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor Me.cmbEnvelopeType.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor
Me.cmbEnvelopeType.StyleController = Me.LayoutControl1 Me.cmbEnvelopeType.StyleController = Me.LayoutControl1
@@ -170,6 +174,8 @@ Partial Class frmEnvelopeMainData
' '
resources.ApplyResources(Me.cmbCertificationType, "cmbCertificationType") resources.ApplyResources(Me.cmbCertificationType, "cmbCertificationType")
Me.cmbCertificationType.Name = "cmbCertificationType" Me.cmbCertificationType.Name = "cmbCertificationType"
Me.cmbCertificationType.Properties.Appearance.Font = CType(resources.GetObject("cmbCertificationType.Properties.Appearance.Font"), System.Drawing.Font)
Me.cmbCertificationType.Properties.Appearance.Options.UseFont = True
Me.cmbCertificationType.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(CType(resources.GetObject("cmbCertificationType.Properties.Buttons"), DevExpress.XtraEditors.Controls.ButtonPredefines))}) Me.cmbCertificationType.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(CType(resources.GetObject("cmbCertificationType.Properties.Buttons"), DevExpress.XtraEditors.Controls.ButtonPredefines))})
Me.cmbCertificationType.StyleController = Me.LayoutControl1 Me.cmbCertificationType.StyleController = Me.LayoutControl1
' '
@@ -212,6 +218,8 @@ Partial Class frmEnvelopeMainData
' '
resources.ApplyResources(Me.cmbLanguage, "cmbLanguage") resources.ApplyResources(Me.cmbLanguage, "cmbLanguage")
Me.cmbLanguage.Name = "cmbLanguage" Me.cmbLanguage.Name = "cmbLanguage"
Me.cmbLanguage.Properties.Appearance.Font = CType(resources.GetObject("cmbLanguage.Properties.Appearance.Font"), System.Drawing.Font)
Me.cmbLanguage.Properties.Appearance.Options.UseFont = True
Me.cmbLanguage.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(CType(resources.GetObject("cmbLanguage.Properties.Buttons"), DevExpress.XtraEditors.Controls.ButtonPredefines))}) Me.cmbLanguage.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(CType(resources.GetObject("cmbLanguage.Properties.Buttons"), DevExpress.XtraEditors.Controls.ButtonPredefines))})
Me.cmbLanguage.StyleController = Me.LayoutControl1 Me.cmbLanguage.StyleController = Me.LayoutControl1
' '
@@ -219,6 +227,8 @@ Partial Class frmEnvelopeMainData
' '
resources.ApplyResources(Me.chkUseAccessCode, "chkUseAccessCode") resources.ApplyResources(Me.chkUseAccessCode, "chkUseAccessCode")
Me.chkUseAccessCode.Name = "chkUseAccessCode" Me.chkUseAccessCode.Name = "chkUseAccessCode"
Me.chkUseAccessCode.Properties.Appearance.Font = CType(resources.GetObject("chkUseAccessCode.Properties.Appearance.Font"), System.Drawing.Font)
Me.chkUseAccessCode.Properties.Appearance.Options.UseFont = True
Me.chkUseAccessCode.Properties.Caption = resources.GetString("chkUseAccessCode.Properties.Caption") Me.chkUseAccessCode.Properties.Caption = resources.GetString("chkUseAccessCode.Properties.Caption")
Me.chkUseAccessCode.StyleController = Me.LayoutControl1 Me.chkUseAccessCode.StyleController = Me.LayoutControl1
' '
@@ -274,7 +284,7 @@ Partial Class frmEnvelopeMainData
Me.LayoutControlItem1.Name = "LayoutControlItem1" Me.LayoutControlItem1.Name = "LayoutControlItem1"
Me.LayoutControlItem1.Size = New System.Drawing.Size(547, 24) Me.LayoutControlItem1.Size = New System.Drawing.Size(547, 24)
resources.ApplyResources(Me.LayoutControlItem1, "LayoutControlItem1") resources.ApplyResources(Me.LayoutControlItem1, "LayoutControlItem1")
Me.LayoutControlItem1.TextSize = New System.Drawing.Size(168, 13) Me.LayoutControlItem1.TextSize = New System.Drawing.Size(153, 13)
' '
'LayoutControlItem2 'LayoutControlItem2
' '
@@ -283,7 +293,7 @@ Partial Class frmEnvelopeMainData
Me.LayoutControlItem2.Name = "LayoutControlItem2" Me.LayoutControlItem2.Name = "LayoutControlItem2"
Me.LayoutControlItem2.Size = New System.Drawing.Size(547, 24) Me.LayoutControlItem2.Size = New System.Drawing.Size(547, 24)
resources.ApplyResources(Me.LayoutControlItem2, "LayoutControlItem2") resources.ApplyResources(Me.LayoutControlItem2, "LayoutControlItem2")
Me.LayoutControlItem2.TextSize = New System.Drawing.Size(168, 13) Me.LayoutControlItem2.TextSize = New System.Drawing.Size(153, 13)
' '
'LayoutControlItem4 'LayoutControlItem4
' '
@@ -346,7 +356,7 @@ Partial Class frmEnvelopeMainData
Me.LayoutControlItem9.Name = "LayoutControlItem9" Me.LayoutControlItem9.Name = "LayoutControlItem9"
Me.LayoutControlItem9.Size = New System.Drawing.Size(541, 24) Me.LayoutControlItem9.Size = New System.Drawing.Size(541, 24)
resources.ApplyResources(Me.LayoutControlItem9, "LayoutControlItem9") resources.ApplyResources(Me.LayoutControlItem9, "LayoutControlItem9")
Me.LayoutControlItem9.TextSize = New System.Drawing.Size(168, 13) Me.LayoutControlItem9.TextSize = New System.Drawing.Size(153, 13)
' '
'LayoutControlItem14 'LayoutControlItem14
' '
@@ -355,7 +365,7 @@ Partial Class frmEnvelopeMainData
Me.LayoutControlItem14.Name = "LayoutControlItem14" Me.LayoutControlItem14.Name = "LayoutControlItem14"
Me.LayoutControlItem14.Size = New System.Drawing.Size(541, 24) Me.LayoutControlItem14.Size = New System.Drawing.Size(541, 24)
resources.ApplyResources(Me.LayoutControlItem14, "LayoutControlItem14") resources.ApplyResources(Me.LayoutControlItem14, "LayoutControlItem14")
Me.LayoutControlItem14.TextSize = New System.Drawing.Size(168, 13) Me.LayoutControlItem14.TextSize = New System.Drawing.Size(153, 13)
' '
'groupExpiration 'groupExpiration
' '
@@ -374,7 +384,7 @@ Partial Class frmEnvelopeMainData
Me.LayoutControlItem10.Name = "LayoutControlItem10" Me.LayoutControlItem10.Name = "LayoutControlItem10"
Me.LayoutControlItem10.Size = New System.Drawing.Size(541, 24) Me.LayoutControlItem10.Size = New System.Drawing.Size(541, 24)
resources.ApplyResources(Me.LayoutControlItem10, "LayoutControlItem10") resources.ApplyResources(Me.LayoutControlItem10, "LayoutControlItem10")
Me.LayoutControlItem10.TextSize = New System.Drawing.Size(168, 13) Me.LayoutControlItem10.TextSize = New System.Drawing.Size(153, 13)
' '
'LayoutControlItem11 'LayoutControlItem11
' '
@@ -383,7 +393,7 @@ Partial Class frmEnvelopeMainData
Me.LayoutControlItem11.Name = "LayoutControlItem11" Me.LayoutControlItem11.Name = "LayoutControlItem11"
Me.LayoutControlItem11.Size = New System.Drawing.Size(541, 24) Me.LayoutControlItem11.Size = New System.Drawing.Size(541, 24)
resources.ApplyResources(Me.LayoutControlItem11, "LayoutControlItem11") resources.ApplyResources(Me.LayoutControlItem11, "LayoutControlItem11")
Me.LayoutControlItem11.TextSize = New System.Drawing.Size(168, 13) Me.LayoutControlItem11.TextSize = New System.Drawing.Size(153, 13)
' '
'groupReminders 'groupReminders
' '
@@ -411,7 +421,7 @@ Partial Class frmEnvelopeMainData
Me.LayoutControlItem6.Name = "LayoutControlItem6" Me.LayoutControlItem6.Name = "LayoutControlItem6"
Me.LayoutControlItem6.Size = New System.Drawing.Size(541, 24) Me.LayoutControlItem6.Size = New System.Drawing.Size(541, 24)
resources.ApplyResources(Me.LayoutControlItem6, "LayoutControlItem6") resources.ApplyResources(Me.LayoutControlItem6, "LayoutControlItem6")
Me.LayoutControlItem6.TextSize = New System.Drawing.Size(168, 13) Me.LayoutControlItem6.TextSize = New System.Drawing.Size(153, 13)
' '
'LayoutControlItem7 'LayoutControlItem7
' '
@@ -420,7 +430,7 @@ Partial Class frmEnvelopeMainData
Me.LayoutControlItem7.Name = "LayoutControlItem7" Me.LayoutControlItem7.Name = "LayoutControlItem7"
Me.LayoutControlItem7.Size = New System.Drawing.Size(541, 24) Me.LayoutControlItem7.Size = New System.Drawing.Size(541, 24)
resources.ApplyResources(Me.LayoutControlItem7, "LayoutControlItem7") resources.ApplyResources(Me.LayoutControlItem7, "LayoutControlItem7")
Me.LayoutControlItem7.TextSize = New System.Drawing.Size(168, 13) Me.LayoutControlItem7.TextSize = New System.Drawing.Size(153, 13)
' '
'groupOptions 'groupOptions
' '
@@ -438,7 +448,7 @@ Partial Class frmEnvelopeMainData
Me.LayoutControlItem8.Name = "LayoutControlItem8" Me.LayoutControlItem8.Name = "LayoutControlItem8"
Me.LayoutControlItem8.Size = New System.Drawing.Size(541, 24) Me.LayoutControlItem8.Size = New System.Drawing.Size(541, 24)
resources.ApplyResources(Me.LayoutControlItem8, "LayoutControlItem8") resources.ApplyResources(Me.LayoutControlItem8, "LayoutControlItem8")
Me.LayoutControlItem8.TextSize = New System.Drawing.Size(168, 13) Me.LayoutControlItem8.TextSize = New System.Drawing.Size(153, 13)
' '
'LayoutControlItem12 'LayoutControlItem12
' '
@@ -447,7 +457,7 @@ Partial Class frmEnvelopeMainData
Me.LayoutControlItem12.Name = "LayoutControlItem12" Me.LayoutControlItem12.Name = "LayoutControlItem12"
Me.LayoutControlItem12.Size = New System.Drawing.Size(541, 24) Me.LayoutControlItem12.Size = New System.Drawing.Size(541, 24)
resources.ApplyResources(Me.LayoutControlItem12, "LayoutControlItem12") resources.ApplyResources(Me.LayoutControlItem12, "LayoutControlItem12")
Me.LayoutControlItem12.TextSize = New System.Drawing.Size(168, 13) Me.LayoutControlItem12.TextSize = New System.Drawing.Size(153, 13)
' '
'LayoutControlItem13 'LayoutControlItem13
' '
@@ -474,6 +484,7 @@ Partial Class frmEnvelopeMainData
'frmEnvelopeMainData 'frmEnvelopeMainData
' '
Me.AcceptButton = Me.btOK Me.AcceptButton = Me.btOK
Me.Appearance.Options.UseFont = True
resources.ApplyResources(Me, "$this") resources.ApplyResources(Me, "$this")
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.CancelButton = Me.btCancel Me.CancelButton = Me.btCancel

View File

@@ -147,10 +147,13 @@
<value>4</value> <value>4</value>
</data> </data>
<data name="txtTitle.Location" type="System.Drawing.Point, System.Drawing"> <data name="txtTitle.Location" type="System.Drawing.Point, System.Drawing">
<value>204, 45</value> <value>189, 45</value>
</data>
<data name="txtTitle.Properties.Appearance.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 8.25pt</value>
</data> </data>
<data name="txtTitle.Size" type="System.Drawing.Size, System.Drawing"> <data name="txtTitle.Size" type="System.Drawing.Size, System.Drawing">
<value>363, 20</value> <value>378, 20</value>
</data> </data>
<data name="txtTitle.TabIndex" type="System.Int32, mscorlib"> <data name="txtTitle.TabIndex" type="System.Int32, mscorlib">
<value>4</value> <value>4</value>
@@ -168,14 +171,17 @@
<value>5</value> <value>5</value>
</data> </data>
<data name="cmbEnvelopeType.Location" type="System.Drawing.Point, System.Drawing"> <data name="cmbEnvelopeType.Location" type="System.Drawing.Point, System.Drawing">
<value>204, 69</value> <value>189, 69</value>
</data>
<data name="cmbEnvelopeType.Properties.Appearance.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 8.25pt</value>
</data> </data>
<assembly alias="DevExpress.Utils.v21.2" name="DevExpress.Utils.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <assembly alias="DevExpress.Utils.v21.2" name="DevExpress.Utils.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="cmbEnvelopeType.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2"> <data name="cmbEnvelopeType.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2">
<value>Combo</value> <value>Combo</value>
</data> </data>
<data name="cmbEnvelopeType.Size" type="System.Drawing.Size, System.Drawing"> <data name="cmbEnvelopeType.Size" type="System.Drawing.Size, System.Drawing">
<value>363, 20</value> <value>378, 20</value>
</data> </data>
<data name="cmbEnvelopeType.TabIndex" type="System.Int32, mscorlib"> <data name="cmbEnvelopeType.TabIndex" type="System.Int32, mscorlib">
<value>5</value> <value>5</value>
@@ -251,13 +257,16 @@
<value>False</value> <value>False</value>
</data> </data>
<data name="cmbCertificationType.Location" type="System.Drawing.Point, System.Drawing"> <data name="cmbCertificationType.Location" type="System.Drawing.Point, System.Drawing">
<value>207, 162</value> <value>192, 162</value>
</data>
<data name="cmbCertificationType.Properties.Appearance.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 8.25pt</value>
</data> </data>
<data name="cmbCertificationType.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2"> <data name="cmbCertificationType.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2">
<value>Combo</value> <value>Combo</value>
</data> </data>
<data name="cmbCertificationType.Size" type="System.Drawing.Size, System.Drawing"> <data name="cmbCertificationType.Size" type="System.Drawing.Size, System.Drawing">
<value>357, 20</value> <value>372, 20</value>
</data> </data>
<data name="cmbCertificationType.TabIndex" type="System.Int32, mscorlib"> <data name="cmbCertificationType.TabIndex" type="System.Int32, mscorlib">
<value>10</value> <value>10</value>
@@ -302,13 +311,13 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="spnFirstReminderDays.Location" type="System.Drawing.Point, System.Drawing"> <data name="spnFirstReminderDays.Location" type="System.Drawing.Point, System.Drawing">
<value>207, 324</value> <value>192, 324</value>
</data> </data>
<data name="spnFirstReminderDays.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2"> <data name="spnFirstReminderDays.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2">
<value>Combo</value> <value>Combo</value>
</data> </data>
<data name="spnFirstReminderDays.Size" type="System.Drawing.Size, System.Drawing"> <data name="spnFirstReminderDays.Size" type="System.Drawing.Size, System.Drawing">
<value>357, 20</value> <value>372, 20</value>
</data> </data>
<data name="spnFirstReminderDays.TabIndex" type="System.Int32, mscorlib"> <data name="spnFirstReminderDays.TabIndex" type="System.Int32, mscorlib">
<value>12</value> <value>12</value>
@@ -329,13 +338,13 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="spnReminderIntervalDays.Location" type="System.Drawing.Point, System.Drawing"> <data name="spnReminderIntervalDays.Location" type="System.Drawing.Point, System.Drawing">
<value>207, 348</value> <value>192, 348</value>
</data> </data>
<data name="spnReminderIntervalDays.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2"> <data name="spnReminderIntervalDays.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2">
<value>Combo</value> <value>Combo</value>
</data> </data>
<data name="spnReminderIntervalDays.Size" type="System.Drawing.Size, System.Drawing"> <data name="spnReminderIntervalDays.Size" type="System.Drawing.Size, System.Drawing">
<value>357, 20</value> <value>372, 20</value>
</data> </data>
<data name="spnReminderIntervalDays.TabIndex" type="System.Int32, mscorlib"> <data name="spnReminderIntervalDays.TabIndex" type="System.Int32, mscorlib">
<value>13</value> <value>13</value>
@@ -356,13 +365,13 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="spnExpiresDays.Location" type="System.Drawing.Point, System.Drawing"> <data name="spnExpiresDays.Location" type="System.Drawing.Point, System.Drawing">
<value>207, 417</value> <value>192, 417</value>
</data> </data>
<data name="spnExpiresDays.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2"> <data name="spnExpiresDays.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2">
<value>Combo</value> <value>Combo</value>
</data> </data>
<data name="spnExpiresDays.Size" type="System.Drawing.Size, System.Drawing"> <data name="spnExpiresDays.Size" type="System.Drawing.Size, System.Drawing">
<value>357, 20</value> <value>372, 20</value>
</data> </data>
<data name="spnExpiresDays.TabIndex" type="System.Int32, mscorlib"> <data name="spnExpiresDays.TabIndex" type="System.Int32, mscorlib">
<value>15</value> <value>15</value>
@@ -383,13 +392,13 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="spnExpiresWarningDays.Location" type="System.Drawing.Point, System.Drawing"> <data name="spnExpiresWarningDays.Location" type="System.Drawing.Point, System.Drawing">
<value>207, 441</value> <value>192, 441</value>
</data> </data>
<data name="spnExpiresWarningDays.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2"> <data name="spnExpiresWarningDays.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2">
<value>Combo</value> <value>Combo</value>
</data> </data>
<data name="spnExpiresWarningDays.Size" type="System.Drawing.Size, System.Drawing"> <data name="spnExpiresWarningDays.Size" type="System.Drawing.Size, System.Drawing">
<value>357, 20</value> <value>372, 20</value>
</data> </data>
<data name="spnExpiresWarningDays.TabIndex" type="System.Int32, mscorlib"> <data name="spnExpiresWarningDays.TabIndex" type="System.Int32, mscorlib">
<value>16</value> <value>16</value>
@@ -407,13 +416,16 @@
<value>14</value> <value>14</value>
</data> </data>
<data name="cmbLanguage.Location" type="System.Drawing.Point, System.Drawing"> <data name="cmbLanguage.Location" type="System.Drawing.Point, System.Drawing">
<value>207, 186</value> <value>192, 186</value>
</data>
<data name="cmbLanguage.Properties.Appearance.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 8.25pt</value>
</data> </data>
<data name="cmbLanguage.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2"> <data name="cmbLanguage.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2">
<value>Combo</value> <value>Combo</value>
</data> </data>
<data name="cmbLanguage.Size" type="System.Drawing.Size, System.Drawing"> <data name="cmbLanguage.Size" type="System.Drawing.Size, System.Drawing">
<value>357, 20</value> <value>372, 20</value>
</data> </data>
<data name="cmbLanguage.TabIndex" type="System.Int32, mscorlib"> <data name="cmbLanguage.TabIndex" type="System.Int32, mscorlib">
<value>17</value> <value>17</value>
@@ -433,6 +445,9 @@
<data name="chkUseAccessCode.Location" type="System.Drawing.Point, System.Drawing"> <data name="chkUseAccessCode.Location" type="System.Drawing.Point, System.Drawing">
<value>27, 235</value> <value>27, 235</value>
</data> </data>
<data name="chkUseAccessCode.Properties.Appearance.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 8.25pt</value>
</data>
<data name="chkUseAccessCode.Properties.Caption" xml:space="preserve"> <data name="chkUseAccessCode.Properties.Caption" xml:space="preserve">
<value>Verwende Zugriffscode</value> <value>Verwende Zugriffscode</value>
</data> </data>
@@ -455,13 +470,13 @@
<value>16</value> <value>16</value>
</data> </data>
<data name="cmbEmailToCreator.Location" type="System.Drawing.Point, System.Drawing"> <data name="cmbEmailToCreator.Location" type="System.Drawing.Point, System.Drawing">
<value>207, 510</value> <value>192, 510</value>
</data> </data>
<data name="cmbEmailToCreator.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2"> <data name="cmbEmailToCreator.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2">
<value>Combo</value> <value>Combo</value>
</data> </data>
<data name="cmbEmailToCreator.Size" type="System.Drawing.Size, System.Drawing"> <data name="cmbEmailToCreator.Size" type="System.Drawing.Size, System.Drawing">
<value>357, 20</value> <value>372, 20</value>
</data> </data>
<data name="cmbEmailToCreator.TabIndex" type="System.Int32, mscorlib"> <data name="cmbEmailToCreator.TabIndex" type="System.Int32, mscorlib">
<value>19</value> <value>19</value>
@@ -479,13 +494,13 @@
<value>17</value> <value>17</value>
</data> </data>
<data name="cmbEmailToReceivers.Location" type="System.Drawing.Point, System.Drawing"> <data name="cmbEmailToReceivers.Location" type="System.Drawing.Point, System.Drawing">
<value>207, 534</value> <value>192, 534</value>
</data> </data>
<data name="cmbEmailToReceivers.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2"> <data name="cmbEmailToReceivers.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2">
<value>Combo</value> <value>Combo</value>
</data> </data>
<data name="cmbEmailToReceivers.Size" type="System.Drawing.Size, System.Drawing"> <data name="cmbEmailToReceivers.Size" type="System.Drawing.Size, System.Drawing">
<value>357, 20</value> <value>372, 20</value>
</data> </data>
<data name="cmbEmailToReceivers.TabIndex" type="System.Int32, mscorlib"> <data name="cmbEmailToReceivers.TabIndex" type="System.Int32, mscorlib">
<value>20</value> <value>20</value>
@@ -538,30 +553,12 @@
<data name="emptySpaceItem1.CustomizationFormText" xml:space="preserve"> <data name="emptySpaceItem1.CustomizationFormText" xml:space="preserve">
<value>emptySpaceItem1</value> <value>emptySpaceItem1</value>
</data> </data>
<data name="LayoutControlItem9.Text" xml:space="preserve">
<value>An Ersteller</value>
</data>
<data name="LayoutControlItem14.Text" xml:space="preserve">
<value>An Empfänger</value>
</data>
<data name="groupFinalEmail.Text" xml:space="preserve"> <data name="groupFinalEmail.Text" xml:space="preserve">
<value>Abschluss Email</value> <value>Abschluss Email</value>
</data> </data>
<data name="LayoutControlItem10.Text" xml:space="preserve">
<value>Gültig bis (in Tagen)</value>
</data>
<data name="LayoutControlItem11.Text" xml:space="preserve">
<value>Erinnerung vor Ablauf (in Tagen)</value>
</data>
<data name="groupExpiration.Text" xml:space="preserve"> <data name="groupExpiration.Text" xml:space="preserve">
<value>Gültigkeit</value> <value>Gültigkeit</value>
</data> </data>
<data name="LayoutControlItem6.Text" xml:space="preserve">
<value>Erste Erinnerung (in Tagen)</value>
</data>
<data name="LayoutControlItem7.Text" xml:space="preserve">
<value>Erinnerungsintervall (in Tagen)</value>
</data>
<data name="groupReminders.Text" xml:space="preserve"> <data name="groupReminders.Text" xml:space="preserve">
<value>Erinnerungen</value> <value>Erinnerungen</value>
</data> </data>
@@ -598,6 +595,24 @@
<data name="&gt;&gt;LayoutControl1.ZOrder" xml:space="preserve"> <data name="&gt;&gt;LayoutControl1.ZOrder" xml:space="preserve">
<value>0</value> <value>0</value>
</data> </data>
<data name="LayoutControlItem9.Text" xml:space="preserve">
<value>An Ersteller</value>
</data>
<data name="LayoutControlItem14.Text" xml:space="preserve">
<value>An Empfänger</value>
</data>
<data name="LayoutControlItem10.Text" xml:space="preserve">
<value>Gültig bis (in Tagen)</value>
</data>
<data name="LayoutControlItem11.Text" xml:space="preserve">
<value>Erinnerung vor Ablauf (in Tagen)</value>
</data>
<data name="LayoutControlItem6.Text" xml:space="preserve">
<value>Erste Erinnerung (in Tagen)</value>
</data>
<data name="LayoutControlItem7.Text" xml:space="preserve">
<value>Erinnerungsintervall (in Tagen)</value>
</data>
<metadata name="AdornerUIManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="AdornerUIManager1.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>
@@ -610,6 +625,9 @@
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>591, 671</value> <value>591, 671</value>
</data> </data>
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 8.25pt</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms"> <data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterScreen</value> <value>CenterScreen</value>
</data> </data>

View File

@@ -123,7 +123,7 @@
</data> </data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="SplitContainerControl1.Location" type="System.Drawing.Point, System.Drawing"> <data name="SplitContainerControl1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 59</value> <value>0, 132</value>
</data> </data>
<data name="ThumbnailEx2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> <data name="ThumbnailEx2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value> <value>Fill</value>
@@ -132,7 +132,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="ThumbnailEx2.Size" type="System.Drawing.Size, System.Drawing"> <data name="ThumbnailEx2.Size" type="System.Drawing.Size, System.Drawing">
<value>199, 600</value> <value>199, 402</value>
</data> </data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="ThumbnailEx2.TabIndex" type="System.Int32, mscorlib"> <data name="ThumbnailEx2.TabIndex" type="System.Int32, mscorlib">
@@ -172,7 +172,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="DocumentViewer1.Size" type="System.Drawing.Size, System.Drawing"> <data name="DocumentViewer1.Size" type="System.Drawing.Size, System.Drawing">
<value>917, 600</value> <value>577, 402</value>
</data> </data>
<data name="DocumentViewer1.TabIndex" type="System.Int32, mscorlib"> <data name="DocumentViewer1.TabIndex" type="System.Int32, mscorlib">
<value>3</value> <value>3</value>
@@ -205,7 +205,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>1126, 600</value> <value>786, 402</value>
</data> </data>
<data name="SplitContainerControl1.TabIndex" type="System.Int32, mscorlib"> <data name="SplitContainerControl1.TabIndex" type="System.Int32, mscorlib">
<value>15</value> <value>15</value>
@@ -397,7 +397,7 @@
<value>Combo</value> <value>Combo</value>
</data> </data>
<data name="ribbonControl1.Size" type="System.Drawing.Size, System.Drawing"> <data name="ribbonControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>1126, 88</value> <value>786, 132</value>
</data> </data>
<data name="&gt;&gt;ribbonControl1.Name" xml:space="preserve"> <data name="&gt;&gt;ribbonControl1.Name" xml:space="preserve">
<value>ribbonControl1</value> <value>ribbonControl1</value>
@@ -427,7 +427,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="barDockControlTop.Size" type="System.Drawing.Size, System.Drawing"> <data name="barDockControlTop.Size" type="System.Drawing.Size, System.Drawing">
<value>1126, 0</value> <value>786, 0</value>
</data> </data>
<data name="&gt;&gt;barDockControlTop.Name" xml:space="preserve"> <data name="&gt;&gt;barDockControlTop.Name" xml:space="preserve">
<value>barDockControlTop</value> <value>barDockControlTop</value>
@@ -445,10 +445,10 @@
<value>Bottom</value> <value>Bottom</value>
</data> </data>
<data name="barDockControlBottom.Location" type="System.Drawing.Point, System.Drawing"> <data name="barDockControlBottom.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 659</value> <value>0, 534</value>
</data> </data>
<data name="barDockControlBottom.Size" type="System.Drawing.Size, System.Drawing"> <data name="barDockControlBottom.Size" type="System.Drawing.Size, System.Drawing">
<value>1126, 0</value> <value>786, 0</value>
</data> </data>
<data name="&gt;&gt;barDockControlBottom.Name" xml:space="preserve"> <data name="&gt;&gt;barDockControlBottom.Name" xml:space="preserve">
<value>barDockControlBottom</value> <value>barDockControlBottom</value>
@@ -469,7 +469,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="barDockControlLeft.Size" type="System.Drawing.Size, System.Drawing"> <data name="barDockControlLeft.Size" type="System.Drawing.Size, System.Drawing">
<value>0, 659</value> <value>0, 534</value>
</data> </data>
<data name="&gt;&gt;barDockControlLeft.Name" xml:space="preserve"> <data name="&gt;&gt;barDockControlLeft.Name" xml:space="preserve">
<value>barDockControlLeft</value> <value>barDockControlLeft</value>
@@ -487,10 +487,10 @@
<value>Right</value> <value>Right</value>
</data> </data>
<data name="barDockControlRight.Location" type="System.Drawing.Point, System.Drawing"> <data name="barDockControlRight.Location" type="System.Drawing.Point, System.Drawing">
<value>1126, 0</value> <value>786, 0</value>
</data> </data>
<data name="barDockControlRight.Size" type="System.Drawing.Size, System.Drawing"> <data name="barDockControlRight.Size" type="System.Drawing.Size, System.Drawing">
<value>0, 659</value> <value>0, 534</value>
</data> </data>
<data name="&gt;&gt;barDockControlRight.Name" xml:space="preserve"> <data name="&gt;&gt;barDockControlRight.Name" xml:space="preserve">
<value>barDockControlRight</value> <value>barDockControlRight</value>
@@ -511,7 +511,7 @@
<value>6, 13</value> <value>6, 13</value>
</data> </data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>1689, 988</value> <value>786, 534</value>
</data> </data>
<data name="$this.Font" type="System.Drawing.Font, System.Drawing"> <data name="$this.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 8.25pt</value> <value>Segoe UI, 8.25pt</value>

View File

@@ -243,7 +243,7 @@ Partial Public Class frmFieldEditor
If oElement IsNot Nothing Then If oElement IsNot Nothing Then
oStickyNote.Tag = GetAnnotationTag(SelectedReceiver.Id, oPage, oElement.Id) oStickyNote.Tag = GetAnnotationTag(SelectedReceiver.Id, oPage, oElement.Id)
Else Else
MsgBox("No Element for Update found!") 'MsgBox("No Element for Update found!")
Logger.Error("No Element for Update found!") Logger.Error("No Element for Update found!")
End If End If
End If End If

View File

@@ -67,10 +67,12 @@ Partial Class frmMain
Me.BarButtonItem4 = New DevExpress.XtraBars.BarButtonItem() Me.BarButtonItem4 = New DevExpress.XtraBars.BarButtonItem()
Me.BarStaticItemGhost = New DevExpress.XtraBars.BarStaticItem() Me.BarStaticItemGhost = New DevExpress.XtraBars.BarStaticItem()
Me.bbtnitm2Faktor = New DevExpress.XtraBars.BarButtonItem() Me.bbtnitm2Faktor = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem2 = 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()
Me.RibbonPageGroupFunctions = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroupFunctions = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroupReceiver = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
@@ -87,6 +89,7 @@ Partial Class frmMain
Me.ColHistoryDateCompleted = New DevExpress.XtraGrid.Columns.GridColumn() Me.ColHistoryDateCompleted = New DevExpress.XtraGrid.Columns.GridColumn()
Me.ViewCompleted = New DevExpress.XtraGrid.Views.Grid.GridView() Me.ViewCompleted = New DevExpress.XtraGrid.Views.Grid.GridView()
Me.GridColumn3 = New DevExpress.XtraGrid.Columns.GridColumn() Me.GridColumn3 = New DevExpress.XtraGrid.Columns.GridColumn()
Me.GridColumn6 = New DevExpress.XtraGrid.Columns.GridColumn()
Me.GridColumn4 = New DevExpress.XtraGrid.Columns.GridColumn() Me.GridColumn4 = New DevExpress.XtraGrid.Columns.GridColumn()
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()
@@ -340,9 +343,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.bbtnitmEB, Me.bbtnitmInfoMail, Me.bbtnitm_ResendInvitation, Me.BarButtonItem3, Me.BarButtonItem4, Me.BarStaticItemGhost, Me.bbtnitm2Faktor}) 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.bbtnitm_ResendInvitation, Me.BarButtonItem3, Me.BarButtonItem4, Me.BarStaticItemGhost, Me.bbtnitm2Faktor, Me.BarButtonItem2})
resources.ApplyResources(Me.RibbonControl, "RibbonControl") resources.ApplyResources(Me.RibbonControl, "RibbonControl")
Me.RibbonControl.MaxItemId = 21 Me.RibbonControl.MaxItemId = 22
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]
@@ -507,9 +510,16 @@ Partial Class frmMain
Me.bbtnitm2Faktor.ImageOptions.SvgImage = CType(resources.GetObject("bbtnitm2Faktor.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.bbtnitm2Faktor.ImageOptions.SvgImage = CType(resources.GetObject("bbtnitm2Faktor.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.bbtnitm2Faktor.Name = "bbtnitm2Faktor" Me.bbtnitm2Faktor.Name = "bbtnitm2Faktor"
' '
'BarButtonItem2
'
resources.ApplyResources(Me.BarButtonItem2, "BarButtonItem2")
Me.BarButtonItem2.Id = 21
Me.BarButtonItem2.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.BarButtonItem2.Name = "BarButtonItem2"
'
'RibbonPage1 'RibbonPage1
' '
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageEnvelopeActions, Me.RibbonPageGroup1, Me.RibbonPageGroupFunctions}) Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageEnvelopeActions, Me.RibbonPageGroup1, Me.RibbonPageGroupFunctions, Me.RibbonPageGroupReceiver})
Me.RibbonPage1.Name = "RibbonPage1" Me.RibbonPage1.Name = "RibbonPage1"
resources.ApplyResources(Me.RibbonPage1, "RibbonPage1") resources.ApplyResources(Me.RibbonPage1, "RibbonPage1")
' '
@@ -532,14 +542,21 @@ Partial Class frmMain
'RibbonPageGroupFunctions 'RibbonPageGroupFunctions
' '
Me.RibbonPageGroupFunctions.ItemLinks.Add(Me.btnShowDocument) Me.RibbonPageGroupFunctions.ItemLinks.Add(Me.btnShowDocument)
Me.RibbonPageGroupFunctions.ItemLinks.Add(Me.bbtnitm_ResendInvitation)
Me.RibbonPageGroupFunctions.ItemLinks.Add(Me.btnContactReceiver)
Me.RibbonPageGroupFunctions.ItemLinks.Add(Me.bbtnitm2Faktor)
Me.RibbonPageGroupFunctions.ItemLinks.Add(Me.bbtnitmEB) Me.RibbonPageGroupFunctions.ItemLinks.Add(Me.bbtnitmEB)
Me.RibbonPageGroupFunctions.ItemLinks.Add(Me.bbtnitmInfoMail) Me.RibbonPageGroupFunctions.ItemLinks.Add(Me.bbtnitmInfoMail)
Me.RibbonPageGroupFunctions.Name = "RibbonPageGroupFunctions" Me.RibbonPageGroupFunctions.Name = "RibbonPageGroupFunctions"
resources.ApplyResources(Me.RibbonPageGroupFunctions, "RibbonPageGroupFunctions") resources.ApplyResources(Me.RibbonPageGroupFunctions, "RibbonPageGroupFunctions")
' '
'RibbonPageGroupReceiver
'
Me.RibbonPageGroupReceiver.Enabled = False
Me.RibbonPageGroupReceiver.ItemLinks.Add(Me.bbtnitm_ResendInvitation)
Me.RibbonPageGroupReceiver.ItemLinks.Add(Me.BarButtonItem2)
Me.RibbonPageGroupReceiver.ItemLinks.Add(Me.bbtnitm2Faktor)
Me.RibbonPageGroupReceiver.ItemLinks.Add(Me.btnContactReceiver)
Me.RibbonPageGroupReceiver.Name = "RibbonPageGroupReceiver"
resources.ApplyResources(Me.RibbonPageGroupReceiver, "RibbonPageGroupReceiver")
'
'RibbonPage2 'RibbonPage2
' '
Me.RibbonPage2.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup3}) Me.RibbonPage2.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup3})
@@ -662,7 +679,7 @@ Partial Class frmMain
' '
'ViewCompleted 'ViewCompleted
' '
Me.ViewCompleted.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.GridColumn3, Me.GridColumn4, Me.GridColumn5, Me.GridColumn7, Me.GridColumn1}) Me.ViewCompleted.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.GridColumn3, Me.GridColumn6, Me.GridColumn4, Me.GridColumn5, Me.GridColumn7, Me.GridColumn1})
Me.ViewCompleted.GridControl = Me.GridCompleted Me.ViewCompleted.GridControl = Me.GridCompleted
Me.ViewCompleted.Name = "ViewCompleted" Me.ViewCompleted.Name = "ViewCompleted"
Me.ViewCompleted.OptionsBehavior.Editable = False Me.ViewCompleted.OptionsBehavior.Editable = False
@@ -676,6 +693,13 @@ Partial Class frmMain
Me.GridColumn3.FieldName = "EnvelopeTypeTitle" Me.GridColumn3.FieldName = "EnvelopeTypeTitle"
Me.GridColumn3.Name = "GridColumn3" Me.GridColumn3.Name = "GridColumn3"
' '
'GridColumn6
'
resources.ApplyResources(Me.GridColumn6, "GridColumn6")
Me.GridColumn6.FieldName = "Comment"
Me.GridColumn6.MinWidth = 80
Me.GridColumn6.Name = "GridColumn6"
'
'GridColumn4 'GridColumn4
' '
resources.ApplyResources(Me.GridColumn4, "GridColumn4") resources.ApplyResources(Me.GridColumn4, "GridColumn4")
@@ -976,4 +1000,7 @@ Partial Class frmMain
Friend WithEvents Label1 As Label Friend WithEvents Label1 As Label
Friend WithEvents Button1 As Button Friend WithEvents Button1 As Button
Friend WithEvents txtEnvID As TextBox Friend WithEvents txtEnvID As TextBox
Friend WithEvents GridColumn6 As DevExpress.XtraGrid.Columns.GridColumn
Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageGroupReceiver As DevExpress.XtraBars.Ribbon.RibbonPageGroup
End Class End Class

View File

@@ -585,112 +585,113 @@
<data name="BarCheckItem1.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="BarCheckItem1.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
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
fwOJP3aHKtHXCAAAAABJRU5ErkJggg== YZ+Ka5P2SwnjEdBN/guJP3aHVxD0vQAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<data name="BarCheckItem1.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="BarCheckItem1.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
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
2zax9GEAAAAASUVORK5CYII= /h/Gd8Pe90T6D78n/g+lAZvbBIAteQAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<data name="bsitmInfo.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="bsitmInfo.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
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
238B0Zh/vhvUhhwAAAAASUVORK5CYII=
</value> </value>
</data> </data>
<data name="bbtnitmEB.Caption" xml:space="preserve"> <data name="bbtnitmEB.Caption" xml:space="preserve">
@@ -746,7 +747,7 @@
</value> </value>
</data> </data>
<data name="bbtnitm_ResendInvitation.Caption" xml:space="preserve"> <data name="bbtnitm_ResendInvitation.Caption" xml:space="preserve">
<value>Einladung erneut versenden</value> <value>Einladung manuell versenden</value>
</data> </data>
<data name="bbtnitm_ResendInvitation.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="bbtnitm_ResendInvitation.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
@@ -903,6 +904,28 @@
LjQsMjEuNiwxNCwxNiwxNCAgIGMtNi41LDAtMTAsNS4yLTEwLDljMCw0LDIuMSw2LjUsMi4yLDYuN0M4 LjQsMjEuNiwxNCwxNiwxNCAgIGMtNi41LDAtMTAsNS4yLTEwLDljMCw0LDIuMSw2LjUsMi4yLDYuN0M4
LjQsMjkuOSw4LjcsMzAsOSwzMEM5LjIsMzAsOS41LDI5LjksOS43LDI5Ljh6IiBjbGFzcz0iQmxhY2si LjQsMjkuOSw4LjcsMzAsOSwzMEM5LjIsMzAsOS41LDI5LjksOS43LDI5Ljh6IiBjbGFzcz0iQmxhY2si
IC8+DQogIDwvZz4NCjwvc3ZnPgs= IC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
</data>
<data name="BarButtonItem2.Caption" xml:space="preserve">
<value>AccessCode manuell versenden</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> </value>
</data> </data>
<data name="RibbonControl.Location" type="System.Drawing.Point, System.Drawing"> <data name="RibbonControl.Location" type="System.Drawing.Point, System.Drawing">
@@ -917,6 +940,9 @@
<data name="RibbonPageGroupFunctions.Text" xml:space="preserve"> <data name="RibbonPageGroupFunctions.Text" xml:space="preserve">
<value>Funktionen</value> <value>Funktionen</value>
</data> </data>
<data name="RibbonPageGroupReceiver.Text" xml:space="preserve">
<value>Empfänger</value>
</data>
<data name="RibbonPage1.Text" xml:space="preserve"> <data name="RibbonPage1.Text" xml:space="preserve">
<value>Start</value> <value>Start</value>
</data> </data>
@@ -927,13 +953,13 @@
<value>Einstellungen</value> <value>Einstellungen</value>
</data> </data>
<data name="RibbonControl.Size" type="System.Drawing.Size, System.Drawing"> <data name="RibbonControl.Size" type="System.Drawing.Size, System.Drawing">
<value>1090, 158</value> <value>1017, 158</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, 492</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>1017, 22</value>
</data> </data>
<data name="&gt;&gt;RibbonStatusBar.Name" xml:space="preserve"> <data name="&gt;&gt;RibbonStatusBar.Name" xml:space="preserve">
<value>RibbonStatusBar</value> <value>RibbonStatusBar</value>
@@ -960,7 +986,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, 469</value> <value>677, 201</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>
@@ -978,7 +1004,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, 469</value> <value>1015, 301</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>
@@ -996,7 +1022,7 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="XtraTabControlMain.Size" type="System.Drawing.Size, System.Drawing"> <data name="XtraTabControlMain.Size" type="System.Drawing.Size, System.Drawing">
<value>1090, 492</value> <value>1017, 324</value>
</data> </data>
<data name="XtraTabControlMain.TabIndex" type="System.Int32, mscorlib"> <data name="XtraTabControlMain.TabIndex" type="System.Int32, mscorlib">
<value>3</value> <value>3</value>
@@ -1098,11 +1124,23 @@
<value>True</value> <value>True</value>
</data> </data>
<data name="GridColumn3.VisibleIndex" type="System.Int32, mscorlib"> <data name="GridColumn3.VisibleIndex" type="System.Int32, mscorlib">
<value>2</value> <value>3</value>
</data> </data>
<data name="GridColumn3.Width" type="System.Int32, mscorlib"> <data name="GridColumn3.Width" type="System.Int32, mscorlib">
<value>100</value> <value>100</value>
</data> </data>
<data name="GridColumn6.Caption" xml:space="preserve">
<value>Kommentar</value>
</data>
<data name="GridColumn6.Visible" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="GridColumn6.VisibleIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="GridColumn6.Width" type="System.Int32, mscorlib">
<value>80</value>
</data>
<data name="GridColumn4.Caption" xml:space="preserve"> <data name="GridColumn4.Caption" xml:space="preserve">
<value>Status</value> <value>Status</value>
</data> </data>
@@ -1110,7 +1148,7 @@
<value>True</value> <value>True</value>
</data> </data>
<data name="GridColumn4.VisibleIndex" type="System.Int32, mscorlib"> <data name="GridColumn4.VisibleIndex" type="System.Int32, mscorlib">
<value>1</value> <value>2</value>
</data> </data>
<data name="GridColumn4.Width" type="System.Int32, mscorlib"> <data name="GridColumn4.Width" type="System.Int32, mscorlib">
<value>163</value> <value>163</value>
@@ -1134,7 +1172,7 @@
<value>True</value> <value>True</value>
</data> </data>
<data name="GridColumn7.VisibleIndex" type="System.Int32, mscorlib"> <data name="GridColumn7.VisibleIndex" type="System.Int32, mscorlib">
<value>3</value> <value>4</value>
</data> </data>
<data name="GridColumn7.Width" type="System.Int32, mscorlib"> <data name="GridColumn7.Width" type="System.Int32, mscorlib">
<value>120</value> <value>120</value>
@@ -1146,13 +1184,13 @@
<value>True</value> <value>True</value>
</data> </data>
<data name="GridColumn1.VisibleIndex" type="System.Int32, mscorlib"> <data name="GridColumn1.VisibleIndex" type="System.Int32, mscorlib">
<value>4</value> <value>5</value>
</data> </data>
<data name="GridColumn1.Width" type="System.Int32, mscorlib"> <data name="GridColumn1.Width" type="System.Int32, mscorlib">
<value>120</value> <value>120</value>
</data> </data>
<data name="GridCompleted.Size" type="System.Drawing.Size, System.Drawing"> <data name="GridCompleted.Size" type="System.Drawing.Size, System.Drawing">
<value>1088, 469</value> <value>677, 202</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>
@@ -1170,7 +1208,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>1088, 469</value> <value>1015, 303</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>
@@ -1191,7 +1229,7 @@
<value>Fill</value> <value>Fill</value>
</data> </data>
<data name="SplitContainerControl2.Location" type="System.Drawing.Point, System.Drawing"> <data name="SplitContainerControl2.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 79</value> <value>0, 43</value>
</data> </data>
<data name="GridControlData.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> <data name="GridControlData.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value> <value>Fill</value>
@@ -1200,7 +1238,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="GridControlData.Size" type="System.Drawing.Size, System.Drawing"> <data name="GridControlData.Size" type="System.Drawing.Size, System.Drawing">
<value>907, 390</value> <value>667, 159</value>
</data> </data>
<data name="GridControlData.TabIndex" type="System.Int32, mscorlib"> <data name="GridControlData.TabIndex" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
@@ -1248,7 +1286,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>1088, 390</value> <value>677, 159</value>
</data> </data>
<data name="SplitContainerControl2.TabIndex" type="System.Int32, mscorlib"> <data name="SplitContainerControl2.TabIndex" type="System.Int32, mscorlib">
<value>2</value> <value>2</value>
@@ -1464,7 +1502,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="PanelControl1.Size" type="System.Drawing.Size, System.Drawing"> <data name="PanelControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>1088, 79</value> <value>677, 64</value>
</data> </data>
<data name="PanelControl1.TabIndex" type="System.Int32, mscorlib"> <data name="PanelControl1.TabIndex" type="System.Int32, mscorlib">
<value>0</value> <value>0</value>
@@ -1482,7 +1520,7 @@
<value>1</value> <value>1</value>
</data> </data>
<data name="XtraTabPageAdmin.Size" type="System.Drawing.Size, System.Drawing"> <data name="XtraTabPageAdmin.Size" type="System.Drawing.Size, System.Drawing">
<value>1088, 469</value> <value>1015, 303</value>
</data> </data>
<data name="XtraTabPageAdmin.Text" xml:space="preserve"> <data name="XtraTabPageAdmin.Text" xml:space="preserve">
<value>Auswertungen (Admin) - BETA</value> <value>Auswertungen (Admin) - BETA</value>
@@ -1503,10 +1541,10 @@
<value>True</value> <value>True</value>
</data> </data>
<data name="Label1.Location" type="System.Drawing.Point, System.Drawing"> <data name="Label1.Location" type="System.Drawing.Point, System.Drawing">
<value>21, 18</value> <value>6, 5</value>
</data> </data>
<data name="Label1.Size" type="System.Drawing.Size, System.Drawing"> <data name="Label1.Size" type="System.Drawing.Size, System.Drawing">
<value>66, 13</value> <value>44, 9</value>
</data> </data>
<data name="Label1.TabIndex" type="System.Int32, mscorlib"> <data name="Label1.TabIndex" type="System.Int32, mscorlib">
<value>2</value> <value>2</value>
@@ -1527,10 +1565,10 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="Button1.Location" type="System.Drawing.Point, System.Drawing"> <data name="Button1.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 85</value> <value>98, 346</value>
</data> </data>
<data name="Button1.Size" type="System.Drawing.Size, System.Drawing"> <data name="Button1.Size" type="System.Drawing.Size, System.Drawing">
<value>199, 23</value> <value>809, 95</value>
</data> </data>
<data name="Button1.TabIndex" type="System.Int32, mscorlib"> <data name="Button1.TabIndex" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
@@ -1551,10 +1589,10 @@
<value>1</value> <value>1</value>
</data> </data>
<data name="txtEnvID.Location" type="System.Drawing.Point, System.Drawing"> <data name="txtEnvID.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 34</value> <value>98, 139</value>
</data> </data>
<data name="txtEnvID.Size" type="System.Drawing.Size, System.Drawing"> <data name="txtEnvID.Size" type="System.Drawing.Size, System.Drawing">
<value>100, 20</value> <value>405, 30</value>
</data> </data>
<data name="txtEnvID.TabIndex" type="System.Int32, mscorlib"> <data name="txtEnvID.TabIndex" type="System.Int32, mscorlib">
<value>0</value> <value>0</value>
@@ -1572,7 +1610,7 @@
<value>2</value> <value>2</value>
</data> </data>
<data name="XtraTabPage3.Size" type="System.Drawing.Size, System.Drawing"> <data name="XtraTabPage3.Size" type="System.Drawing.Size, System.Drawing">
<value>1088, 469</value> <value>1015, 303</value>
</data> </data>
<data name="XtraTabPage3.Text" xml:space="preserve"> <data name="XtraTabPage3.Text" xml:space="preserve">
<value>Admin Test</value> <value>Admin Test</value>
@@ -1632,7 +1670,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, 502</value> <value>1017, 334</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>
@@ -1650,16 +1688,16 @@
<value>0</value> <value>0</value>
</data> </data>
<metadata name="RefreshTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="RefreshTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>193, 17</value> <value>17, 54</value>
</metadata> </metadata>
<metadata name="SaveFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="SaveFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>316, 17</value> <value>17, 91</value>
</metadata> </metadata>
<data name="SaveFileDialog1.Filter" xml:space="preserve"> <data name="SaveFileDialog1.Filter" xml:space="preserve">
<value>PDF Files|*.pdf</value> <value>PDF Files|*.pdf</value>
</data> </data>
<metadata name="XtraSaveFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="XtraSaveFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>452, 17</value> <value>17, 128</value>
</metadata> </metadata>
<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>
@@ -1671,87 +1709,84 @@
<value>6, 13</value> <value>6, 13</value>
</data> </data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>1090, 682</value> <value>1017, 514</value>
</data> </data>
<data name="frmMain.IconOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="frmMain.IconOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
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
8g8AAAAASUVORK5CYII=
</value> </value>
</data> </data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms"> <data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
@@ -1982,6 +2017,12 @@
<data name="&gt;&gt;bbtnitm2Faktor.Type" xml:space="preserve"> <data name="&gt;&gt;bbtnitm2Faktor.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value> <value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data> </data>
<data name="&gt;&gt;BarButtonItem2.Name" xml:space="preserve">
<value>BarButtonItem2</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;RibbonPage1.Name" xml:space="preserve"> <data name="&gt;&gt;RibbonPage1.Name" xml:space="preserve">
<value>RibbonPage1</value> <value>RibbonPage1</value>
</data> </data>
@@ -2006,6 +2047,12 @@
<data name="&gt;&gt;RibbonPageGroupFunctions.Type" xml:space="preserve"> <data name="&gt;&gt;RibbonPageGroupFunctions.Type" xml:space="preserve">
<value>DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value> <value>DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data> </data>
<data name="&gt;&gt;RibbonPageGroupReceiver.Name" xml:space="preserve">
<value>RibbonPageGroupReceiver</value>
</data>
<data name="&gt;&gt;RibbonPageGroupReceiver.Type" xml:space="preserve">
<value>DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;RibbonPage2.Name" xml:space="preserve"> <data name="&gt;&gt;RibbonPage2.Name" xml:space="preserve">
<value>RibbonPage2</value> <value>RibbonPage2</value>
</data> </data>
@@ -2084,6 +2131,12 @@
<data name="&gt;&gt;GridColumn3.Type" xml:space="preserve"> <data name="&gt;&gt;GridColumn3.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value> <value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data> </data>
<data name="&gt;&gt;GridColumn6.Name" xml:space="preserve">
<value>GridColumn6</value>
</data>
<data name="&gt;&gt;GridColumn6.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;GridColumn4.Name" xml:space="preserve"> <data name="&gt;&gt;GridColumn4.Name" xml:space="preserve">
<value>GridColumn4</value> <value>GridColumn4</value>
</data> </data>

View File

@@ -1,17 +1,19 @@
Imports System.IO Imports System.ComponentModel
Imports System.IdentityModel.Metadata
Imports System.IO
Imports System.Text
Imports DevExpress.LookAndFeel Imports DevExpress.LookAndFeel
Imports DevExpress.Utils.Extensions Imports DevExpress.Utils.Extensions
Imports DevExpress.XtraCharts Imports DevExpress.XtraCharts
Imports DevExpress.XtraGrid Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Views.Grid Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraPrinting
Imports DevExpress.XtraSplashScreen Imports DevExpress.XtraSplashScreen
Imports DigitalData.GUIs.Common Imports DigitalData.GUIs.Common
Imports DigitalData.Modules.Base Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports EnvelopeGenerator.CommonServices Imports EnvelopeGenerator.CommonServices
Imports EnvelopeGenerator.CommonServices.My Imports EnvelopeGenerator.CommonServices.My
Imports System.ComponentModel
Imports DevExpress.XtraPrinting
Imports EnvelopeGenerator.Domain.Entities Imports EnvelopeGenerator.Domain.Entities
Public Class frmMain Public Class frmMain
@@ -25,6 +27,7 @@ Public Class frmMain
Private Controller As EnvelopeListController Private Controller As EnvelopeListController
Private myFileData As Byte() Private myFileData As Byte()
Private myResFileData As Byte() Private myResFileData As Byte()
Private FormLoad As Boolean = True
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.
@@ -60,6 +63,10 @@ Public Class frmMain
XtraTabControlMain.TabPages(3).PageVisible = False XtraTabControlMain.TabPages(3).PageVisible = False
End If End If
LoadEnvelopeData() LoadEnvelopeData()
Dim oXMLPath = Get_DocGrid_Layout_Filename(ViewEnvelopes.Name)
If File.Exists(oXMLPath) Then
ViewEnvelopes.RestoreLayoutFromXml(oXMLPath)
End If
End Sub End Sub
Private Sub LoadEnvelopeData() Private Sub LoadEnvelopeData()
@@ -216,6 +223,7 @@ Public Class frmMain
RibbonPageEnvelopeActions.Enabled = True RibbonPageEnvelopeActions.Enabled = True
Select Case XtraTabControlMain.SelectedTabPageIndex Select Case XtraTabControlMain.SelectedTabPageIndex
Case 1 Case 1
RibbonPageGroupReceiver.Visible = False
btnEditEnvelope.Enabled = False btnEditEnvelope.Enabled = False
btnDeleteEnvelope.Enabled = False btnDeleteEnvelope.Enabled = False
btnContactReceiver.Enabled = False btnContactReceiver.Enabled = False
@@ -225,7 +233,12 @@ Public Class frmMain
bbtnitmEB.Enabled = True bbtnitmEB.Enabled = True
bbtnitm2Faktor.Enabled = False bbtnitm2Faktor.Enabled = False
LoadEnvelopeData() LoadEnvelopeData()
Dim oXMLPath = Get_DocGrid_Layout_Filename(ViewCompleted.Name)
If File.Exists(oXMLPath) Then
ViewCompleted.RestoreLayoutFromXml(oXMLPath)
End If
Case 0 Case 0
RibbonPageGroupReceiver.Visible = True
btnEditEnvelope.Enabled = True btnEditEnvelope.Enabled = True
btnDeleteEnvelope.Enabled = True btnDeleteEnvelope.Enabled = True
btnContactReceiver.Enabled = True btnContactReceiver.Enabled = True
@@ -256,6 +269,7 @@ Public Class frmMain
Private Sub ViewEnvelopes_FocusedRowChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) Handles ViewEnvelopes.FocusedRowChanged Private Sub ViewEnvelopes_FocusedRowChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) Handles ViewEnvelopes.FocusedRowChanged
If ViewEnvelopes.FocusedRowHandle < 0 Then If ViewEnvelopes.FocusedRowHandle < 0 Then
RibbonPageGroupReceiver.Enabled = False
Exit Sub Exit Sub
End If End If
@@ -557,6 +571,7 @@ Public Class frmMain
MYUSER = oUser MYUSER = oUser
End If End If
End If End If
FormLoad = False
End Sub End Sub
Private Sub bbtnitmInfoMail_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitmInfoMail.ItemClick Private Sub bbtnitmInfoMail_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitmInfoMail.ItemClick
@@ -781,10 +796,13 @@ Public Class frmMain
End Sub End Sub
Private Sub bbtnitm2Faktor_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitm2Faktor.ItemClick Private Sub bbtnitm2Faktor_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitm2Faktor.ItemClick
Show_MF_Info
End Sub
Private Sub Show_MF_Info()
If ViewEnvelopes.FocusedRowHandle < 0 Then If ViewEnvelopes.FocusedRowHandle < 0 Then
Exit Sub Exit Sub
End If End If
Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(ViewEnvelopes.FocusedRowHandle) Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(ViewEnvelopes.FocusedRowHandle)
Dim oView As GridView = GridEnvelopes.FocusedView Dim oView As GridView = GridEnvelopes.FocusedView
If oView.Name = ViewReceivers.Name Then If oView.Name = ViewReceivers.Name Then
@@ -795,8 +813,11 @@ Public Class frmMain
If oDT.Rows.Count = 1 Then If oDT.Rows.Count = 1 Then
Dim oTFA_REG_DL = oDT.Rows(0).Item("TFA_REG_DEADLINE") Dim oTFA_REG_DL = oDT.Rows(0).Item("TFA_REG_DEADLINE")
Dim oTOTP = oDT.Rows(0).Item("TOTP_SECRET_KEY") Dim oTOTP = oDT.Rows(0).Item("TOTP_SECRET_KEY")
Dim oForm As New frm2Factor_Properties(oReceiver.EmailAddress, oTOTP, oTFA_REG_DL, DB_DD_ECM) If Not IsDBNull(oTOTP) And Not IsDBNull(oTFA_REG_DL) Then
oForm.ShowDialog() Dim oForm As New frm2Factor_Properties(oReceiver.EmailAddress, oTOTP.ToString, oTFA_REG_DL, DB_DD_ECM)
oForm.ShowDialog()
End If
End If End If
End If End If
@@ -804,7 +825,6 @@ Public Class frmMain
MsgBox(Resources.Envelope.Please_select_a_recipient_from_the_Recipients_tab, MsgBoxStyle.Information, Text) MsgBox(Resources.Envelope.Please_select_a_recipient_from_the_Recipients_tab, MsgBoxStyle.Information, Text)
End If End If
End Sub End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If txtEnvID.Text = String.Empty Then If txtEnvID.Text = String.Empty Then
Exit Sub Exit Sub
@@ -838,4 +858,116 @@ Public Class frmMain
.DbConfig = Nothing .DbConfig = Nothing
} }
End Function End Function
Private Sub BarButtonItem2_ItemClick_1(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
Dim oHandle = SplashScreenManager.ShowOverlayForm(Me)
Try
Dim oView As GridView = GridEnvelopes.FocusedView
Dim selReceiver As Receiver
If oView.Name = ViewReceivers.Name Then
selReceiver = oView.GetRow(oView.FocusedRowHandle)
Else
MsgBox(Resources.Envelope.Please_select_a_recipient_from_the_Recipients_tab, MsgBoxStyle.Information, Text)
End If
If ViewEnvelopes.FocusedRowHandle < 0 Or IsNothing(selReceiver) Then
Exit Sub
End If
Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(ViewEnvelopes.FocusedRowHandle)
If oEnvelope.UseAccessCode = True Then
Dim oController = New EnvelopeEditorController(State, oEnvelope)
Dim Documents As New BindingList(Of EnvelopeDocument)
Dim Receivers As New BindingList(Of Receiver)
Receivers = New BindingList(Of Receiver)(oController.Envelope.Receivers)
For Each oReceiver As Receiver In Receivers
If oReceiver.EmailAddress = selReceiver.EmailAddress Then
If oController.ActionService.ManuallySendAccessCode(oEnvelope, oReceiver) = True Then
Dim oMsg = Resources.Envelope.AccessCode_successfully_send.Replace("@Mail", oReceiver.EmailAddress)
MsgBox(oMsg, MsgBoxStyle.Information, Text)
End If
End If
Next
Else
MsgBox("Envelope is defined without AccessCode so far!", MsgBoxStyle.Information)
End If
Catch ex As Exception
Logger.Error(ex)
Finally
End Try
SplashScreenManager.CloseOverlayForm(oHandle)
End Sub
Private Sub ViewCompleted_Layout(sender As Object, e As EventArgs) Handles ViewCompleted.Layout
If FormLoad = True Then
Exit Sub
End If
Dim oXMLPath = Get_DocGrid_Layout_Filename(ViewCompleted.Name)
ViewCompleted.SaveLayoutToXml(oXMLPath)
bsitmInfo.Caption = "Grid Layout Envelopes Completed Saved"
End Sub
Private Sub ViewEnvelopes_Layout(sender As Object, e As EventArgs) Handles ViewEnvelopes.Layout
If FormLoad = True Then
Exit Sub
End If
Dim oXMLPath = Get_DocGrid_Layout_Filename(ViewEnvelopes.Name)
ViewEnvelopes.SaveLayoutToXml(oXMLPath)
bsitmInfo.Caption = "Grid Layout Envelopes Saved"
End Sub
Private Function Get_DocGrid_Layout_Filename(pGridViewName As String)
Dim EntityRegex As New RegularExpressions.Regex("\s+\(\d+\)")
Dim Filename As String = String.Format("{0}_UserLayout.xml", pGridViewName)
Dim oGridlayoutFullFilename = System.IO.Path.Combine(Application.UserAppDataPath(), Filename)
Return oGridlayoutFullFilename
End Function
Private Sub ViewReceivers_FocusedRowChanged(sender As Object, e As Views.Base.FocusedRowChangedEventArgs) Handles ViewReceivers.FocusedRowChanged
Dim detailView As GridView = TryCast(sender, GridView)
' Sicherstellen, dass die View gültig ist
If detailView Is Nothing Then
Exit Sub
End If
' Prüfen, ob der RowHandle gültig ist
If Not detailView.IsValidRowHandle(e.FocusedRowHandle) Then
Exit Sub
End If
Dim row = detailView.GetRow(e.FocusedRowHandle)
If row Is Nothing Then
Exit Sub
End If
Dim oReceiver As Receiver = CType(row, Receiver)
'Dim oEnvelopeTitle As String = Net.WebUtility.UrlEncode(oEnvelope.Title)
If Not IsNothing(oReceiver) Then
Dim oDT As DataTable = DB_DD_ECM.GetDatatable($"SELECT * FROM TBSIG_RECEIVER WHERE EMAIL_ADDRESS = '{oReceiver.EmailAddress}'")
If Not IsNothing(oDT) Then
If oDT.Rows.Count = 1 Then
RibbonPageGroupReceiver.Enabled = True
Dim oTFA_REG_DL = oDT.Rows(0).Item("TFA_REG_DEADLINE")
Dim oTOTP = oDT.Rows(0).Item("TOTP_SECRET_KEY")
If Not IsDBNull(oTOTP) And Not IsDBNull(oTFA_REG_DL) Then
bbtnitm2Faktor.Enabled = True
Else
bbtnitm2Faktor.Enabled = False
End If
Else
RibbonPageGroupReceiver.Enabled = False
End If
End If
End If
End Sub
End Class End Class

View File

@@ -22,7 +22,7 @@
<PackageReference Include="DigitalData.Auth.Client" Version="1.3.7" /> <PackageReference Include="DigitalData.Auth.Client" Version="1.3.7" />
<PackageReference Include="DigitalData.Core.API" Version="2.2.1" /> <PackageReference Include="DigitalData.Core.API" Version="2.2.1" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.4" /> <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.4" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.6" />
<PackageReference Include="NLog" Version="5.2.5" /> <PackageReference Include="NLog" Version="5.2.5" />
<PackageReference Include="NLog.Web.AspNetCore" Version="5.3.0" /> <PackageReference Include="NLog.Web.AspNetCore" Version="5.3.0" />
<PackageReference Include="Scalar.AspNetCore" Version="2.2.1" /> <PackageReference Include="Scalar.AspNetCore" Version="2.2.1" />

View File

@@ -40,7 +40,7 @@ try
builder.Services.AddControllers(); builder.Services.AddControllers();
//CORS Policy // CORS Policy
var allowedOrigins = config.GetSection("AllowedOrigins").Get<string[]>() ?? var allowedOrigins = config.GetSection("AllowedOrigins").Get<string[]>() ??
throw new InvalidOperationException("AllowedOrigins section is missing in the configuration."); throw new InvalidOperationException("AllowedOrigins section is missing in the configuration.");
builder.Services.AddCors(options => builder.Services.AddCors(options =>
@@ -93,7 +93,7 @@ try
Id = "Bearer" Id = "Bearer"
} }
}, },
new string[] {} Array.Empty<string>()
} }
}); });
@@ -104,8 +104,12 @@ try
} }
}); });
builder.Services.AddOpenApi(); builder.Services.AddOpenApi();
// DbContext
var connStr = config.GetConnectionString("Default") ?? throw new InvalidOperationException("There is no default connection string in appsettings.json."); //AddEF Core dbcontext
var useDbMigration = Environment.GetEnvironmentVariable("MIGRATION_TEST_MODE") == true.ToString() || config.GetValue<bool>("UseDbMigration");
var cnnStrName = useDbMigration ? "DbMigrationTest" : "Default";
var connStr = config.GetConnectionString(cnnStrName)
?? throw new InvalidOperationException($"Connection string '{cnnStrName}' is missing in the application configuration.");
builder.Services.Configure<ConnectionString>(cs => cs.Value = connStr); builder.Services.Configure<ConnectionString>(cs => cs.Value = connStr);
@@ -129,7 +133,7 @@ try
{ {
var clientParams = deferredProvider.GetOptions<ClientParams>(); var clientParams = deferredProvider.GetOptions<ClientParams>();
var publicKey = clientParams!.PublicKeys.Get(authTokenKeys.Issuer, authTokenKeys.Audience); var publicKey = clientParams!.PublicKeys.Get(authTokenKeys.Issuer, authTokenKeys.Audience);
return new List<SecurityKey>() { publicKey.SecurityKey }; return [publicKey.SecurityKey];
}, },
ValidateIssuer = true, ValidateIssuer = true,
ValidIssuer = authTokenKeys.Issuer, ValidIssuer = authTokenKeys.Issuer,
@@ -205,10 +209,10 @@ try
app.UseCors("AllowSpecificOriginsPolicy"); app.UseCors("AllowSpecificOriginsPolicy");
// Localizer // Localizer
string[] supportedCultureNames = { "de-DE", "en-US" }; string[] supportedCultureNames = ["de-DE", "en-US"];
IList<CultureInfo> list = supportedCultureNames.Select((string cn) => new CultureInfo(cn)).ToList(); IList<CultureInfo> list = [.. supportedCultureNames.Select(cn => new CultureInfo(cn))];
CultureInfo cultureInfo = list.FirstOrDefault() ?? throw new ArgumentNullException("supportedCultureNames", "Supported cultures cannot be empty."); var cultureInfo = list.FirstOrDefault() ?? throw new InvalidOperationException("There is no supported culture.");
RequestLocalizationOptions requestLocalizationOptions = new RequestLocalizationOptions var requestLocalizationOptions = new RequestLocalizationOptions
{ {
SupportedCultures = list, SupportedCultures = list,
SupportedUICultures = list SupportedUICultures = list

View File

@@ -1,5 +1,6 @@
{ {
"UseSwagger": true, "UseSwagger": true,
"UseDbMigration": true,
"DiPMode": true, "DiPMode": true,
"Logging": { "Logging": {
"LogLevel": { "LogLevel": {
@@ -10,7 +11,8 @@
"AllowedHosts": "*", "AllowedHosts": "*",
"AllowedOrigins": [ "http://localhost:4200" ], "AllowedOrigins": [ "http://localhost:4200" ],
"ConnectionStrings": { "ConnectionStrings": {
"Default": "Server=SDD-VMP04-SQL17\\DD_DEVELOP01;Database=DD_ECM;User Id=sa;Password=dd;Encrypt=false;TrustServerCertificate=True;" "Default": "Server=SDD-VMP04-SQL17\\DD_DEVELOP01;Database=DD_ECM;User Id=sa;Password=dd;Encrypt=false;TrustServerCertificate=True;",
"DbMigrationTest": "Server=SDD-VMP04-SQL17\\DD_DEVELOP01;Database=DD_ECM_DATA_MIGR_TEST;User Id=sa;Password=dd;Encrypt=false;TrustServerCertificate=True;"
}, },
"DirectorySearchOptions": { "DirectorySearchOptions": {
"ServerName": "DD-VMP01-DC01", "ServerName": "DD-VMP01-DC01",

View File

@@ -53,7 +53,6 @@ public static class DIExtensions
services.TryAddScoped<IEnvelopeReceiverRepository, EnvelopeReceiverRepository>(); services.TryAddScoped<IEnvelopeReceiverRepository, EnvelopeReceiverRepository>();
services.TryAddScoped<IEnvelopeTypeRepository, EnvelopeTypeRepository>(); services.TryAddScoped<IEnvelopeTypeRepository, EnvelopeTypeRepository>();
services.TryAddScoped<IReceiverRepository, ReceiverRepository>(); services.TryAddScoped<IReceiverRepository, ReceiverRepository>();
services.TryAddScoped<IUserReceiverRepository, UserReceiverRepository>();
services.TryAddScoped<IEnvelopeReceiverReadOnlyRepository, EnvelopeReceiverReadOnlyRepository>(); services.TryAddScoped<IEnvelopeReceiverReadOnlyRepository, EnvelopeReceiverReadOnlyRepository>();
services.AddDbRepository<EGDbContext, Config>(context => context.Configs).UseAutoMapper(); services.AddDbRepository<EGDbContext, Config>(context => context.Configs).UseAutoMapper();
@@ -67,7 +66,6 @@ public static class DIExtensions
services.AddDbRepository<EGDbContext, EnvelopeReceiver>(context => context.EnvelopeReceivers).UseAutoMapper(); services.AddDbRepository<EGDbContext, EnvelopeReceiver>(context => context.EnvelopeReceivers).UseAutoMapper();
services.AddDbRepository<EGDbContext, EnvelopeType>(context => context.EnvelopeTypes).UseAutoMapper(); services.AddDbRepository<EGDbContext, EnvelopeType>(context => context.EnvelopeTypes).UseAutoMapper();
services.AddDbRepository<EGDbContext, Receiver>(context => context.Receivers).UseAutoMapper(); services.AddDbRepository<EGDbContext, Receiver>(context => context.Receivers).UseAutoMapper();
services.AddDbRepository<EGDbContext, UserReceiver>(context => context.UserReceivers).UseAutoMapper();
services.AddDbRepository<EGDbContext, EnvelopeReceiverReadOnly>(context => context.EnvelopeReceiverReadOnlys).UseAutoMapper(); services.AddDbRepository<EGDbContext, EnvelopeReceiverReadOnly>(context => context.EnvelopeReceiverReadOnlys).UseAutoMapper();
services.AddSQLExecutor<Envelope>(); services.AddSQLExecutor<Envelope>();

View File

@@ -17,8 +17,6 @@ namespace EnvelopeGenerator.Infrastructure;
//TODO: Adding EmailOut instead of EmailOut.Abst is not correct for the arch. Re-design EmailPut consedering this. IMailDbContext shoud move to Abstraction layer (hint: in this case using DBSet in abst. will be problem because entity framework will have to be added. //TODO: Adding EmailOut instead of EmailOut.Abst is not correct for the arch. Re-design EmailPut consedering this. IMailDbContext shoud move to Abstraction layer (hint: in this case using DBSet in abst. will be problem because entity framework will have to be added.
public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
{ {
public DbSet<UserReceiver> UserReceivers { get; set; }
public DbSet<Config> Configs { get; set; } public DbSet<Config> Configs { get; set; }
public DbSet<EnvelopeReceiver> EnvelopeReceivers { get; set; } public DbSet<EnvelopeReceiver> EnvelopeReceivers { get; set; }
@@ -61,14 +59,15 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
private readonly DbTriggerParams _triggers; private readonly DbTriggerParams _triggers;
private readonly ILogger<EGDbContext> _logger; private readonly ILogger<EGDbContext>? _logger;
public EGDbContext(DbContextOptions<EGDbContext> options, IOptions<DbTriggerParams> triggerParamOptions, ILogger<EGDbContext> logger) : base(options) public bool IsMigration { get; set; } = false;
public EGDbContext(DbContextOptions<EGDbContext> options, IOptions<DbTriggerParams> triggerParamOptions, ILogger<EGDbContext>? logger = null) : base(options)
{ {
_triggers = triggerParamOptions.Value; _triggers = triggerParamOptions.Value;
_logger = logger; _logger = logger;
UserReceivers = Set<UserReceiver>();
Configs = Set<Config>(); Configs = Set<Config>();
EnvelopeReceivers = Set<EnvelopeReceiver>(); EnvelopeReceivers = Set<EnvelopeReceiver>();
Envelopes = Set<Envelope>(); Envelopes = Set<Envelope>();
@@ -106,7 +105,6 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
modelBuilder.Entity<EnvelopeHistory>(); modelBuilder.Entity<EnvelopeHistory>();
modelBuilder.Entity<EnvelopeType>(); modelBuilder.Entity<EnvelopeType>();
modelBuilder.Entity<Receiver>(); modelBuilder.Entity<Receiver>();
modelBuilder.Entity<UserReceiver>();
modelBuilder.Entity<EmailOut>(); modelBuilder.Entity<EmailOut>();
// Configure the one-to-many relationship of Envelope // Configure the one-to-many relationship of Envelope
@@ -130,17 +128,20 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
.WithMany(ed => ed.Elements) .WithMany(ed => ed.Elements)
.HasForeignKey(dre => dre.DocumentId); .HasForeignKey(dre => dre.DocumentId);
modelBuilder.Entity<EnvelopeHistory>() if (!IsMigration)
.HasOne(eh => eh.Receiver) {
.WithMany() modelBuilder.Entity<EnvelopeHistory>()
.HasForeignKey(eh => eh.UserReference) .HasOne(eh => eh.Receiver)
.HasPrincipalKey(e => e.EmailAddress); .WithMany()
.HasForeignKey(eh => eh.UserReference)
.HasPrincipalKey(e => e.EmailAddress);
modelBuilder.Entity<EnvelopeHistory>() modelBuilder.Entity<EnvelopeHistory>()
.HasOne(eh => eh.Sender) .HasOne(eh => eh.Sender)
.WithMany() .WithMany()
.HasForeignKey(eh => eh.UserReference) .HasForeignKey(eh => eh.UserReference)
.HasPrincipalKey(e => e.Email); .HasPrincipalKey(e => e.Email);
}
modelBuilder.Entity<EnvelopeReceiverReadOnly>() modelBuilder.Entity<EnvelopeReceiverReadOnly>()
.HasOne(erro => erro.Receiver) .HasOne(erro => erro.Receiver)
@@ -155,7 +156,7 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
.ForEach(tName => .ForEach(tName =>
{ {
modelBuilder.Entity<T>().ToTable(tb => tb.HasTrigger(tName)); modelBuilder.Entity<T>().ToTable(tb => tb.HasTrigger(tName));
_logger.LogInformation("Trigger '{triggerName}' has been added to the '{entityName}' entity.", tName, typeof(T).Name); _logger?.LogInformation("Trigger '{triggerName}' has been added to the '{entityName}' entity.", tName, typeof(T).Name);
}); });
// TODO: call add trigger methods with attributes and reflection // TODO: call add trigger methods with attributes and reflection
@@ -171,7 +172,6 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
AddTrigger<EnvelopeReceiverReadOnly>(); AddTrigger<EnvelopeReceiverReadOnly>();
AddTrigger<EnvelopeType>(); AddTrigger<EnvelopeType>();
AddTrigger<Receiver>(); AddTrigger<Receiver>();
AddTrigger<UserReceiver>();
AddTrigger<EmailOut>(); AddTrigger<EmailOut>();
//configure model builder for user manager tables //configure model builder for user manager tables

View File

@@ -0,0 +1,46 @@
using EnvelopeGenerator.Application.Configurations;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Options;
namespace EnvelopeGenerator.Infrastructure
{
public class EGDbContextFactory : IDesignTimeDbContextFactory<EGDbContext>
{
public EGDbContext CreateDbContext(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory()) // Önemli!
.AddJsonFile("appsettings.migration.json")
.Build();
// create DbContextOptions
var optionsBuilder = new DbContextOptionsBuilder<EGDbContext>();
optionsBuilder.UseSqlServer(config.GetConnectionString("Default"));
// create DbTriggerParams
var triggerLists = config.GetSection("DbTriggerParams").Get<Dictionary<string, List<string>>>();
var dbTriggerParams = new DbTriggerParams();
if(triggerLists is not null)
foreach (var triggerList in triggerLists)
{
if(triggerList.Value.Count == 0)
continue; // Skip empty trigger lists
var tableName = triggerList.Key;
dbTriggerParams[tableName] = new List<string>();
foreach (var trigger in triggerList.Value)
{
dbTriggerParams[tableName].Add(trigger);
}
}
var dbContext = new EGDbContext(optionsBuilder.Options, Options.Create(dbTriggerParams));
dbContext.IsMigration = true;
return dbContext;
}
}
}

View File

@@ -23,16 +23,37 @@
<ItemGroup Condition="'$(TargetFramework)' == 'net7.0'"> <ItemGroup Condition="'$(TargetFramework)' == 'net7.0'">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.20" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.20" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.20" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.20" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.20">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.20" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'"> <ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.15" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.17" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.15" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.17" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.17">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.17" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'"> <ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.5" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.5" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.6">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.6" />
</ItemGroup>
<ItemGroup>
<None Update="appsettings.migration.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup> </ItemGroup>
</Project> </Project>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,811 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace EnvelopeGenerator.Infrastructure.Migrations
{
/// <inheritdoc />
public partial class InitialCreate : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.EnsureSchema(
name: "dbo");
migrationBuilder.CreateTable(
name: "TBDD_CLIENT_USER",
schema: "dbo",
columns: table => new
{
GUID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
USER_ID = table.Column<int>(type: "int", nullable: false),
CLIENT_ID = table.Column<int>(type: "int", nullable: false),
COMMENT = table.Column<string>(type: "nvarchar(max)", nullable: true),
ADDED_WHO = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
ADDED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_TBDD_CLIENT_USER", x => x.GUID);
});
migrationBuilder.CreateTable(
name: "TBDD_GROUPS",
schema: "dbo",
columns: table => new
{
GUID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
AD_SYNC = table.Column<bool>(type: "bit", nullable: false),
Internal = table.Column<bool>(type: "bit", nullable: false),
Active = table.Column<bool>(type: "bit", nullable: false),
Comment = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: true),
ECM_FK_ID = table.Column<int>(type: "int", nullable: false),
ADDED_WHO = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
CHANGED_WHO = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
ADDED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
CHANGED_WHEN = table.Column<DateTime>(type: "datetime", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_TBDD_GROUPS", x => x.GUID);
});
migrationBuilder.CreateTable(
name: "TBDD_MODULES",
schema: "dbo",
columns: table => new
{
GUID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
SHORT_NAME = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_TBDD_MODULES", x => x.GUID);
});
migrationBuilder.CreateTable(
name: "TBDD_USER",
schema: "dbo",
columns: table => new
{
GUID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
PRENAME = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
NAME = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
USERNAME = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
SHORTNAME = table.Column<string>(type: "nvarchar(30)", maxLength: 30, nullable: true),
EMAIL = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: true),
LANGUAGE = table.Column<string>(type: "nvarchar(5)", maxLength: 5, nullable: false),
COMMENT = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true),
DELETED = table.Column<bool>(type: "bit", nullable: false),
DATE_FORMAT = table.Column<string>(type: "nvarchar(10)", maxLength: 10, nullable: false),
ACTIVE = table.Column<bool>(type: "bit", nullable: false),
GENERAL_VIEWER = table.Column<string>(type: "nvarchar(30)", maxLength: 30, nullable: false),
WAN_ENVIRONMENT = table.Column<bool>(type: "bit", nullable: false),
USERID_FK_INT_ECM = table.Column<int>(type: "int", nullable: false),
DELETED_WHEN = table.Column<DateTime>(type: "datetime2", nullable: false),
DELETED_WHO = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
ADDED_WHO = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
CHANGED_WHO = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
ADDED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
CHANGED_WHEN = table.Column<DateTime>(type: "datetime", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_TBDD_USER", x => x.GUID);
});
migrationBuilder.CreateTable(
name: "TBEMLP_EMAIL_OUT",
columns: table => new
{
GUID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
REMINDER_TYPE_ID = table.Column<int>(type: "int", nullable: false),
SENDING_PROFILE = table.Column<int>(type: "int", nullable: false),
REFERENCE_ID = table.Column<int>(type: "int", nullable: false),
REFERENCE_STRING = table.Column<string>(type: "varchar(200)", maxLength: 200, nullable: true),
ENTITY_ID = table.Column<int>(type: "int", nullable: true),
WF_ID = table.Column<int>(type: "int", nullable: false),
WF_REFERENCE = table.Column<string>(type: "varchar(200)", maxLength: 200, nullable: true),
EMAIL_ADRESS = table.Column<string>(type: "varchar(1000)", maxLength: 1000, nullable: false),
EMAIL_SUBJ = table.Column<string>(type: "varchar(500)", maxLength: 500, nullable: false),
EMAIL_BODY = table.Column<string>(type: "varchar(max)", nullable: false),
EMAIL_ATTMT1 = table.Column<string>(type: "varchar(512)", maxLength: 512, nullable: true),
EMAIL_SENT = table.Column<DateTime>(type: "datetime2", nullable: true),
COMMENT = table.Column<string>(type: "varchar(500)", maxLength: 500, nullable: true),
ADDED_WHO = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: false),
CHANGED_WHO = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: true),
CHANGED_WHEN = table.Column<DateTime>(type: "datetime2", nullable: true),
ERROR_TIMESTAMP = table.Column<DateTime>(type: "datetime2", nullable: true),
ERROR_MSG = table.Column<string>(type: "varchar(900)", maxLength: 900, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_TBEMLP_EMAIL_OUT", x => x.GUID);
});
migrationBuilder.CreateTable(
name: "TBSIG_CONFIG",
schema: "dbo",
columns: table => new
{
SENDING_PROFILE = table.Column<int>(type: "int", nullable: false),
SIGNATURE_HOST = table.Column<string>(type: "nvarchar(128)", nullable: false),
EXTERNAL_PROGRAM_NAME = table.Column<string>(type: "nvarchar(30)", nullable: true),
EXPORT_PATH = table.Column<string>(type: "nvarchar(256)", nullable: true)
},
constraints: table =>
{
});
migrationBuilder.CreateTable(
name: "TBSIG_EMAIL_TEMPLATE",
schema: "dbo",
columns: table => new
{
GUID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
NAME = table.Column<string>(type: "nvarchar(64)", nullable: true),
BODY = table.Column<string>(type: "nvarchar(max)", nullable: true),
SUBJECT = table.Column<string>(type: "nvarchar(512)", nullable: true),
ADDED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
CHANGED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_TBSIG_EMAIL_TEMPLATE", x => x.GUID);
});
migrationBuilder.CreateTable(
name: "TBSIG_ENVELOPE_CERTIFICATE",
schema: "dbo",
columns: table => new
{
GUID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
ENVELOPE_ID = table.Column<int>(type: "int", nullable: false),
ENVELOPE_UUID = table.Column<string>(type: "nvarchar(36)", nullable: false),
ENVELOPE_SUBJECT = table.Column<string>(type: "nvarchar(512)", nullable: false),
CREATOR_ID = table.Column<int>(type: "int", nullable: false),
CREATOR_NAME = table.Column<string>(type: "nvarchar(128)", nullable: false),
CREATOR_EMAIL = table.Column<string>(type: "nvarchar(128)", nullable: false),
ENVELOPE_STATUS = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_TBSIG_ENVELOPE_CERTIFICATE", x => x.GUID);
});
migrationBuilder.CreateTable(
name: "TBSIG_ENVELOPE_TYPE",
schema: "dbo",
columns: table => new
{
GUID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
TITLE = table.Column<string>(type: "nvarchar(128)", nullable: false),
LANGUAGE = table.Column<string>(type: "nvarchar(5)", nullable: true),
EXPIRES_DAYS = table.Column<int>(type: "int", nullable: false),
CERTIFICATION_TYPE = table.Column<int>(type: "int", nullable: false),
USE_ACCESS_CODE = table.Column<bool>(type: "bit", nullable: false),
FINAL_EMAIL_TO_CREATOR = table.Column<int>(type: "int", nullable: false),
FINAL_EMAIL_TO_RECEIVERS = table.Column<int>(type: "int", nullable: false),
ADDED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
CHANGED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
EXPIRES_WARNING_DAYS = table.Column<int>(type: "int", nullable: false),
SEND_REMINDER_EMAILS = table.Column<bool>(type: "bit", nullable: false),
FIRST_REMINDER_DAYS = table.Column<int>(type: "int", nullable: false),
REMINDER_INTERVAL_DAYS = table.Column<int>(type: "int", nullable: false),
CONTRACT_TYPE = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_TBSIG_ENVELOPE_TYPE", x => x.GUID);
});
migrationBuilder.CreateTable(
name: "TBDD_GROUPS_USER",
schema: "dbo",
columns: table => new
{
GUID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
USER_ID = table.Column<int>(type: "int", nullable: false),
GROUP_ID = table.Column<int>(type: "int", nullable: false),
Comment = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: true),
ADDED_WHO = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
CHANGED_WHO = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
ADDED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
CHANGED_WHEN = table.Column<DateTime>(type: "datetime", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_TBDD_GROUPS_USER", x => x.GUID);
table.ForeignKey(
name: "FK_TBDD_GROUPS_USER_TBDD_GROUPS_GROUP_ID",
column: x => x.GROUP_ID,
principalSchema: "dbo",
principalTable: "TBDD_GROUPS",
principalColumn: "GUID",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_TBDD_GROUPS_USER_TBDD_USER_USER_ID",
column: x => x.USER_ID,
principalSchema: "dbo",
principalTable: "TBDD_USER",
principalColumn: "GUID",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "TBDD_USER_MODULES",
schema: "dbo",
columns: table => new
{
GUID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
USER_ID = table.Column<int>(type: "int", nullable: false),
MODULE_ID = table.Column<int>(type: "int", nullable: false),
COMMENT = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: true),
ADDED_WHO = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
CHANGED_WHO = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_TBDD_USER_MODULES", x => x.GUID);
table.ForeignKey(
name: "FK_TBDD_USER_MODULES_TBDD_MODULES_MODULE_ID",
column: x => x.MODULE_ID,
principalSchema: "dbo",
principalTable: "TBDD_MODULES",
principalColumn: "GUID",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_TBDD_USER_MODULES_TBDD_USER_USER_ID",
column: x => x.USER_ID,
principalSchema: "dbo",
principalTable: "TBDD_USER",
principalColumn: "GUID",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "TBDD_USER_REPRESENTATION",
schema: "dbo",
columns: table => new
{
GUID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
USER_ID = table.Column<int>(type: "int", nullable: true),
REPR_GROUP = table.Column<int>(type: "int", nullable: true),
GROUP_ID = table.Column<int>(type: "int", nullable: true),
REPR_USER = table.Column<int>(type: "int", nullable: true),
VALID_FROM = table.Column<DateTime>(type: "datetime2", nullable: true),
VALID_TO = table.Column<DateTime>(type: "datetime2", nullable: true),
ADDED_WHO = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
CHANGED_WHO = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
ADDED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
CHANGED_WHEN = table.Column<DateTime>(type: "datetime", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_TBDD_USER_REPRESENTATION", x => x.GUID);
table.ForeignKey(
name: "FK_TBDD_USER_REPRESENTATION_TBDD_GROUPS_GROUP_ID",
column: x => x.GROUP_ID,
principalSchema: "dbo",
principalTable: "TBDD_GROUPS",
principalColumn: "GUID");
table.ForeignKey(
name: "FK_TBDD_USER_REPRESENTATION_TBDD_GROUPS_REPR_GROUP",
column: x => x.REPR_GROUP,
principalSchema: "dbo",
principalTable: "TBDD_GROUPS",
principalColumn: "GUID");
table.ForeignKey(
name: "FK_TBDD_USER_REPRESENTATION_TBDD_USER_REPR_USER",
column: x => x.REPR_USER,
principalSchema: "dbo",
principalTable: "TBDD_USER",
principalColumn: "GUID");
table.ForeignKey(
name: "FK_TBDD_USER_REPRESENTATION_TBDD_USER_USER_ID",
column: x => x.USER_ID,
principalSchema: "dbo",
principalTable: "TBDD_USER",
principalColumn: "GUID");
});
migrationBuilder.CreateTable(
name: "TBSIG_ENVELOPE",
schema: "dbo",
columns: table => new
{
GUID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
USER_ID = table.Column<int>(type: "int", nullable: false),
STATUS = table.Column<int>(type: "int", nullable: false),
ENVELOPE_UUID = table.Column<string>(type: "nvarchar(36)", nullable: false),
MESSAGE = table.Column<string>(type: "nvarchar(max)", nullable: true),
EXPIRES_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
EXPIRES_WARNING_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
ADDED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
CHANGED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
TITLE = table.Column<string>(type: "nvarchar(128)", nullable: true),
CONTRACT_TYPE = table.Column<int>(type: "int", nullable: false),
LANGUAGE = table.Column<string>(type: "nvarchar(5)", nullable: true),
SEND_REMINDER_EMAILS = table.Column<bool>(type: "bit", nullable: false),
FIRST_REMINDER_DAYS = table.Column<int>(type: "int", nullable: false),
REMINDER_INTERVAL_DAYS = table.Column<int>(type: "int", nullable: false),
ENVELOPE_TYPE = table.Column<int>(type: "int", nullable: false),
CERTIFICATION_TYPE = table.Column<int>(type: "int", nullable: false),
USE_ACCESS_CODE = table.Column<bool>(type: "bit", nullable: false),
FINAL_EMAIL_TO_CREATOR = table.Column<int>(type: "int", nullable: false),
FINAL_EMAIL_TO_RECEIVERS = table.Column<int>(type: "int", nullable: false),
EXPIRES_WHEN_DAYS = table.Column<int>(type: "int", nullable: false),
EXPIRES_WARNING_WHEN_DAYS = table.Column<int>(type: "int", nullable: false),
TFA_ENABLED = table.Column<bool>(type: "bit", nullable: false),
DOC_RESULT = table.Column<byte[]>(type: "varbinary(max)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_TBSIG_ENVELOPE", x => x.GUID);
table.ForeignKey(
name: "FK_TBSIG_ENVELOPE_TBDD_USER_USER_ID",
column: x => x.USER_ID,
principalSchema: "dbo",
principalTable: "TBDD_USER",
principalColumn: "GUID",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_TBSIG_ENVELOPE_TBSIG_ENVELOPE_TYPE_ENVELOPE_TYPE",
column: x => x.ENVELOPE_TYPE,
principalSchema: "dbo",
principalTable: "TBSIG_ENVELOPE_TYPE",
principalColumn: "GUID",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "TBSIG_ENVELOPE_DOCUMENT",
schema: "dbo",
columns: table => new
{
GUID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
ENVELOPE_ID = table.Column<int>(type: "int", nullable: false),
ADDED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
BYTE_DATA = table.Column<byte[]>(type: "varbinary(max)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_TBSIG_ENVELOPE_DOCUMENT", x => x.GUID);
table.ForeignKey(
name: "FK_TBSIG_ENVELOPE_DOCUMENT_TBSIG_ENVELOPE_ENVELOPE_ID",
column: x => x.ENVELOPE_ID,
principalSchema: "dbo",
principalTable: "TBSIG_ENVELOPE",
principalColumn: "GUID",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "TBSIG_RECEIVER",
schema: "dbo",
columns: table => new
{
GUID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
EMAIL_ADDRESS = table.Column<string>(type: "nvarchar(250)", maxLength: 250, nullable: false),
SIGNATURE = table.Column<string>(type: "nvarchar(64)", nullable: false),
ADDED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
TOTP_SECRET_KEY = table.Column<string>(type: "nvarchar(MAX)", nullable: true),
TFA_REG_DEADLINE = table.Column<DateTime>(type: "datetime", nullable: false),
EnvelopeId = table.Column<int>(type: "int", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_TBSIG_RECEIVER", x => x.GUID);
table.UniqueConstraint("AK_TBSIG_RECEIVER_EMAIL_ADDRESS", x => x.EMAIL_ADDRESS);
table.ForeignKey(
name: "FK_TBSIG_RECEIVER_TBSIG_ENVELOPE_EnvelopeId",
column: x => x.EnvelopeId,
principalSchema: "dbo",
principalTable: "TBSIG_ENVELOPE",
principalColumn: "GUID");
});
migrationBuilder.CreateTable(
name: "TBSIG_DOCUMENT_RECEIVER_ELEMENT",
schema: "dbo",
columns: table => new
{
GUID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
DOCUMENT_ID = table.Column<int>(type: "int", nullable: false),
RECEIVER_ID = table.Column<int>(type: "int", nullable: false),
ELEMENT_TYPE = table.Column<int>(type: "int", nullable: false),
POSITION_X = table.Column<double>(type: "float", nullable: false),
POSITION_Y = table.Column<double>(type: "float", nullable: false),
WIDTH = table.Column<double>(type: "float", nullable: false),
HEIGHT = table.Column<double>(type: "float", nullable: false),
PAGE = table.Column<int>(type: "int", nullable: false),
REQUIRED = table.Column<bool>(type: "bit", nullable: false),
TOOLTIP = table.Column<string>(type: "nvarchar(max)", nullable: true),
READ_ONLY = table.Column<bool>(type: "bit", nullable: false),
ANNOTATION_INDEX = table.Column<int>(type: "int", nullable: false),
ADDED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
CHANGED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_TBSIG_DOCUMENT_RECEIVER_ELEMENT", x => x.GUID);
table.ForeignKey(
name: "FK_TBSIG_DOCUMENT_RECEIVER_ELEMENT_TBSIG_ENVELOPE_DOCUMENT_DOCUMENT_ID",
column: x => x.DOCUMENT_ID,
principalSchema: "dbo",
principalTable: "TBSIG_ENVELOPE_DOCUMENT",
principalColumn: "GUID",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_TBSIG_DOCUMENT_RECEIVER_ELEMENT_TBSIG_RECEIVER_RECEIVER_ID",
column: x => x.RECEIVER_ID,
principalSchema: "dbo",
principalTable: "TBSIG_RECEIVER",
principalColumn: "GUID",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "TBSIG_DOCUMENT_STATUS",
schema: "dbo",
columns: table => new
{
GUID = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
ENVELOPE_ID = table.Column<int>(type: "int", nullable: false),
RECEIVER_ID = table.Column<int>(type: "int", nullable: false),
STATUS = table.Column<int>(type: "int", nullable: false),
STATUS_CHANGED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
VALUE = table.Column<string>(type: "nvarchar(max)", nullable: true),
ADDED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
CHANGED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_TBSIG_DOCUMENT_STATUS", x => x.GUID);
table.ForeignKey(
name: "FK_TBSIG_DOCUMENT_STATUS_TBSIG_ENVELOPE_ENVELOPE_ID",
column: x => x.ENVELOPE_ID,
principalSchema: "dbo",
principalTable: "TBSIG_ENVELOPE",
principalColumn: "GUID",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_TBSIG_DOCUMENT_STATUS_TBSIG_RECEIVER_RECEIVER_ID",
column: x => x.RECEIVER_ID,
principalSchema: "dbo",
principalTable: "TBSIG_RECEIVER",
principalColumn: "GUID",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "TBSIG_ENVELOPE_HISTORY",
schema: "dbo",
columns: table => new
{
GUID = table.Column<long>(type: "bigint", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
ENVELOPE_ID = table.Column<int>(type: "int", nullable: false),
USER_REFERENCE = table.Column<string>(type: "nvarchar(128)", nullable: false),
STATUS = table.Column<int>(type: "int", nullable: false),
ADDED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
ACTION_DATE = table.Column<DateTime>(type: "datetime", nullable: false),
COMMENT = table.Column<string>(type: "nvarchar(max)", nullable: true),
SenderId = table.Column<int>(type: "int", nullable: true),
ReceiverId = table.Column<int>(type: "int", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_TBSIG_ENVELOPE_HISTORY", x => x.GUID);
table.ForeignKey(
name: "FK_TBSIG_ENVELOPE_HISTORY_TBDD_USER_SenderId",
column: x => x.SenderId,
principalSchema: "dbo",
principalTable: "TBDD_USER",
principalColumn: "GUID");
table.ForeignKey(
name: "FK_TBSIG_ENVELOPE_HISTORY_TBSIG_ENVELOPE_ENVELOPE_ID",
column: x => x.ENVELOPE_ID,
principalSchema: "dbo",
principalTable: "TBSIG_ENVELOPE",
principalColumn: "GUID",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_TBSIG_ENVELOPE_HISTORY_TBSIG_RECEIVER_ReceiverId",
column: x => x.ReceiverId,
principalSchema: "dbo",
principalTable: "TBSIG_RECEIVER",
principalColumn: "GUID");
});
migrationBuilder.CreateTable(
name: "TBSIG_ENVELOPE_RECEIVER",
schema: "dbo",
columns: table => new
{
ENVELOPE_ID = table.Column<int>(type: "int", nullable: false),
RECEIVER_ID = table.Column<int>(type: "int", nullable: false),
SEQUENCE = table.Column<int>(type: "int", nullable: false),
NAME = table.Column<string>(type: "nvarchar(128)", nullable: true),
JOB_TITLE = table.Column<string>(type: "nvarchar(128)", nullable: true),
COMPANY_NAME = table.Column<string>(type: "nvarchar(128)", nullable: true),
PRIVATE_MESSAGE = table.Column<string>(type: "nvarchar(max)", nullable: true),
ACCESS_CODE = table.Column<string>(type: "nvarchar(64)", nullable: true),
ADDED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
CHANGED_WHEN = table.Column<DateTime>(type: "datetime", nullable: false),
PHONE_NUMBER = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_TBSIG_ENVELOPE_RECEIVER", x => new { x.ENVELOPE_ID, x.RECEIVER_ID });
table.ForeignKey(
name: "FK_TBSIG_ENVELOPE_RECEIVER_TBSIG_ENVELOPE_ENVELOPE_ID",
column: x => x.ENVELOPE_ID,
principalSchema: "dbo",
principalTable: "TBSIG_ENVELOPE",
principalColumn: "GUID",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_TBSIG_ENVELOPE_RECEIVER_TBSIG_RECEIVER_RECEIVER_ID",
column: x => x.RECEIVER_ID,
principalSchema: "dbo",
principalTable: "TBSIG_RECEIVER",
principalColumn: "GUID",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "TBSIG_ENVELOPE_RECEIVER_READ_ONLY",
columns: table => new
{
GUID = table.Column<long>(type: "bigint", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
ENVELOPE_ID = table.Column<long>(type: "bigint", nullable: false),
RECEIVER_MAIL = table.Column<string>(type: "nvarchar(250)", maxLength: 250, nullable: false),
DATE_VALID = table.Column<DateTime>(type: "datetime2", nullable: false),
ADDED_WHO = table.Column<string>(type: "nvarchar(250)", maxLength: 250, nullable: false),
ADDED_WHEN = table.Column<DateTime>(type: "datetime2", nullable: false),
CHANGED_WHO = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: true),
CHANGED_WHEN = table.Column<DateTime>(type: "datetime2", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_TBSIG_ENVELOPE_RECEIVER_READ_ONLY", x => x.GUID);
table.ForeignKey(
name: "FK_TBSIG_ENVELOPE_RECEIVER_READ_ONLY_TBSIG_RECEIVER_ADDED_WHO",
column: x => x.ADDED_WHO,
principalSchema: "dbo",
principalTable: "TBSIG_RECEIVER",
principalColumn: "EMAIL_ADDRESS",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_TBDD_GROUPS_USER_GROUP_ID",
schema: "dbo",
table: "TBDD_GROUPS_USER",
column: "GROUP_ID");
migrationBuilder.CreateIndex(
name: "IX_TBDD_GROUPS_USER_USER_ID",
schema: "dbo",
table: "TBDD_GROUPS_USER",
column: "USER_ID");
migrationBuilder.CreateIndex(
name: "IX_TBDD_USER_MODULES_MODULE_ID",
schema: "dbo",
table: "TBDD_USER_MODULES",
column: "MODULE_ID");
migrationBuilder.CreateIndex(
name: "IX_TBDD_USER_MODULES_USER_ID",
schema: "dbo",
table: "TBDD_USER_MODULES",
column: "USER_ID");
migrationBuilder.CreateIndex(
name: "IX_TBDD_USER_REPRESENTATION_GROUP_ID",
schema: "dbo",
table: "TBDD_USER_REPRESENTATION",
column: "GROUP_ID");
migrationBuilder.CreateIndex(
name: "IX_TBDD_USER_REPRESENTATION_REPR_GROUP",
schema: "dbo",
table: "TBDD_USER_REPRESENTATION",
column: "REPR_GROUP");
migrationBuilder.CreateIndex(
name: "IX_TBDD_USER_REPRESENTATION_REPR_USER",
schema: "dbo",
table: "TBDD_USER_REPRESENTATION",
column: "REPR_USER");
migrationBuilder.CreateIndex(
name: "IX_TBDD_USER_REPRESENTATION_USER_ID",
schema: "dbo",
table: "TBDD_USER_REPRESENTATION",
column: "USER_ID");
migrationBuilder.CreateIndex(
name: "IX_TBSIG_DOCUMENT_RECEIVER_ELEMENT_DOCUMENT_ID",
schema: "dbo",
table: "TBSIG_DOCUMENT_RECEIVER_ELEMENT",
column: "DOCUMENT_ID");
migrationBuilder.CreateIndex(
name: "IX_TBSIG_DOCUMENT_RECEIVER_ELEMENT_RECEIVER_ID",
schema: "dbo",
table: "TBSIG_DOCUMENT_RECEIVER_ELEMENT",
column: "RECEIVER_ID");
migrationBuilder.CreateIndex(
name: "IX_TBSIG_DOCUMENT_STATUS_ENVELOPE_ID",
schema: "dbo",
table: "TBSIG_DOCUMENT_STATUS",
column: "ENVELOPE_ID");
migrationBuilder.CreateIndex(
name: "IX_TBSIG_DOCUMENT_STATUS_RECEIVER_ID",
schema: "dbo",
table: "TBSIG_DOCUMENT_STATUS",
column: "RECEIVER_ID");
migrationBuilder.CreateIndex(
name: "IX_TBSIG_ENVELOPE_ENVELOPE_TYPE",
schema: "dbo",
table: "TBSIG_ENVELOPE",
column: "ENVELOPE_TYPE");
migrationBuilder.CreateIndex(
name: "IX_TBSIG_ENVELOPE_USER_ID",
schema: "dbo",
table: "TBSIG_ENVELOPE",
column: "USER_ID");
migrationBuilder.CreateIndex(
name: "IX_TBSIG_ENVELOPE_DOCUMENT_ENVELOPE_ID",
schema: "dbo",
table: "TBSIG_ENVELOPE_DOCUMENT",
column: "ENVELOPE_ID");
migrationBuilder.CreateIndex(
name: "IX_TBSIG_ENVELOPE_HISTORY_ENVELOPE_ID",
schema: "dbo",
table: "TBSIG_ENVELOPE_HISTORY",
column: "ENVELOPE_ID");
migrationBuilder.CreateIndex(
name: "IX_TBSIG_ENVELOPE_HISTORY_ReceiverId",
schema: "dbo",
table: "TBSIG_ENVELOPE_HISTORY",
column: "ReceiverId");
migrationBuilder.CreateIndex(
name: "IX_TBSIG_ENVELOPE_HISTORY_SenderId",
schema: "dbo",
table: "TBSIG_ENVELOPE_HISTORY",
column: "SenderId");
migrationBuilder.CreateIndex(
name: "IX_TBSIG_ENVELOPE_RECEIVER_RECEIVER_ID",
schema: "dbo",
table: "TBSIG_ENVELOPE_RECEIVER",
column: "RECEIVER_ID");
migrationBuilder.CreateIndex(
name: "IX_TBSIG_ENVELOPE_RECEIVER_READ_ONLY_ADDED_WHO",
table: "TBSIG_ENVELOPE_RECEIVER_READ_ONLY",
column: "ADDED_WHO");
migrationBuilder.CreateIndex(
name: "IX_TBSIG_RECEIVER_EnvelopeId",
schema: "dbo",
table: "TBSIG_RECEIVER",
column: "EnvelopeId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "TBDD_CLIENT_USER",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBDD_GROUPS_USER",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBDD_USER_MODULES",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBDD_USER_REPRESENTATION",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBEMLP_EMAIL_OUT");
migrationBuilder.DropTable(
name: "TBSIG_CONFIG",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBSIG_DOCUMENT_RECEIVER_ELEMENT",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBSIG_DOCUMENT_STATUS",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBSIG_EMAIL_TEMPLATE",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBSIG_ENVELOPE_CERTIFICATE",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBSIG_ENVELOPE_HISTORY",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBSIG_ENVELOPE_RECEIVER",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBSIG_ENVELOPE_RECEIVER_READ_ONLY");
migrationBuilder.DropTable(
name: "TBDD_MODULES",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBDD_GROUPS",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBSIG_ENVELOPE_DOCUMENT",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBSIG_RECEIVER",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBSIG_ENVELOPE",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBDD_USER",
schema: "dbo");
migrationBuilder.DropTable(
name: "TBSIG_ENVELOPE_TYPE",
schema: "dbo");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
{
"ConnectionStrings": {
"Default": "Server=SDD-VMP04-SQL17\\DD_DEVELOP01;Database=DD_ECM_DATA_MIGR_TEST;User Id=sa;Password=dd;Encrypt=false;TrustServerCertificate=True;"
},
"DbTriggerParams": {
"Envelope": [ "TBSIG_ENVELOPE_HISTORY_AFT_INS" ],
"EnvelopeHistory": [ "TBSIG_ENVELOPE_HISTORY_AFT_INS" ],
"EmailOut": [ "TBEMLP_EMAIL_OUT_AFT_INS", "TBEMLP_EMAIL_OUT_AFT_UPD" ],
"EnvelopeReceiverReadOnly": [ "TBSIG_ENVELOPE_RECEIVER_READ_ONLY_UPD" ],
"Receiver": [],
"EmailTemplate": [ "TBSIG_EMAIL_TEMPLATE_AFT_UPD" ]
}
}

View File

@@ -28,7 +28,7 @@ public static class DependencyInjection
}); });
// Add envelope generator services // Add envelope generator services
services.AddEnvelopeGeneratorInfrastructureServices(options => options.UseSqlServer(connStr)); services.AddEnvelopeGeneratorInfrastructureServices((provider, options) => options.UseSqlServer(connStr));
return services return services
.AddSingleton<CommandManager>() .AddSingleton<CommandManager>()

View File

@@ -12,7 +12,8 @@
} }
}, },
"ConnectionStrings": { "ConnectionStrings": {
"Default": "Server=SDD-VMP04-SQL17\\DD_DEVELOP01;Database=DD_ECM;User Id=sa;Password=dd;Encrypt=false;TrustServerCertificate=True;" "Default": "Server=SDD-VMP04-SQL17\\DD_DEVELOP01;Database=DD_ECM;User Id=sa;Password=dd;Encrypt=false;TrustServerCertificate=True;",
"Dev": "Server=SDD-VMP04-SQL17\\DD_DEVELOP01;Database=DD_ECM_DATA_MIGR_TEST;User Id=sa;Password=dd;Encrypt=false;TrustServerCertificate=True;"
}, },
"PSPDFKitLicenseKey": "SXCtGGY9XA-31OGUXQK-r7c6AkdLGPm2ljuyDr1qu0kkhLvydg-Do-fxpNUF4Rq3fS_xAnZRNFRHbXpE6sQ2BMcCSVTcXVJO6tPviexjpiT-HnrDEySlUERJnnvh-tmeOWprxS6BySPnSILkmaVQtUfOIUS-cUbvvEYHTvQBKbSF8di4XHQFyfv49ihr51axm3NVV3AXwh2EiKL5C5XdqBZ4sQ4O7vXBjM2zvxdPxlxdcNYmiU83uAzw7B83O_jubPzya4CdUHh_YH7Nlp2gP56MeG1Sw2JhMtfG3Rj14Sg4ctaeL9p6AEWca5dDjJ2li5tFIV2fQSsw6A_cowLu0gtMm5i8IfJXeIcQbMC2-0wGv1oe9hZYJvFMdzhTM_FiejM0agemxt3lJyzuyP8zbBSOgp7Si6A85krLWPZptyZBTG7pp7IHboUHfPMxCXqi-zMsqewOJtQBE2mjntU-lPryKnssOpMPfswwQX7QSkJYV5EMqNmEhQX6mEkp2wcqFzMC7bJQew1aO4pOpvChUaMvb1vgRek0HxLag0nwQYX2YrYGh7F_xXJs-8HNwJe8H0-eW4x4faayCgM5rB5772CCCsD9ThZcvXFrjNHHLGJ8WuBUFm6LArvSfFQdii_7j-_sqHMpeKZt26NFgivj1A==", "PSPDFKitLicenseKey": "SXCtGGY9XA-31OGUXQK-r7c6AkdLGPm2ljuyDr1qu0kkhLvydg-Do-fxpNUF4Rq3fS_xAnZRNFRHbXpE6sQ2BMcCSVTcXVJO6tPviexjpiT-HnrDEySlUERJnnvh-tmeOWprxS6BySPnSILkmaVQtUfOIUS-cUbvvEYHTvQBKbSF8di4XHQFyfv49ihr51axm3NVV3AXwh2EiKL5C5XdqBZ4sQ4O7vXBjM2zvxdPxlxdcNYmiU83uAzw7B83O_jubPzya4CdUHh_YH7Nlp2gP56MeG1Sw2JhMtfG3Rj14Sg4ctaeL9p6AEWca5dDjJ2li5tFIV2fQSsw6A_cowLu0gtMm5i8IfJXeIcQbMC2-0wGv1oe9hZYJvFMdzhTM_FiejM0agemxt3lJyzuyP8zbBSOgp7Si6A85krLWPZptyZBTG7pp7IHboUHfPMxCXqi-zMsqewOJtQBE2mjntU-lPryKnssOpMPfswwQX7QSkJYV5EMqNmEhQX6mEkp2wcqFzMC7bJQew1aO4pOpvChUaMvb1vgRek0HxLag0nwQYX2YrYGh7F_xXJs-8HNwJe8H0-eW4x4faayCgM5rB5772CCCsD9ThZcvXFrjNHHLGJ8WuBUFm6LArvSfFQdii_7j-_sqHMpeKZt26NFgivj1A==",
"Content-Security-Policy": [ // The first format parameter {0} will be replaced by the nonce value. "Content-Security-Policy": [ // The first format parameter {0} will be replaced by the nonce value.

View File

@@ -18,7 +18,7 @@ public class Mock
builder.Configuration.AddJsonFile(configPath, optional: true, reloadOnChange: true); builder.Configuration.AddJsonFile(configPath, optional: true, reloadOnChange: true);
builder.Services builder.Services
.AddEnvelopeGeneratorInfrastructureServices(opt => .AddEnvelopeGeneratorInfrastructureServices((provider, opt) =>
{ {
if (useRealDb) if (useRealDb)
{ {

View File

@@ -1,18 +1,17 @@
using EnvelopeGenerator.Web.Services; using EnvelopeGenerator.Web.Services;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.Web.Controllers namespace EnvelopeGenerator.Web.Controllers;
public class BaseController : Controller
{ {
public class BaseController : Controller protected readonly DatabaseService database;
protected readonly ILogger _logger;
public BaseController(DatabaseService database, ILogger logger)
{ {
protected readonly DatabaseService database; this.database = database;
_logger = logger;
protected readonly ILogger _logger;
public BaseController(DatabaseService database, ILogger logger)
{
this.database = database;
_logger = logger;
}
} }
} }

View File

@@ -2113,7 +2113,7 @@
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.15" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.20" />
<PackageReference Include="Microsoft.Extensions.Caching.SqlServer" Version="7.0.20" /> <PackageReference Include="Microsoft.Extensions.Caching.SqlServer" Version="7.0.20" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="NLog" Version="5.2.5" /> <PackageReference Include="NLog" Version="5.2.5" />

View File

@@ -88,7 +88,10 @@ try
} }
//AddEF Core dbcontext //AddEF Core dbcontext
var connStr = config.GetConnectionString(Key.Default) ?? throw new InvalidOperationException("There is no default connection string in appsettings.json."); var useDbMigration = Environment.GetEnvironmentVariable("MIGRATION_TEST_MODE") == true.ToString() || config.GetValue<bool>("UseDbMigration");
var cnnStrName = useDbMigration ? Key.DbMigrationTest : Key.Default;
var connStr = config.GetConnectionString(cnnStrName)
?? throw new InvalidOperationException($"Connection string '{cnnStrName}' is missing in the application configuration.");
builder.Services.AddDistributedSqlServerCache(options => builder.Services.AddDistributedSqlServerCache(options =>
{ {

View File

@@ -16,7 +16,7 @@
"ASPNETCORE_ENVIRONMENT": "Development" "ASPNETCORE_ENVIRONMENT": "Development"
} }
}, },
"swagger": { "https": {
"commandName": "Project", "commandName": "Project",
"launchBrowser": true, "launchBrowser": true,
"launchUrl": "swagger", "launchUrl": "swagger",
@@ -25,6 +25,17 @@
}, },
"dotnetRunMessages": true, "dotnetRunMessages": true,
"applicationUrl": "https://localhost:7202;http://localhost:5009" "applicationUrl": "https://localhost:7202;http://localhost:5009"
},
"httpsDbMigration": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"MIGRATION_TEST_MODE": "true"
},
"dotnetRunMessages": true,
"applicationUrl": "https://localhost:7202;http://localhost:5009"
} }
}, },
"iisSettings": { "iisSettings": {

View File

@@ -1,6 +1,7 @@
{ {
"DiPMode": false, //Please be careful when enabling Development in Production (DiP) mode. It allows Swagger and test controllers to be enabled in a production environment. "DiPMode": false, //Please be careful when enabling Development in Production (DiP) mode. It allows Swagger and test controllers to be enabled in a production environment.
"EnableSwagger": true, "EnableSwagger": true,
"UseDbMigration": false,
"EnableTestControllers": true, "EnableTestControllers": true,
"DetailedErrors": true, "DetailedErrors": true,
"Logging": { "Logging": {
@@ -12,7 +13,8 @@
} }
}, },
"ConnectionStrings": { "ConnectionStrings": {
"Default": "Server=SDD-VMP04-SQL17\\DD_DEVELOP01;Database=DD_ECM;User Id=sa;Password=dd;Encrypt=false;TrustServerCertificate=True;" "Default": "Server=SDD-VMP04-SQL17\\DD_DEVELOP01;Database=DD_ECM;User Id=sa;Password=dd;Encrypt=false;TrustServerCertificate=True;",
"DbMigrationTest": "Server=SDD-VMP04-SQL17\\DD_DEVELOP01;Database=DD_ECM_DATA_MIGR_TEST;User Id=sa;Password=dd;Encrypt=false;TrustServerCertificate=True;"
}, },
"PSPDFKitLicenseKey": "SXCtGGY9XA-31OGUXQK-r7c6AkdLGPm2ljuyDr1qu0kkhLvydg-Do-fxpNUF4Rq3fS_xAnZRNFRHbXpE6sQ2BMcCSVTcXVJO6tPviexjpiT-HnrDEySlUERJnnvh-tmeOWprxS6BySPnSILkmaVQtUfOIUS-cUbvvEYHTvQBKbSF8di4XHQFyfv49ihr51axm3NVV3AXwh2EiKL5C5XdqBZ4sQ4O7vXBjM2zvxdPxlxdcNYmiU83uAzw7B83O_jubPzya4CdUHh_YH7Nlp2gP56MeG1Sw2JhMtfG3Rj14Sg4ctaeL9p6AEWca5dDjJ2li5tFIV2fQSsw6A_cowLu0gtMm5i8IfJXeIcQbMC2-0wGv1oe9hZYJvFMdzhTM_FiejM0agemxt3lJyzuyP8zbBSOgp7Si6A85krLWPZptyZBTG7pp7IHboUHfPMxCXqi-zMsqewOJtQBE2mjntU-lPryKnssOpMPfswwQX7QSkJYV5EMqNmEhQX6mEkp2wcqFzMC7bJQew1aO4pOpvChUaMvb1vgRek0HxLag0nwQYX2YrYGh7F_xXJs-8HNwJe8H0-eW4x4faayCgM5rB5772CCCsD9ThZcvXFrjNHHLGJ8WuBUFm6LArvSfFQdii_7j-_sqHMpeKZt26NFgivj1A==", "PSPDFKitLicenseKey": "SXCtGGY9XA-31OGUXQK-r7c6AkdLGPm2ljuyDr1qu0kkhLvydg-Do-fxpNUF4Rq3fS_xAnZRNFRHbXpE6sQ2BMcCSVTcXVJO6tPviexjpiT-HnrDEySlUERJnnvh-tmeOWprxS6BySPnSILkmaVQtUfOIUS-cUbvvEYHTvQBKbSF8di4XHQFyfv49ihr51axm3NVV3AXwh2EiKL5C5XdqBZ4sQ4O7vXBjM2zvxdPxlxdcNYmiU83uAzw7B83O_jubPzya4CdUHh_YH7Nlp2gP56MeG1Sw2JhMtfG3Rj14Sg4ctaeL9p6AEWca5dDjJ2li5tFIV2fQSsw6A_cowLu0gtMm5i8IfJXeIcQbMC2-0wGv1oe9hZYJvFMdzhTM_FiejM0agemxt3lJyzuyP8zbBSOgp7Si6A85krLWPZptyZBTG7pp7IHboUHfPMxCXqi-zMsqewOJtQBE2mjntU-lPryKnssOpMPfswwQX7QSkJYV5EMqNmEhQX6mEkp2wcqFzMC7bJQew1aO4pOpvChUaMvb1vgRek0HxLag0nwQYX2YrYGh7F_xXJs-8HNwJe8H0-eW4x4faayCgM5rB5772CCCsD9ThZcvXFrjNHHLGJ8WuBUFm6LArvSfFQdii_7j-_sqHMpeKZt26NFgivj1A==",
"Content-Security-Policy": [ // The first format parameter {0} will be replaced by the nonce value. "Content-Security-Policy": [ // The first format parameter {0} will be replaced by the nonce value.

View File

@@ -0,0 +1,74 @@
# 📄 PSPDFKit-Integration Vanilla JavaScript
Dieses Projekt zeigt, wie die PDF-Anzeige- und Signaturbibliothek [PSPDFKit](https://www.nutrient.io/sdk/web/getting-started/other-frameworks/javascript/) mithilfe von **Vanilla JavaScript** integriert werden kann.
## 🚀 Verwendungszweck
PSPDFKit wurde in der Webanwendung verwendet, um PDF-Dokumente:
- anzuzeigen,
- zu signieren,
- mit Anmerkungen zu versehen,
- Formularfelder auszufüllen.
Benutzer können Dokumente **direkt über den Browser signieren und versenden**.
---
## 🔧 Wo und wie wurde PSPDFKit verwendet?
### 1. PSPDFKit laden
PSPDFKit wurde mit der Funktion `loadPSPDFKit` in `UI.js` gestartet:
```js
PSPDFKit.load({
container: #app,
document: arrayBuffer,
licenseKey: YOUR_LICENSE_KEY,
...
})
```
### 2. Anmerkungen und Formularfelder
In `annotation.js` werden die folgenden Felder dynamisch zu PDF-Dokumenten hinzugefügt:
- **Signaturfeld** (`SignatureFormField`)
- **Position** (`TextFormField`)
- **Stadt** (`TextFormField`)
- **Datum** (`TextFormField`, wird automatisch mit dem heutigen Datum ausgefüllt)
- **Bezeichnungen** (`Ort`, `Position`, `Date`) dies sind nur lesbare Textfelder.
- **Rahmen für Signaturbild** wird dynamisch erstellt und platziert, wenn der Benutzer unterschreibt.
Die Felder werden entsprechend ihrer Position auf dem PDF berechnet und für jedes Feld wird eine eindeutige ID erstellt.
---
### 3. Anpassungen der Symbolleiste
In `UI.js` ist die Standard-Symbolleiste (`toolbarItems`) von PSPDFKit konfiguriert:
- Es werden nur zulässige Elemente (`sidebar`, `zoom`, `pager`, `search` usw.) angezeigt.
- Je nach Benutzerberechtigung (z. B. schreibgeschützt oder beschreibbar) werden die folgenden speziellen Schaltflächen dynamisch hinzugefügt:
**Beschreibbarer Modus:**
- `Teilen` (SHARE)
- `Logout` (LOGOUT)
- `Zurücksetzen` (RESET)
- `Ablehnen` (REJECT)
- `Finalisieren` (FINISH)
**Nur-Lesemodus:**
- Die Schaltfläche `Teilen` kopiert nur den Link in die Zwischenablage (COPY_URL)
Für mobile Geräte werden zusätzlich vereinfachte Schaltflächen angezeigt.
---
### 📁 Wichtige Dateien
| Datei | Beschreibung |
|-------------------|-----------------------------------------------|
| `app.js` | Hauptanwendungsklasse, Dokumentladen und -steuerung |
| `ui.js` | PSPDFKit-UI-Einrichtung und Symbolleistenverwaltung |
| `annotation.js` | Erstellen und Löschen von Anmerkungsfeldern |