Compare commits

..

14 Commits

Author SHA1 Message Date
Developer 02
a8a768d7d6 refactor(.Form): Aktualisiert, um die Domain zu verwenden 2025-05-20 17:30:57 +02:00
Developer 02
31c4a8a20f chore(EnvelopeGenerator.Domain): DigitalData.EmailProfilerDispatcher.Abstraction.Attributes hinzufügen.
- Aktualisieren Sie DigitalData.EmailProfilerDispatcher & -.Abstraction in verwandten Projekten.
2025-05-20 16:59:26 +02:00
Developer 02
e98abde5ff refactor(domain): Hinzufügen von bedingten Referenzen für .net framework 2025-05-20 16:01:51 +02:00
Developer 02
49497dafd1 Update project file for framework-specific settings
Added conditional property groups in `EnvelopeGenerator.Domain.csproj` to manage `ImplicitUsings` and `LangVersion` based on the target framework. Set `ImplicitUsings` to `disable` and `LangVersion` to `7.3` for `net462`, while enabling `ImplicitUsings` and using `latest` for `net7.0`, `net8.0`, and `net9.0`.
2025-05-20 15:50:39 +02:00
Developer 02
08e1187124 Refactor namespaces and simplify DTOs
Updated namespaces to align with the new DigitalData.Core structure, replacing `DigitalData.Core.Abstractions` with `DigitalData.Core.Application.Interfaces` and `DigitalData.Core.Client.Interface`. Removed the `IUnique<int>` interface from several DTOs, simplifying their design and altering the handling of entity identification. Updated project files to reflect new dependency versions for improved compatibility and features. Cleaned up using directives to remove obsolete references, enhancing code maintainability.
2025-05-20 15:14:58 +02:00
Developer 02
1b923dc93b Update DigitalData.Core package references
Updated `DigitalData.Core.Abstractions` to version `4.0.0` and `DigitalData.Core.Application` to version `3.3.0` across multiple project files. Also upgraded `DigitalData.Core.Infrastructure` to version `2.1.0` in `Infrastructure.csproj`. These changes may include important bug fixes, new features, and performance improvements.
2025-05-20 10:58:57 +02:00
Developer 02
bdf2527fc1 Refactor using directives and add User entity
- Updated `using` directives in `Config.cs` and `EnvelopeType.cs` to include additional namespaces and removed `DigitalData.Core.Abstractions`.
- Adjusted formatting for `StatusName` and `IsAlreadySent` properties in `Envelope.cs` for consistency.
- Simplified `User` property in `Envelope.cs` by removing the namespace prefix.
- Introduced a new `User` class in `User.cs` with various properties and data annotations for database mapping.
- Removed the `<Nullable>` property from `EnvelopeGenerator.Domain.csproj`, which may impact nullability handling.
2025-05-16 09:56:44 +02:00
Developer 02
1a69478f48 Refactor entity classes for non-nullable properties
Removed nullable types and `init` properties, replacing them with standard getters and setters in various entity classes. Updated properties like `DocumentPath`, `SendingProfile`, and `SignatureHost` to be non-nullable and added required attributes.

Modified the project file to include `net462` as a target framework and added a reference for `System.ComponentModel.Annotations`. Removed the `IUnique<int>` interface from several classes to simplify uniqueness management.

These changes improve data integrity and usability across the entity classes.
2025-05-14 09:16:02 +02:00
Developer 02
83d29bf78d Add EmailProfilerDispatcher and enhance logging
Included the DigitalData.EmailProfilerDispatcher namespace in Program.cs for email profiling functionality. Removed Microsoft.Extensions.DependencyInjection namespace to streamline dependency management. Enhanced logging configuration by adding EnableDetailedErrors() for improved error messages during development while retaining EnableSensitiveDataLogging().
2025-05-13 13:44:13 +02:00
Developer 02
bc45aadf27 Refactor RecordAsync object initialization
Updated the `RecordAsync` method in the `EnvelopeHistoryService` class to use an explicit object initializer with braces for creating a new object in the `CreateAsync` method. This change improves code clarity while maintaining the same functionality.
2025-05-13 11:21:01 +02:00
Developer 02
7e66cd4dae Refactor DTOs for improved structure and documentation
Transitioned from records to classes for flexibility, added XML documentation for clarity, and updated property definitions to use standard getters and setters. Introduced the `required` keyword for essential properties, removed unnecessary constructors, and enhanced property descriptions for better readability. Additionally, overridden `GetHashCode` in `ReceiverReadDto` for proper collection behavior.
2025-05-13 11:05:43 +02:00
Developer 02
cc11d70a27 Refactor DTOs to classes with enhanced properties
Changed `EnvelopeReceiverReadOnlyDto` and `EnvelopeReceiverReadOnlyUpdateDto` from records to classes, converting properties to standard get/set accessors and adding documentation comments. Introduced a default value for `ChangedWhen` in `EnvelopeReceiverReadOnlyUpdateDto`.

Modified `ReceiverCreateDto` to a class structure, updating properties to use init-only accessors and encapsulating SHA256 hash logic in a private field. Retained the `AddedWhen` property with its default value.
2025-05-13 09:56:56 +02:00
Developer 02
02aeaea8a9 Refactor EnvelopeHistoryDto to use properties
The EnvelopeHistoryDto class has been changed from a record type with positional parameters to a traditional class structure with explicit properties. This refactor improves readability and maintainability, and includes XML documentation for each property. The GetHashCode method has also been overridden to ensure uniqueness based on the Id property.
2025-05-12 16:36:21 +02:00
Developer 02
05867cc645 Update DIExtensions for enhanced DbContext configuration
Modified the `AddEnvelopeGeneratorInfrastructureServices` method to accept a service provider, allowing for more complex DbContext configurations. Added a using directive for `Microsoft.Extensions.DependencyInjection` in `Program.cs`. Updated the method call to utilize the new signature, enabling logging of SQL commands and sensitive data during database operations.
2025-05-12 16:35:48 +02:00
105 changed files with 1316 additions and 739 deletions

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Client; using DigitalData.Core.Client.Interface;
namespace EnvelopeGenerator.Application.Configurations; namespace EnvelopeGenerator.Application.Configurations;
/// <summary> /// <summary>

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Application.Interfaces.Repository;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
namespace EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Application.Contracts.Repositories;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Application.Interfaces.Repository;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
namespace EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Application.Contracts.Repositories;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Application.Interfaces.Repository;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
namespace EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Application.Contracts.Repositories;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Application.Interfaces.Repository;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
using static EnvelopeGenerator.Common.Constants; using static EnvelopeGenerator.Common.Constants;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Application.Interfaces.Repository;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
namespace EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Application.Contracts.Repositories;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Application.Interfaces.Repository;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
namespace EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Application.Contracts.Repositories;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Application.Interfaces.Repository;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
namespace EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Application.Contracts.Repositories;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Application.Interfaces.Repository;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
namespace EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Application.Contracts.Repositories;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Application.Interfaces.Repository;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
namespace EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Application.Contracts.Repositories;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Application.Interfaces.Repository;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
namespace EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Application.Contracts.Repositories;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Application.Interfaces.Repository;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
namespace EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Application.Contracts.Repositories;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Application.Interfaces.Repository;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
namespace EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Application.Contracts.Repositories;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Application.Interfaces.Repository;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
namespace EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Application.Contracts.Repositories;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Application; using DigitalData.Core.Application.Interfaces;
using DigitalData.Core.DTO; using DigitalData.Core.DTO;
using EnvelopeGenerator.Application.DTOs; using EnvelopeGenerator.Application.DTOs;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Application; using DigitalData.Core.Application.Interfaces;
using EnvelopeGenerator.Application.DTOs; using EnvelopeGenerator.Application.DTOs;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Application; using DigitalData.Core.Application.Interfaces;
using EnvelopeGenerator.Application.DTOs; using EnvelopeGenerator.Application.DTOs;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
namespace EnvelopeGenerator.Application.Contracts.Services; namespace EnvelopeGenerator.Application.Contracts.Services;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Application; using DigitalData.Core.Application.Interfaces;
using DigitalData.Core.DTO; using DigitalData.Core.DTO;
using EnvelopeGenerator.Application.DTOs; using EnvelopeGenerator.Application.DTOs;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Application; using DigitalData.Core.Application.Interfaces;
using EnvelopeGenerator.Application.DTOs; using EnvelopeGenerator.Application.DTOs;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Application; using DigitalData.Core.Application.Interfaces;
using EnvelopeGenerator.Application.DTOs; using EnvelopeGenerator.Application.DTOs;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Application; using DigitalData.Core.Application.Interfaces;
using DigitalData.Core.DTO; using DigitalData.Core.DTO;
using EnvelopeGenerator.Application.DTOs.EnvelopeHistory; using EnvelopeGenerator.Application.DTOs.EnvelopeHistory;
using EnvelopeGenerator.Application.DTOs.Receiver; using EnvelopeGenerator.Application.DTOs.Receiver;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Application; using DigitalData.Core.Application.Interfaces;
using EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly; using EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;

View File

@@ -1,5 +1,5 @@
using CommandDotNet; using CommandDotNet;
using DigitalData.Core.Abstractions.Application; using DigitalData.Core.Application.Interfaces;
using DigitalData.Core.DTO; using DigitalData.Core.DTO;
using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver; using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver;
using EnvelopeGenerator.Application.DTOs.Messaging; using EnvelopeGenerator.Application.DTOs.Messaging;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Application; using DigitalData.Core.Application.Interfaces;
using DigitalData.Core.DTO; using DigitalData.Core.DTO;
using EnvelopeGenerator.Application.DTOs; using EnvelopeGenerator.Application.DTOs;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Application; using DigitalData.Core.Application.Interfaces;
using EnvelopeGenerator.Application.DTOs; using EnvelopeGenerator.Application.DTOs;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;

View File

@@ -1,5 +1,5 @@
using DigitalData.Core.Abstractions; using DigitalData.Core.Abstractions;
using DigitalData.Core.Abstractions.Application; using DigitalData.Core.Application.Interfaces;
using DigitalData.Core.DTO; using DigitalData.Core.DTO;
using EnvelopeGenerator.Application.DTOs.Receiver; using EnvelopeGenerator.Application.DTOs.Receiver;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
@@ -12,5 +12,5 @@ public interface IReceiverService : ICRUDService<ReceiverCreateDto, ReceiverRead
Task<Result> DeleteByAsync(string? emailAddress = null, string? signature = null); Task<Result> DeleteByAsync(string? emailAddress = null, string? signature = null);
Task<Result> UpdateAsync<TUpdateDto>(TUpdateDto updateDto) where TUpdateDto : IUnique<int>; Task<Result> UpdateAsync<TUpdateDto>(TUpdateDto updateDto);
} }

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Application; using DigitalData.Core.Application.Interfaces;
using EnvelopeGenerator.Application.DTOs; using EnvelopeGenerator.Application.DTOs;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;

View File

@@ -1,21 +1,35 @@
using DigitalData.Core.Abstractions; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json.Serialization;
namespace EnvelopeGenerator.Application.DTOs namespace EnvelopeGenerator.Application.DTOs;
{
/// <summary>
/// Data Transfer Object representing configuration settings.
/// </summary>
[ApiExplorerSettings(IgnoreApi = true)] [ApiExplorerSettings(IgnoreApi = true)]
public record ConfigDto( public class ConfigDto
string DocumentPath,
int SendingProfile,
string SignatureHost,
string ExternalProgramName,
string ExportPath) : IUnique<int>
{ {
[NotMapped] /// <summary>
[JsonIgnore] /// Gets or sets the path to the document.
[Obsolete("Configuration does not have an ID; it represents a single table in the database.")] /// </summary>
public int Id => throw new InvalidOperationException("This configuration does not support an ID as it represents a single row in the database."); public string DocumentPath { get; set; }
};
/// <summary>
/// Gets or sets the sending profile identifier.
/// </summary>
public int SendingProfile { get; set; }
/// <summary>
/// Gets or sets the signature host URL or name.
/// </summary>
public string SignatureHost { get; set; }
/// <summary>
/// Gets or sets the name of the external program.
/// </summary>
public string ExternalProgramName { get; set; }
/// <summary>
/// Gets or sets the path where exports will be saved.
/// </summary>
public string ExportPath { get; set; }
} }

View File

@@ -1,26 +1,95 @@
using DigitalData.Core.Abstractions; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.Application.DTOs namespace EnvelopeGenerator.Application.DTOs;
{
/// <summary>
/// Data Transfer Object representing a positioned element assigned to a document receiver.
/// </summary>
[ApiExplorerSettings(IgnoreApi = true)] [ApiExplorerSettings(IgnoreApi = true)]
public record DocumentReceiverElementDto( public class DocumentReceiverElementDto
int Id, {
int DocumentId, /// <summary>
int ReceiverId, /// Gets or sets the unique identifier of the element.
int ElementType, /// </summary>
double X, public int Id { get; set; }
double Y,
double Width, /// <summary>
double Height, /// Gets or sets the identifier of the associated document.
int Page, /// </summary>
bool Required, public int DocumentId { get; set; }
string? Tooltip,
bool ReadOnly, /// <summary>
int AnnotationIndex, /// Gets or sets the identifier of the receiver.
DateTime AddedWhen, /// </summary>
DateTime? ChangedWhen, public int ReceiverId { get; set; }
double Top,
double Left /// <summary>
): IUnique<int>; /// Gets or sets the type of the element.
/// </summary>
public int ElementType { get; set; }
/// <summary>
/// Gets or sets the X coordinate of the element.
/// </summary>
public double X { get; set; }
/// <summary>
/// Gets or sets the Y coordinate of the element.
/// </summary>
public double Y { get; set; }
/// <summary>
/// Gets or sets the width of the element.
/// </summary>
public double Width { get; set; }
/// <summary>
/// Gets or sets the height of the element.
/// </summary>
public double Height { get; set; }
/// <summary>
/// Gets or sets the page number where the element appears.
/// </summary>
public int Page { get; set; }
/// <summary>
/// Gets or sets a value indicating whether the element is required.
/// </summary>
public bool Required { get; set; }
/// <summary>
/// Gets or sets the tooltip text for the element.
/// </summary>
public string? Tooltip { get; set; }
/// <summary>
/// Gets or sets a value indicating whether the element is read-only.
/// </summary>
public bool ReadOnly { get; set; }
/// <summary>
/// Gets or sets the annotation index for ordering or reference.
/// </summary>
public int AnnotationIndex { get; set; }
/// <summary>
/// Gets or sets the timestamp when the element was added.
/// </summary>
public DateTime AddedWhen { get; set; }
/// <summary>
/// Gets or sets the timestamp when the element was last changed, if applicable.
/// </summary>
public DateTime? ChangedWhen { get; set; }
/// <summary>
/// Gets or sets the top position of the element (in layout terms).
/// </summary>
public double Top { get; set; }
/// <summary>
/// Gets or sets the left position of the element (in layout terms).
/// </summary>
public double Left { get; set; }
} }

View File

@@ -1,18 +1,50 @@
using DigitalData.Core.Abstractions; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.Application.DTOs namespace EnvelopeGenerator.Application.DTOs;
{
/// <summary>
/// Data Transfer Object representing the status of a document for a specific receiver.
/// </summary>
[ApiExplorerSettings(IgnoreApi = true)] [ApiExplorerSettings(IgnoreApi = true)]
public record DocumentStatusDto( public class DocumentStatusDto
int Id,
int EnvelopeId,
int ReceiverId,
int Status,
DateTime? StatusChangedWhen,
DateTime AddedWhen,
DateTime? ChangedWhen) : IUnique<int>
{ {
/// <summary>
/// Gets or sets the unique identifier of the document status entry.
/// </summary>
public int Id { get; set; }
/// <summary>
/// Gets or sets the ID of the associated envelope.
/// </summary>
public int EnvelopeId { get; set; }
/// <summary>
/// Gets or sets the ID of the receiver associated with this status.
/// </summary>
public int ReceiverId { get; set; }
/// <summary>
/// Gets or sets the current status code.
/// </summary>
public int Status { get; set; }
/// <summary>
/// Gets or sets the timestamp when the status was changed.
/// </summary>
public DateTime? StatusChangedWhen { get; set; }
/// <summary>
/// Gets or sets the timestamp when this record was added.
/// </summary>
public DateTime AddedWhen { get; set; }
/// <summary>
/// Gets or sets the timestamp when this record was last changed.
/// </summary>
public DateTime? ChangedWhen { get; set; }
/// <summary>
/// Gets or sets the display value associated with the status.
/// </summary>
public string? Value { get; set; } public string? Value { get; set; }
};
} }

View File

@@ -1,5 +1,4 @@
using DigitalData.Core.Abstractions; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.Application.DTOs namespace EnvelopeGenerator.Application.DTOs
{ {
@@ -7,7 +6,7 @@ namespace EnvelopeGenerator.Application.DTOs
/// ///
/// </summary> /// </summary>
[ApiExplorerSettings(IgnoreApi = true)] [ApiExplorerSettings(IgnoreApi = true)]
public record EmailTemplateDto : IUnique<int> public record EmailTemplateDto
{ {
/// <summary> /// <summary>
/// ///

View File

@@ -1,16 +1,50 @@
using DigitalData.Core.Abstractions; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.Application.DTOs namespace EnvelopeGenerator.Application.DTOs;
{
/// <summary>
/// Data Transfer Object representing certificate information for an envelope.
/// </summary>
[ApiExplorerSettings(IgnoreApi = true)] [ApiExplorerSettings(IgnoreApi = true)]
public record EnvelopeCertificateDto( public class EnvelopeCertificateDto
int Id, {
int EnvelopeId, /// <summary>
string EnvelopeUuid, /// Gets the unique identifier of the certificate.
string EnvelopeSubject, /// </summary>
int CreatorId, public int Id { get; init; }
string CreatorName,
string CreatorEmail, /// <summary>
int EnvelopeStatus) : IUnique<int>; /// Gets the envelope ID associated with the certificate.
/// </summary>
public int EnvelopeId { get; init; }
/// <summary>
/// Gets the UUID of the envelope.
/// </summary>
public string EnvelopeUuid { get; init; }
/// <summary>
/// Gets the subject of the envelope.
/// </summary>
public string EnvelopeSubject { get; init; }
/// <summary>
/// Gets the ID of the creator of the envelope.
/// </summary>
public int CreatorId { get; init; }
/// <summary>
/// Gets the name of the creator.
/// </summary>
public string CreatorName { get; init; }
/// <summary>
/// Gets the email address of the creator.
/// </summary>
public string CreatorEmail { get; init; }
/// <summary>
/// Gets the current status of the envelope.
/// </summary>
public int EnvelopeStatus { get; init; }
} }

View File

@@ -1,15 +1,35 @@
using DigitalData.Core.Abstractions; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.Application.DTOs namespace EnvelopeGenerator.Application.DTOs;
{
/// <summary>
/// Data Transfer Object representing a document within an envelope, including optional binary data and form elements.
/// </summary>
[ApiExplorerSettings(IgnoreApi = true)] [ApiExplorerSettings(IgnoreApi = true)]
public record EnvelopeDocumentDto public class EnvelopeDocumentDto
( {
int Id, /// <summary>
int EnvelopeId, /// Gets or sets the unique identifier of the document.
DateTime AddedWhen, /// </summary>
byte[]? ByteData = null, public int Id { get; set; }
IEnumerable<DocumentReceiverElementDto>? Elements = null
) : IUnique<int>; /// <summary>
/// Gets or sets the envelope ID to which the document belongs.
/// </summary>
public int EnvelopeId { get; set; }
/// <summary>
/// Gets or sets the date and time when the document was added.
/// </summary>
public DateTime AddedWhen { get; set; }
/// <summary>
/// Gets or sets the binary data of the document, if available.
/// </summary>
public byte[]? ByteData { get; set; }
/// <summary>
/// Gets or sets the collection of elements associated with the document for receiver interactions, if any.
/// </summary>
public IEnumerable<DocumentReceiverElementDto>? Elements { get; set; }
} }

View File

@@ -1,13 +1,12 @@
using DigitalData.Core.Abstractions; using DigitalData.EmailProfilerDispatcher.Abstraction.Attributes;
using DigitalData.EmailProfilerDispatcher.Abstraction.Attributes;
using DigitalData.UserManager.Application.DTOs.User; using DigitalData.UserManager.Application.DTOs.User;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.Application.DTOs namespace EnvelopeGenerator.Application.DTOs;
{
[ApiExplorerSettings(IgnoreApi = true)] [ApiExplorerSettings(IgnoreApi = true)]
public record EnvelopeDto() : IUnique<int> public record EnvelopeDto
{ {
public int Id { get; set; } public int Id { get; set; }
@@ -53,4 +52,3 @@ namespace EnvelopeGenerator.Application.DTOs
public IEnumerable<EnvelopeDocumentDto>? Documents { get; set; } public IEnumerable<EnvelopeDocumentDto>? Documents { get; set; }
} }
}

View File

@@ -1,12 +1,34 @@
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.Application.DTOs.EnvelopeHistory namespace EnvelopeGenerator.Application.DTOs.EnvelopeHistory;
/// <summary>
/// Data Transfer Object for creating a new envelope history record.
/// </summary>
public class EnvelopeHistoryCreateDto
{ {
[ApiExplorerSettings(IgnoreApi = true)] /// <summary>
public record EnvelopeHistoryCreateDto( /// Gets or sets the identifier of the envelope.
int EnvelopeId, /// </summary>
string UserReference, public int EnvelopeId { get; set; }
int Status,
DateTime? ActionDate, /// <summary>
string? Comment = null); /// Gets or sets the user reference associated with the action.
/// </summary>
public required string UserReference { get; set; }
/// <summary>
/// Gets or sets the status of the envelope at the time of the action.
/// </summary>
public int Status { get; set; }
/// <summary>
/// Gets or sets the date and time when the action occurred.
/// </summary>
public DateTime? ActionDate { get; set; }
/// <summary>
/// Gets or sets an optional comment related to the action.
/// </summary>
public string? Comment { get; set; }
} }

View File

@@ -1,36 +1,73 @@
using DigitalData.Core.Abstractions; using DigitalData.Core.Abstractions;
using DigitalData.Core.DTO;
using DigitalData.UserManager.Application.DTOs.User; using DigitalData.UserManager.Application.DTOs.User;
using EnvelopeGenerator.Application.DTOs.Receiver; using EnvelopeGenerator.Application.DTOs.Receiver;
using Microsoft.AspNetCore.Mvc;
using static EnvelopeGenerator.Common.Constants; using static EnvelopeGenerator.Common.Constants;
namespace EnvelopeGenerator.Application.DTOs.EnvelopeHistory; namespace EnvelopeGenerator.Application.DTOs.EnvelopeHistory;
/// <summary> /// <summary>
/// /// Data Transfer Object representing the history of an envelope, including status, sender, receiver, and related metadata.
/// </summary> /// </summary>
/// <param name="Id"></param> public record EnvelopeHistoryDto : IUnique<long>
/// <param name="EnvelopeId"></param> {
/// <param name="UserReference"></param> /// <summary>
/// <param name="Status"></param> /// Unique identifier for the envelope history entry.
/// <param name="StatusName"></param> /// </summary>
/// <param name="AddedWhen"></param> public long Id { get; set; }
/// <param name="ActionDate"></param>
/// <param name="Sender"></param> /// <summary>
/// <param name="Receiver"></param> /// Identifier of the associated envelope.
/// <param name="ReferenceType"></param> /// </summary>
/// <param name="Comment"></param> public int EnvelopeId { get; set; }
[ApiExplorerSettings(IgnoreApi = true)]
public record EnvelopeHistoryDto( /// <summary>
long Id, /// Reference string for the user related to this history entry.
int EnvelopeId, /// </summary>
string UserReference, public string UserReference { get; set; }
int Status,
string? StatusName, /// <summary>
DateTime AddedWhen, /// Status code of the envelope at this history point.
DateTime? ActionDate, /// </summary>
UserCreateDto? Sender, public int Status { get; set; }
ReceiverReadDto? Receiver,
ReferenceType ReferenceType, /// <summary>
string? Comment = null) : BaseDTO<long>(Id), IUnique<long>; /// Human-readable name of the status.
/// </summary>
public string? StatusName { get; set; }
/// <summary>
/// Date and time when this history entry was added.
/// </summary>
public DateTime AddedWhen { get; set; }
/// <summary>
/// Date and time when an action was performed, if applicable.
/// </summary>
public DateTime? ActionDate { get; set; }
/// <summary>
/// Information about the sender associated with this history entry.
/// </summary>
public UserCreateDto? Sender { get; set; }
/// <summary>
/// Information about the receiver associated with this history entry.
/// </summary>
public ReceiverReadDto? Receiver { get; set; }
/// <summary>
/// Type of reference for this history entry.
/// </summary>
public ReferenceType ReferenceType { get; set; }
/// <summary>
/// Optional comment related to this history entry.
/// </summary>
public string? Comment { get; set; }
/// <inheritdoc/>
public override int GetHashCode()
{
return Id.GetHashCode();
}
};

View File

@@ -1,18 +1,62 @@
using EnvelopeGenerator.Application.DTOs.Receiver; using EnvelopeGenerator.Application.DTOs.Receiver;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly namespace EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly;
{
/// <summary>
/// Represents a read-only Data Transfer Object (DTO) for an envelope receiver.
/// Contains information about the receiver, associated envelope, and audit details.
/// </summary>
[ApiExplorerSettings(IgnoreApi = true)] [ApiExplorerSettings(IgnoreApi = true)]
public record EnvelopeReceiverReadOnlyDto( public class EnvelopeReceiverReadOnlyDto
long Id, {
long EnvelopeId, /// <summary>
string ReceiverMail, /// Gets or inits the unique identifier of the envelope receiver.
DateTime DateValid, /// </summary>
DateTime AddedWhen, public long Id { get; init; }
string AddedWho,
EnvelopeDto? Envelope = null, /// <summary>
string? ChangedWho = null, /// Gets or inits the identifier of the associated envelope.
DateTime? ChangedWhen = null, /// </summary>
ReceiverReadDto? Receiver = null); public long EnvelopeId { get; init; }
/// <summary>
/// Gets or inits the email address of the receiver.
/// </summary>
public string ReceiverMail { get; set; }
/// <summary>
/// Gets or inits the date until which the receiver is valid.
/// </summary>
public DateTime DateValid { get; set; }
/// <summary>
/// Gets or inits the date and time when the receiver was added.
/// </summary>
public DateTime AddedWhen { get; init; }
/// <summary>
/// Gets or inits the user who added the receiver.
/// </summary>
public string AddedWho { get; init; }
/// <summary>
/// Gets or inits the associated envelope details.
/// </summary>
public EnvelopeDto? Envelope { get; set; }
/// <summary>
/// Gets or inits the user who last changed the receiver, if any.
/// </summary>
public string? ChangedWho { get; set; }
/// <summary>
/// Gets or inits the date and time when the receiver was last changed, if any.
/// </summary>
public DateTime? ChangedWhen { get; set; }
/// <summary>
/// Gets or inits the associated receiver details.
/// </summary>
public ReceiverReadDto? Receiver { get; set; }
} }

View File

@@ -1,14 +1,31 @@
using DigitalData.Core.Abstractions; using DigitalData.Core.Abstractions;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly namespace EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly;
{
/// <summary>
/// Data Transfer Object for updating a read-only envelope receiver.
/// </summary>
[ApiExplorerSettings(IgnoreApi = true)] [ApiExplorerSettings(IgnoreApi = true)]
public record EnvelopeReceiverReadOnlyUpdateDto( public class EnvelopeReceiverReadOnlyUpdateDto : IUnique<long>
long Id,
DateTime DateValid,
string ChangedWho) : IUnique<long>
{ {
public DateTime ChangedWhen { get; } = DateTime.Now; /// <summary>
}; /// Gets or sets the unique identifier of the envelope receiver.
/// </summary>
public long Id { get; init; }
/// <summary>
/// Gets or sets the date when the envelope receiver becomes valid.
/// </summary>
public DateTime DateValid { get; set; }
/// <summary>
/// Gets or sets the name of the user who made the change.
/// </summary>
public string ChangedWho { get; set; }
/// <summary>
/// Gets or sets the date and time when the change was made.
/// </summary>
public DateTime ChangedWhen { get; set; } = DateTime.Now;
} }

View File

@@ -1,23 +1,85 @@
using DigitalData.Core.Abstractions; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.Application.DTOs namespace EnvelopeGenerator.Application.DTOs;
{
/// <summary>
/// Data Transfer Object representing a type of envelope with its configuration settings.
/// </summary>
[ApiExplorerSettings(IgnoreApi = true)] [ApiExplorerSettings(IgnoreApi = true)]
public record EnvelopeTypeDto( public class EnvelopeTypeDto
int Id, {
string Title, /// <summary>
string Language, /// Gets or sets the unique identifier of the envelope type.
int? ExpiresDays, /// </summary>
int? CertificationType, public int Id { get; set; }
bool? UseAccessCode,
int? FinalEmailToCreator, /// <summary>
int? FinalEmailToReceivers, /// Gets or sets the title of the envelope type.
DateTime AddedWhen, /// </summary>
DateTime? ChangedWhen, public string Title { get; set; }
int? ExpiresWarningDays,
bool? SendReminderEmails, /// <summary>
int? FirstReminderDays, /// Gets or sets the language code used in this envelope type.
int? ReminderIntervalDays, /// </summary>
int? ContractType) : IUnique<int>; public string Language { get; set; }
/// <summary>
/// Gets or sets the number of days after which the envelope expires.
/// </summary>
public int? ExpiresDays { get; set; }
/// <summary>
/// Gets or sets the certification type identifier.
/// </summary>
public int? CertificationType { get; set; }
/// <summary>
/// Gets or sets a value indicating whether an access code is required.
/// </summary>
public bool? UseAccessCode { get; set; }
/// <summary>
/// Gets or sets the final email template ID to be sent to the creator.
/// </summary>
public int? FinalEmailToCreator { get; set; }
/// <summary>
/// Gets or sets the final email template ID to be sent to the receivers.
/// </summary>
public int? FinalEmailToReceivers { get; set; }
/// <summary>
/// Gets or sets the timestamp when this envelope type was added.
/// </summary>
public DateTime AddedWhen { get; set; }
/// <summary>
/// Gets or sets the timestamp when this envelope type was last changed.
/// </summary>
public DateTime? ChangedWhen { get; set; }
/// <summary>
/// Gets or sets the number of days before expiry when a warning should be sent.
/// </summary>
public int? ExpiresWarningDays { get; set; }
/// <summary>
/// Gets or sets a value indicating whether reminder emails should be sent.
/// </summary>
public bool? SendReminderEmails { get; set; }
/// <summary>
/// Gets or sets the number of days before the first reminder is sent.
/// </summary>
public int? FirstReminderDays { get; set; }
/// <summary>
/// Gets or sets the interval in days between reminder emails.
/// </summary>
public int? ReminderIntervalDays { get; set; }
/// <summary>
/// Gets or sets the contract type associated with the envelope type.
/// </summary>
public int? ContractType { get; set; }
} }

View File

@@ -3,21 +3,30 @@ using System.ComponentModel.DataAnnotations;
using System.Security.Cryptography; using System.Security.Cryptography;
using System.Text; using System.Text;
namespace EnvelopeGenerator.Application.DTOs.Receiver namespace EnvelopeGenerator.Application.DTOs.Receiver;
{
[ApiExplorerSettings(IgnoreApi = true)]
public record ReceiverCreateDto([EmailAddress] string EmailAddress, string? TotpSecretkey = null)
{
public string Signature => sha256HexOfMail.Value;
private readonly Lazy<string> sha256HexOfMail = new(() => [ApiExplorerSettings(IgnoreApi = true)]
public record ReceiverCreateDto
{
public ReceiverCreateDto()
{
_sha256HexOfMail = new(() =>
{ {
var bytes_arr = Encoding.UTF8.GetBytes(EmailAddress.ToUpper()); var bytes_arr = Encoding.UTF8.GetBytes(EmailAddress.ToUpper());
var hash_arr = SHA256.HashData(bytes_arr); var hash_arr = SHA256.HashData(bytes_arr);
var hexa_str = BitConverter.ToString(hash_arr); var hexa_str = BitConverter.ToString(hash_arr);
return hexa_str.Replace("-", string.Empty); return hexa_str.Replace("-", string.Empty);
}); });
}
[EmailAddress]
public required string EmailAddress { get; init; }
public string? TotpSecretkey { get; init; }
public string Signature => _sha256HexOfMail.Value;
private readonly Lazy<string> _sha256HexOfMail;
public DateTime AddedWhen { get; } = DateTime.Now; public DateTime AddedWhen { get; } = DateTime.Now;
}; };
}

View File

@@ -1,25 +1,31 @@
using DigitalData.Core.Abstractions; using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver;
using DigitalData.Core.DTO;
using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using System.Text.Json.Serialization; using System.Text.Json.Serialization;
namespace EnvelopeGenerator.Application.DTOs.Receiver; namespace EnvelopeGenerator.Application.DTOs.Receiver;
[ApiExplorerSettings(IgnoreApi = true)] [ApiExplorerSettings(IgnoreApi = true)]
public record ReceiverReadDto( public class ReceiverReadDto
int Id,
string EmailAddress,
string Signature,
DateTime AddedWhen
) : BaseDTO<int>(Id), IUnique<int>
{ {
public int Id { get; set; }
public string EmailAddress { get; set; }
public string Signature { get; set; }
public DateTime AddedWhen { get; set; }
[JsonIgnore] [JsonIgnore]
public IEnumerable<EnvelopeReceiverBasicDto>? EnvelopeReceivers { get; init; } public IEnumerable<EnvelopeReceiverBasicDto>? EnvelopeReceivers { get; set; }
public string? LastUsedName => EnvelopeReceivers?.LastOrDefault()?.Name; public string? LastUsedName => EnvelopeReceivers?.LastOrDefault()?.Name;
public string? TotpSecretkey { get; set; } = null; public string? TotpSecretkey { get; set; } = null;
public DateTime? TfaRegDeadline { get; set; } public DateTime? TfaRegDeadline { get; set; }
};
public override int GetHashCode()
{
return Id.GetHashCode();
}
}

View File

@@ -1,7 +1,27 @@
using DigitalData.Core.Abstractions; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.Application.DTOs.Receiver; namespace EnvelopeGenerator.Application.DTOs.Receiver;
/// <summary>
/// Data Transfer Object for updating a receiver's information.
/// </summary>
[ApiExplorerSettings(IgnoreApi = true)] [ApiExplorerSettings(IgnoreApi = true)]
public record ReceiverUpdateDto(int Id, string? TotpSecretkey = null, DateTime? TfaRegDeadline = null) : IUnique<int>; public class ReceiverUpdateDto
{
/// <summary>
/// Gets or sets the unique identifier of the receiver.
/// </summary>
public int Id { get; set; }
/// <summary>
/// Gets or sets the TOTP (Time-based One-Time Password) secret key.
/// Optional.
/// </summary>
public string? TotpSecretkey { get; set; }
/// <summary>
/// Gets or sets the deadline for two-factor authentication registration.
/// Optional.
/// </summary>
public DateTime? TfaRegDeadline { get; set; }
}

View File

@@ -1,15 +1,45 @@
using DigitalData.Core.Abstractions; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.Application.DTOs namespace EnvelopeGenerator.Application.DTOs;
{
/// <summary>
/// Data Transfer Object representing a user receiver with associated details.
/// </summary>
[ApiExplorerSettings(IgnoreApi = true)] [ApiExplorerSettings(IgnoreApi = true)]
public record UserReceiverDto( public class UserReceiverDto
int Id, {
int UserId, /// <summary>
int ReceiverId, /// Gets or sets the unique identifier of the user receiver.
string Name, /// </summary>
string CompanyName, public int Id { get; set; }
string JobTitle,
DateTime AddedWhen) : IUnique<int>; /// <summary>
/// Gets or sets the identifier of the user associated with the receiver.
/// </summary>
public int UserId { get; set; }
/// <summary>
/// Gets or sets the identifier of the receiver.
/// </summary>
public int ReceiverId { get; set; }
/// <summary>
/// Gets or sets the name of the receiver.
/// </summary>
public string Name { get; set; }
/// <summary>
/// Gets or sets the company name of the receiver.
/// </summary>
public string CompanyName { get; set; }
/// <summary>
/// Gets or sets the job title of the receiver.
/// </summary>
public string JobTitle { get; set; }
/// <summary>
/// Gets or sets the timestamp when the user receiver was added.
/// </summary>
public DateTime AddedWhen { get; set; }
} }

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Application.Interfaces.Repository;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
using MediatR; using MediatR;

View File

@@ -1,6 +1,5 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Application.Interfaces.Repository;
using EnvelopeGenerator.Application.DTOs; using EnvelopeGenerator.Application.DTOs;
using EnvelopeGenerator.Application.EmailTemplates.Queries.Read;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
using MediatR; using MediatR;

View File

@@ -1,4 +1,4 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Application.Interfaces.Repository;
using EnvelopeGenerator.Application.DTOs; using EnvelopeGenerator.Application.DTOs;
using EnvelopeGenerator.Application.Exceptions; using EnvelopeGenerator.Application.Exceptions;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;

View File

@@ -14,16 +14,15 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Dapper" Version="2.1.66" /> <PackageReference Include="Dapper" Version="2.1.66" />
<PackageReference Include="DigitalData.Core.Abstractions" Version="3.6.0" /> <PackageReference Include="DigitalData.Core.Abstractions" Version="4.0.0" />
<PackageReference Include="DigitalData.Core.Application" Version="3.2.1" /> <PackageReference Include="DigitalData.Core.Application" Version="3.3.1" />
<PackageReference Include="DigitalData.Core.Client" Version="2.0.3" /> <PackageReference Include="DigitalData.Core.Client" Version="2.1.0" />
<PackageReference Include="DigitalData.Core.DTO" Version="2.0.1" /> <PackageReference Include="DigitalData.EmailProfilerDispatcher" Version="3.1.0" />
<PackageReference Include="DigitalData.EmailProfilerDispatcher" Version="3.0.0" />
<PackageReference Include="MediatR" Version="12.5.0" /> <PackageReference Include="MediatR" Version="12.5.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="7.0.18" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="7.0.18" />
<PackageReference Include="Microsoft.Data.SqlClient" Version="5.1.1" /> <PackageReference Include="Microsoft.Data.SqlClient" Version="5.1.1" />
<PackageReference Include="Microsoft.Data.SqlClient" Version="6.0.2" /> <PackageReference Include="Microsoft.Data.SqlClient" Version="6.0.2" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.4" /> <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.5" />
<PackageReference Include="Otp.NET" Version="1.4.0" /> <PackageReference Include="Otp.NET" Version="1.4.0" />
<PackageReference Include="QRCoder" Version="1.6.0" /> <PackageReference Include="QRCoder" Version="1.6.0" />
<PackageReference Include="QRCoder-ImageSharp" Version="0.10.0" /> <PackageReference Include="QRCoder-ImageSharp" Version="0.10.0" />

View File

@@ -7,6 +7,7 @@ using DigitalData.Core.DTO;
using EnvelopeGenerator.Application.DTOs.EnvelopeHistory; using EnvelopeGenerator.Application.DTOs.EnvelopeHistory;
using EnvelopeGenerator.Application.DTOs.Receiver; using EnvelopeGenerator.Application.DTOs.Receiver;
using EnvelopeGenerator.Application.Contracts.Services; using EnvelopeGenerator.Application.Contracts.Services;
using DigitalData.Core.Application.DTO;
namespace EnvelopeGenerator.Application.Services; namespace EnvelopeGenerator.Application.Services;
@@ -76,9 +77,16 @@ public class EnvelopeHistoryService : CRUDService<IEnvelopeHistoryRepository, En
} }
public async Task<DataResult<long>> RecordAsync(int envelopeId, string userReference, EnvelopeStatus status, string? comment = null) => public async Task<DataResult<long>> RecordAsync(int envelopeId, string userReference, EnvelopeStatus status, string? comment = null) =>
await CreateAsync(new (EnvelopeId: envelopeId, UserReference: userReference, Status: (int)status, ActionDate: DateTime.Now, Comment: comment)) await CreateAsync(new ()
{
EnvelopeId = envelopeId,
UserReference = userReference,
Status = (int) status,
ActionDate = DateTime.Now,
Comment = comment
})
.ThenAsync( .ThenAsync(
Success: id => Result.Success(id), Success: dto => Result.Success(dto.Id),
Fail: (mssg, ntc) => Result.Fail<long>().Message(mssg).Notice(ntc) Fail: (mssg, ntc) => Result.Fail<long>().Message(mssg).Notice(ntc)
); );
} }

View File

@@ -1,5 +1,5 @@
using AutoMapper; using AutoMapper;
using DigitalData.Core.Abstractions.Client; using DigitalData.Core.Client.Interface;
using DigitalData.Core.Client; using DigitalData.Core.Client;
using EnvelopeGenerator.Application.Configurations; using EnvelopeGenerator.Application.Configurations;
using EnvelopeGenerator.Application.Contracts.Services; using EnvelopeGenerator.Application.Contracts.Services;

View File

@@ -4,7 +4,6 @@ using EnvelopeGenerator.Domain.Entities;
using EnvelopeGenerator.Application.Contracts.Repositories; using EnvelopeGenerator.Application.Contracts.Repositories;
using EnvelopeGenerator.Application.DTOs.Receiver; using EnvelopeGenerator.Application.DTOs.Receiver;
using DigitalData.Core.DTO; using DigitalData.Core.DTO;
using DigitalData.Core.Abstractions;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using EnvelopeGenerator.Application.Contracts.Services; using EnvelopeGenerator.Application.Contracts.Services;
@@ -37,12 +36,12 @@ public class ReceiverService : CRUDService<IReceiverRepository, ReceiverCreateDt
return await _repository.DeleteAsync(rcv) ? Result.Success() : Result.Fail(); return await _repository.DeleteAsync(rcv) ? Result.Success() : Result.Fail();
} }
public virtual async Task<Result> UpdateAsync<TUpdateDto>(TUpdateDto updateDto) where TUpdateDto : IUnique<int> public virtual async Task<Result> UpdateAsync<TUpdateDto>(TUpdateDto updateDto)
{ {
var val = await _repository.ReadByIdAsync(updateDto.Id); var val = await _repository.ReadByIdAsync(updateDto.GetId<int>());
if (val == null) if (val == null)
{ {
return Result.Fail().Notice(LogLevel.Warning, Flag.NotFound, $"{updateDto.Id} is not found in update process of {GetType()} entity."); return Result.Fail().Notice(LogLevel.Warning, Flag.NotFound, $"{updateDto.GetIdOrDefault<int>()} is not found in update process of {GetType()} entity.");
} }
var entity = _mapper.Map(updateDto, val); var entity = _mapper.Map(updateDto, val);

View File

@@ -1,152 +0,0 @@
Public Class Constants
#Region "Status Fields"
'http://wiki.dd/xwiki13/bin/view/Anwendungen/Produkt-Handbuch/Sonstiges/SignFlow/Envelope%20Status/
Public Enum EnvelopeStatus
Invalid = 0
EnvelopeCreated = 1001
EnvelopeSaved = 1002
EnvelopeQueued = 1003
EnvelopeSent = 1004 ' Nicht verwendet
EnvelopePartlySigned = 1005
EnvelopeCompletelySigned = 1006
EnvelopeReportCreated = 1007
EnvelopeArchived = 1008
EnvelopeDeleted = 1009
EnvelopeRejected = 10007
EnvelopeWithdrawn = 10009
AccessCodeRequested = 2001
AccessCodeCorrect = 2002
AccessCodeIncorrect = 2003
DocumentOpened = 2004
DocumentSigned = 2005
DocumentForwarded = 2006
DocumentRejected = 2007
EnvelopeShared = 2008
EnvelopeViewed = 2009
MessageInvitationSent = 3001 ' Wird von Trigger verwendet
MessageAccessCodeSent = 3002
MessageConfirmationSent = 3003
MessageDeletionSent = 3004
MessageCompletionSent = 3005
DocumentMod_Rotation = 4001
End Enum
Public Class Status
Public Shared ReadOnly NonHist As IReadOnlyList(Of EnvelopeStatus) = New List(Of EnvelopeStatus) From {
EnvelopeStatus.Invalid,
EnvelopeStatus.EnvelopeSaved,
EnvelopeStatus.EnvelopeSent,
EnvelopeStatus.EnvelopePartlySigned
}
Public Shared ReadOnly RelatedToFormApp As IReadOnlyList(Of EnvelopeStatus) = New List(Of EnvelopeStatus) From {
EnvelopeStatus.EnvelopeCreated,
EnvelopeStatus.DocumentMod_Rotation
}
End Class
'TODO: standardize in xwiki
Public Enum ReferenceType
Sender = 1
Receiver
System
Unknown
End Enum
Public Enum ElementStatus
Created = 0
End Enum
Public Enum DocumentStatus
Created = 0
Signed = 1
End Enum
Public Enum ReceiverStatus
Unsigned = 0
Signed = 1
End Enum
#End Region
#Region "Type Fields"
Public Enum ElementType
Signature = 1
End Enum
Public Enum ContractType
Contract = 1
ReadAndSign = 2
End Enum
Public Enum ColorType
ReceiverColor1 = 1
ReceiverColor2 = 2
ReceiverColor3 = 3
ReceiverColor4 = 4
ReceiverColor5 = 5
ReceiverColor6 = 6
ReceiverColor7 = 7
ReceiverColor8 = 8
ReceiverColor9 = 9
ReceiverColor10 = 10
End Enum
Public Enum CertificationType
AdvancedElectronicSignature = 1
'ElectronicSignature = 1
'QualifiedSignature = 2
End Enum
Public Enum FinalEmailType
No = 0
Yes = 1
YesWithAttachment = 2
End Enum
Public Enum PageOrientation
Portrait = 0
Landscape = 1
End Enum
Public Enum EmailTemplateType
DocumentReceived = 0
DocumentSigned
DocumentDeleted
DocumentCompleted
DocumentAccessCodeReceived
DocumentShared
TotpSecret
DocumentRejected_ADM
DocumentRejected_REC
DocumentRejected_REC_2
End Enum
Public Enum EncodeType
EnvelopeReceiver
EnvelopeReceiverReadOnly
Undefined
DocumentForwarded
DocumentShared
End Enum
#End Region
#Region "Role"
Public NotInheritable Class ReceiverRole
Public Const PreAuth As String = "PreAuth"
Public Const FullyAuth As String = "FullyAuth"
End Class
#End Region
#Region "Constants"
Public Const DATABASE = "DATABASE"
Public Const LOGCONFIG = "LOGCONFIG"
Public Const GDPICTURE = "GDPICTURE"
Public Const PDF_BURNER_PARAMS = "PDFBurnerParams"
Public Const GREEN_300 = "#bbf7d0"
Public Const RED_300 = "#fecaca"
Public Const ORANGE_300 = "#fed7aa"
#End Region
End Class

View File

@@ -1,4 +1,6 @@
Public Class DocumentStatus Imports EnvelopeGenerator.Domain
Public Class DocumentStatus
Public Property Id As Integer Public Property Id As Integer
Public Property EnvelopeId As Integer Public Property EnvelopeId As Integer

View File

@@ -1,4 +1,6 @@
Public Class ElementStatus Imports EnvelopeGenerator.Domain
Public Class ElementStatus
Public Property Id As Integer Public Property Id As Integer
Public Property EnvelopeId As Integer Public Property EnvelopeId As Integer

View File

@@ -1,4 +1,4 @@
Imports EnvelopeGenerator.Domain
Public Class EmailData Public Class EmailData
Public Property EmailAdress As String = "" Public Property EmailAdress As String = ""
Public Property EmailSubject As String = "" Public Property EmailSubject As String = ""

View File

@@ -1,4 +1,6 @@
Public Class Envelope Imports EnvelopeGenerator.Domain
Public Class Envelope
Public Property Id As Integer = 0 Public Property Id As Integer = 0
Public Property UserId As Integer Public Property UserId As Integer
Public Property Title As String = "" Public Property Title As String = ""

View File

@@ -1,4 +1,6 @@
Public Class EnvelopeDocumentElement Imports EnvelopeGenerator.Domain
Public Class EnvelopeDocumentElement
Public Property Id As Integer = -1 Public Property Id As Integer = -1
Public Property X As Double Public Property X As Double
Public Property Y As Double Public Property Y As Double

View File

@@ -1,4 +1,6 @@
Public Class EnvelopeHistoryEntry Imports EnvelopeGenerator.Domain
Public Class EnvelopeHistoryEntry
Public Property EnvelopeId As Integer Public Property EnvelopeId As Integer
Public Property UserReference As String Public Property UserReference As String
Public Property Status As Constants.EnvelopeStatus Public Property Status As Constants.EnvelopeStatus

View File

@@ -1,8 +1,7 @@
Imports System.Drawing Imports System.Drawing
Imports System.Runtime.Serialization
Imports DevExpress.Utils.Svg Imports DevExpress.Utils.Svg
Imports DigitalData.Modules.Base Imports DigitalData.Modules.Base
Imports EnvelopeGenerator.Common.Constants Imports EnvelopeGenerator.Domain.Constants
Imports Newtonsoft.Json Imports Newtonsoft.Json
Public Class EnvelopeReceiver Public Class EnvelopeReceiver

View File

@@ -1,4 +1,5 @@
Public Class EnvelopeType Imports EnvelopeGenerator.Domain
Public Class EnvelopeType
Public Property Id As Integer = 0 Public Property Id As Integer = 0
Public Property Title As String Public Property Title As String

View File

@@ -274,7 +274,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Config.vb" /> <Compile Include="Config.vb" />
<Compile Include="Constants.vb" />
<Compile Include="Entities\DbConfig.vb" /> <Compile Include="Entities\DbConfig.vb" />
<Compile Include="Entities\ElementMetadata.vb" /> <Compile Include="Entities\ElementMetadata.vb" />
<Compile Include="Entities\DocumentStatus.vb" /> <Compile Include="Entities\DocumentStatus.vb" />
@@ -443,7 +442,12 @@
<EmbeddedResource Include="Templates\document_access_code_de.html" /> <EmbeddedResource Include="Templates\document_access_code_de.html" />
<EmbeddedResource Include="Templates\email_de.html" /> <EmbeddedResource Include="Templates\email_de.html" />
</ItemGroup> </ItemGroup>
<ItemGroup /> <ItemGroup>
<ProjectReference Include="..\EnvelopeGenerator.Domain\EnvelopeGenerator.Domain.csproj">
<Project>{4f32a98d-e6f0-4a09-bd97-1cf26107e837}</Project>
<Name>EnvelopeGenerator.Domain</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup> <PropertyGroup>

View File

@@ -3,7 +3,7 @@ Imports System.IO
Imports System.Security.Cryptography Imports System.Security.Cryptography
Imports System.Text Imports System.Text
Imports DevExpress.Utils.Svg Imports DevExpress.Utils.Svg
Imports EnvelopeGenerator.Common.Constants Imports EnvelopeGenerator.Domain.Constants
Public Class Helpers Public Class Helpers
Private Shared key As String = "$xzBvyPETUS&amm8)D8x#)f;4%;?[BPd" ' Passwort-Schlüssel (16, 24, or 32 bytes) Private Shared key As String = "$xzBvyPETUS&amm8)D8x#)f;4%;?[BPd" ' Passwort-Schlüssel (16, 24, or 32 bytes)

View File

@@ -1,16 +1,9 @@
Imports DigitalData.Modules.Database Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Base Imports DigitalData.Modules.Base
Imports GdPicture14
Imports Quartz Imports Quartz
Imports System.Security.Cryptography Imports System.Security.Cryptography
Imports System.IO
Imports EnvelopeGenerator.Common.Jobs.FinalizeDocument.FinalizeDocumentExceptions
Imports EnvelopeGenerator.Common.Jobs.FinalizeDocument
Imports EnvelopeGenerator.Common.Constants
Imports DevExpress.DataProcessing Imports DevExpress.DataProcessing
Imports System.Data.SqlClient
Imports DevExpress.XtraRichEdit.Layout.Engine
Namespace Jobs Namespace Jobs
Public Class APIEnvelopeJob Public Class APIEnvelopeJob
@@ -39,7 +32,7 @@ Namespace Jobs
End Class End Class
Public Function Execute(pContext As IJobExecutionContext) As Task Implements IJob.Execute Public Function Execute(pContext As IJobExecutionContext) As Task Implements IJob.Execute
LogConfig = pContext.MergedJobDataMap.Item(Constants.LOGCONFIG) LogConfig = pContext.MergedJobDataMap.Item(Domain.Constants.LOGCONFIG)
Logger = LogConfig.GetLogger() Logger = LogConfig.GetLogger()
myTempFiles = New TempFiles(LogConfig) myTempFiles = New TempFiles(LogConfig)
myTempFiles.Create() myTempFiles.Create()
@@ -179,7 +172,7 @@ Namespace Jobs
ActionService = New ActionService(pState, Database) ActionService = New ActionService(pState, Database)
End Sub End Sub
Private Function GetDatabase(pContext As IJobExecutionContext, pLogConfig As LogConfig) As MSSQLServer Private Function GetDatabase(pContext As IJobExecutionContext, pLogConfig As LogConfig) As MSSQLServer
Dim oConnectionString As String = pContext.MergedJobDataMap.Item(Constants.DATABASE) Dim oConnectionString As String = pContext.MergedJobDataMap.Item(Domain.Constants.DATABASE)
Dim Database = New MSSQLServer(pLogConfig, MSSQLServer.DecryptConnectionString(oConnectionString)) Dim Database = New MSSQLServer(pLogConfig, MSSQLServer.DecryptConnectionString(oConnectionString))
Return Database Return Database

View File

@@ -7,7 +7,7 @@ Imports System.Security.Cryptography
Imports System.IO Imports System.IO
Imports EnvelopeGenerator.Common.Jobs.FinalizeDocument.FinalizeDocumentExceptions Imports EnvelopeGenerator.Common.Jobs.FinalizeDocument.FinalizeDocumentExceptions
Imports EnvelopeGenerator.Common.Jobs.FinalizeDocument Imports EnvelopeGenerator.Common.Jobs.FinalizeDocument
Imports EnvelopeGenerator.Common.Constants Imports EnvelopeGenerator.Domain.Constants
Imports DevExpress.DataProcessing Imports DevExpress.DataProcessing
Imports System.Data.SqlClient Imports System.Data.SqlClient
@@ -47,8 +47,8 @@ Namespace Jobs
End Class End Class
Public Function Execute(pContext As IJobExecutionContext) As Task Implements IJob.Execute Public Function Execute(pContext As IJobExecutionContext) As Task Implements IJob.Execute
Dim oGdPictureKey As String = pContext.MergedJobDataMap.Item(Constants.GDPICTURE) Dim oGdPictureKey As String = pContext.MergedJobDataMap.Item(Domain.Constants.GDPICTURE)
LogConfig = pContext.MergedJobDataMap.Item(Constants.LOGCONFIG) LogConfig = pContext.MergedJobDataMap.Item(Domain.Constants.LOGCONFIG)
Logger = LogConfig.GetLogger() Logger = LogConfig.GetLogger()
myTempFiles = New TempFiles(LogConfig) myTempFiles = New TempFiles(LogConfig)
myTempFiles.Create() myTempFiles.Create()
@@ -74,7 +74,7 @@ Namespace Jobs
InitializeServices(oState) InitializeServices(oState)
Logger.Debug("Loading PDFBurner..") Logger.Debug("Loading PDFBurner..")
Dim pdfBurnerParams As PDFBurnerParams = pContext.MergedJobDataMap.Item(Constants.PDF_BURNER_PARAMS) Dim pdfBurnerParams As PDFBurnerParams = pContext.MergedJobDataMap.Item(PDF_BURNER_PARAMS)
PDFBurner = New PDFBurner(LogConfig, oGdPictureKey, pdfBurnerParams) PDFBurner = New PDFBurner(LogConfig, oGdPictureKey, pdfBurnerParams)
Logger.Debug("Loading PDFMerger..") Logger.Debug("Loading PDFMerger..")
@@ -90,7 +90,7 @@ Namespace Jobs
Logger.Debug("ExportPath: [{0}]", Config.ExportPath) Logger.Debug("ExportPath: [{0}]", Config.ExportPath)
Dim oCompleteStatus As Integer = Constants.EnvelopeStatus.EnvelopeCompletelySigned Dim oCompleteStatus As Integer = EnvelopeStatus.EnvelopeCompletelySigned
Dim oSql = $"SELECT * FROM TBSIG_ENVELOPE WHERE STATUS = {oCompleteStatus} AND DATEDIFF(minute, CHANGED_WHEN, GETDATE()) >= {CompleteWaitTime} ORDER BY GUID" Dim oSql = $"SELECT * FROM TBSIG_ENVELOPE WHERE STATUS = {oCompleteStatus} AND DATEDIFF(minute, CHANGED_WHEN, GETDATE()) >= {CompleteWaitTime} ORDER BY GUID"
Dim oTable = Database.GetDatatable(oSql) Dim oTable = Database.GetDatatable(oSql)
@@ -436,7 +436,7 @@ Namespace Jobs
End Sub End Sub
Private Function GetDatabase(pContext As IJobExecutionContext, pLogConfig As LogConfig) As MSSQLServer Private Function GetDatabase(pContext As IJobExecutionContext, pLogConfig As LogConfig) As MSSQLServer
Dim oConnectionString As String = pContext.MergedJobDataMap.Item(Constants.DATABASE) Dim oConnectionString As String = pContext.MergedJobDataMap.Item(Domain.Constants.DATABASE)
Dim Database = New MSSQLServer(pLogConfig, MSSQLServer.DecryptConnectionString(oConnectionString)) Dim Database = New MSSQLServer(pLogConfig, MSSQLServer.DecryptConnectionString(oConnectionString))
Return Database Return Database

View File

@@ -1,4 +1,4 @@
Imports System.Windows.Forms.VisualStyles.VisualStyleElement Imports EnvelopeGenerator.Domain
Public Class ReportItem Public Class ReportItem

View File

@@ -1,6 +1,6 @@
Imports System.Data Imports System.Data.SqlClient
Imports System.Data.SqlClient
Imports DigitalData.Modules.Base Imports DigitalData.Modules.Base
Imports EnvelopeGenerator.Domain
Public Class ElementModel Public Class ElementModel
Inherits BaseModel Inherits BaseModel

View File

@@ -1,5 +1,5 @@
Imports DigitalData.Modules.Base Imports DigitalData.Modules.Base
Imports EnvelopeGenerator.Common.Constants Imports EnvelopeGenerator.Domain.Constants
Public Class EmailTemplateModel Public Class EmailTemplateModel
Inherits BaseModel Inherits BaseModel

View File

@@ -2,7 +2,7 @@
Imports System.Web.UI.WebControls Imports System.Web.UI.WebControls
Imports DigitalData.Modules.Base Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports EnvelopeGenerator.Common.Constants Imports EnvelopeGenerator.Domain.Constants
Public Class EnvelopeModel Public Class EnvelopeModel
Inherits BaseModel Inherits BaseModel
@@ -33,10 +33,10 @@ Public Class EnvelopeModel
.Message = pRow.ItemEx("MESSAGE", ""), .Message = pRow.ItemEx("MESSAGE", ""),
.UserId = pRow.ItemEx("USER_ID", 0), .UserId = pRow.ItemEx("USER_ID", 0),
.Language = pRow.ItemEx("LANGUAGE", "de-DE"), .Language = pRow.ItemEx("LANGUAGE", "de-DE"),
.Status = ObjectEx.ToEnum(Of Constants.EnvelopeStatus)(pRow.ItemEx("STATUS", Constants.EnvelopeStatus.EnvelopeCreated.ToString())), .Status = ObjectEx.ToEnum(Of EnvelopeStatus)(pRow.ItemEx("STATUS", EnvelopeStatus.EnvelopeCreated.ToString())),
.AddedWhen = pRow.Item("ADDED_WHEN"), .AddedWhen = pRow.Item("ADDED_WHEN"),
.ChangedWhen = pRow.ItemEx(Of Date)("CHANGED_WHEN", Nothing), .ChangedWhen = pRow.ItemEx(Of Date)("CHANGED_WHEN", Nothing),
.CertificationType = ObjectEx.ToEnum(Of Constants.CertificationType)(pRow.ItemEx("CERTIFICATION_TYPE", Constants.CertificationType.AdvancedElectronicSignature.ToString())), .CertificationType = ObjectEx.ToEnum(Of CertificationType)(pRow.ItemEx("CERTIFICATION_TYPE", CertificationType.AdvancedElectronicSignature.ToString())),
.User = New User(), .User = New User(),
.ExpiresWhen = pRow.ItemEx(Of Date)("EXPIRES_WHEN", Nothing), .ExpiresWhen = pRow.ItemEx(Of Date)("EXPIRES_WHEN", Nothing),
.ExpiresWarningWhen = pRow.ItemEx(Of Date)("EXPIRES_WARNING_WHEN", Nothing), .ExpiresWarningWhen = pRow.ItemEx(Of Date)("EXPIRES_WARNING_WHEN", Nothing),
@@ -46,8 +46,8 @@ Public Class EnvelopeModel
.FirstReminderDays = pRow.ItemEx("FIRST_REMINDER_DAYS", 0), .FirstReminderDays = pRow.ItemEx("FIRST_REMINDER_DAYS", 0),
.ReminderIntervalDays = pRow.ItemEx("REMINDER_INTERVAL_DAYS", 0), .ReminderIntervalDays = pRow.ItemEx("REMINDER_INTERVAL_DAYS", 0),
.UseAccessCode = pRow.ItemEx("USE_ACCESS_CODE", False), .UseAccessCode = pRow.ItemEx("USE_ACCESS_CODE", False),
.FinalEmailToCreator = ObjectEx.ToEnum(Of Constants.FinalEmailType)(pRow.ItemEx("FINAL_EMAIL_TO_CREATOR", Constants.FinalEmailType.No.ToString())), .FinalEmailToCreator = ObjectEx.ToEnum(Of FinalEmailType)(pRow.ItemEx("FINAL_EMAIL_TO_CREATOR", FinalEmailType.No.ToString())),
.FinalEmailToReceivers = ObjectEx.ToEnum(Of Constants.FinalEmailType)(pRow.ItemEx("FINAL_EMAIL_TO_RECEIVERS", Constants.FinalEmailType.No.ToString())), .FinalEmailToReceivers = ObjectEx.ToEnum(Of FinalEmailType)(pRow.ItemEx("FINAL_EMAIL_TO_RECEIVERS", FinalEmailType.No.ToString())),
.TFA_Enabled = pRow.ItemEx("TFA_Enabled", False) .TFA_Enabled = pRow.ItemEx("TFA_Enabled", False)
} }
Dim oDOC_RESULT = pRow.Item("DOC_RESULT") Dim oDOC_RESULT = pRow.Item("DOC_RESULT")
@@ -148,7 +148,7 @@ Public Class EnvelopeModel
Dim oSql = $"INSERT INTO [dbo].[TBSIG_ENVELOPE] (MESSAGE, ENVELOPE_UUID, STATUS, USER_ID) Dim oSql = $"INSERT INTO [dbo].[TBSIG_ENVELOPE] (MESSAGE, ENVELOPE_UUID, STATUS, USER_ID)
VALUES('', VALUES('',
'{pEnvelope.Uuid}', '{pEnvelope.Uuid}',
'{CInt([Enum].Parse(GetType(EnvelopeStatus), Constants.EnvelopeStatus.EnvelopeCreated))}', '{CInt([Enum].Parse(GetType(EnvelopeStatus), EnvelopeStatus.EnvelopeCreated))}',
'{pEnvelope.UserId}')" '{pEnvelope.UserId}')"
Dim oCommand As New SqlCommand(oSql) Dim oCommand As New SqlCommand(oSql)
'oCommand.Parameters.Add("MESSAGE", SqlDbType.NVarChar).Value = String.Empty 'oCommand.Parameters.Add("MESSAGE", SqlDbType.NVarChar).Value = String.Empty

View File

@@ -1,5 +1,5 @@
Imports DigitalData.Modules.Base Imports DigitalData.Modules.Base
Imports EnvelopeGenerator.Common.Constants Imports EnvelopeGenerator.Domain.Constants
Public Class EnvelopeTypeModel Public Class EnvelopeTypeModel
Inherits BaseModel Inherits BaseModel

View File

@@ -27,7 +27,7 @@ Public Class HistoryModel
End Function End Function
Public Function HasReceiverSigned(pEnvelopeId As Integer, pReceiverId As Integer) As Boolean Public Function HasReceiverSigned(pEnvelopeId As Integer, pReceiverId As Integer) As Boolean
Dim oEnvelopeSigned As Integer = Constants.EnvelopeStatus.DocumentSigned Dim oEnvelopeSigned As Integer = Domain.Constants.EnvelopeStatus.DocumentSigned
Dim oSql = $"SELECT COUNT(T.GUID) Dim oSql = $"SELECT COUNT(T.GUID)
FROM TBSIG_ENVELOPE_HISTORY T FROM TBSIG_ENVELOPE_HISTORY T
JOIN TBSIG_RECEIVER T2 ON T.USER_REFERENCE = T2.EMAIL_ADDRESS JOIN TBSIG_RECEIVER T2 ON T.USER_REFERENCE = T2.EMAIL_ADDRESS

View File

@@ -2,7 +2,7 @@
Imports System.Net.Mail Imports System.Net.Mail
Imports DevExpress.DataProcessing Imports DevExpress.DataProcessing
Imports DigitalData.Modules.Base Imports DigitalData.Modules.Base
Imports EnvelopeGenerator.Common.Constants Imports EnvelopeGenerator.Domain.Constants
Public Class ReceiverModel Public Class ReceiverModel
Inherits BaseModel Inherits BaseModel

View File

@@ -1,6 +1,6 @@
Imports DevExpress.DataAccess.Native.Web Imports DevExpress.DataAccess.Native.Web
Imports DigitalData.Modules.Base Imports DigitalData.Modules.Base
Imports EnvelopeGenerator.Common.Constants Imports EnvelopeGenerator.Domain.Constants
Imports EnvelopeGenerator.Common.My.Resources Imports EnvelopeGenerator.Common.My.Resources
Imports DigitalData.Modules.Database Imports DigitalData.Modules.Database
Imports System.ComponentModel Imports System.ComponentModel
@@ -26,7 +26,7 @@ Public Class ActionService
End Sub End Sub
Public Function SendEnvelope(pEnvelope As Envelope) As Boolean Public Function SendEnvelope(pEnvelope As Envelope) As Boolean
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.EnvelopeQueued, pEnvelope.User.Email) = False Then If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.EnvelopeQueued, pEnvelope.User.Email) = False Then
Return False Return False
End If End If
@@ -41,13 +41,13 @@ Public Class ActionService
Return True Return True
End Function End Function
Public Function SetStatusDocumentRotationChanged(pEnvelope As Envelope) As Boolean Public Function SetStatusDocumentRotationChanged(pEnvelope As Envelope) As Boolean
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.DocumentMod_Rotation, pEnvelope.User.Email) = False Then If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.DocumentMod_Rotation, pEnvelope.User.Email) = False Then
Return False Return False
End If End If
Return True Return True
End Function End Function
Public Function Resend_Receiver(pEnvelope As Envelope, pmail As String) As Boolean Public Function Resend_Receiver(pEnvelope As Envelope, pmail As String) As Boolean
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.EnvelopeQueued, pEnvelope.User.Email) = False Then If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.EnvelopeQueued, pEnvelope.User.Email) = False Then
Return False Return False
End If End If
Dim oSendResult As Boolean = False Dim oSendResult As Boolean = False
@@ -64,9 +64,9 @@ Public Class ActionService
Public Function DeleteEnvelope(pEnvelope As Envelope, pReason As String) As Boolean Public Function DeleteEnvelope(pEnvelope As Envelope, pReason As String) As Boolean
Dim oStatus As EnvelopeStatus Dim oStatus As EnvelopeStatus
If pEnvelope.IsAlreadySent Then If pEnvelope.IsAlreadySent Then
oStatus = Constants.EnvelopeStatus.EnvelopeWithdrawn oStatus = EnvelopeStatus.EnvelopeWithdrawn
Else Else
oStatus = Constants.EnvelopeStatus.EnvelopeDeleted oStatus = EnvelopeStatus.EnvelopeDeleted
End If End If
Dim oUpd = $"UPDATE TBSIG_ENVELOPE SET REJECTION_REASON = '{pReason}' WHERE GUID = {pEnvelope.Id}" Dim oUpd = $"UPDATE TBSIG_ENVELOPE SET REJECTION_REASON = '{pReason}' WHERE GUID = {pEnvelope.Id}"
myDatabase.ExecuteNonQuery(oUpd) myDatabase.ExecuteNonQuery(oUpd)
@@ -97,7 +97,7 @@ Public Class ActionService
Public Function OpenEnvelope(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean Public Function OpenEnvelope(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
Dim oUserReference = pReceiver.Email Dim oUserReference = pReceiver.Email
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.DocumentOpened, oUserReference) = False Then If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.DocumentOpened, oUserReference) = False Then
Return False Return False
End If End If
@@ -107,7 +107,7 @@ Public Class ActionService
Public Function RequestAccessCode(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean Public Function RequestAccessCode(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
Dim oUserReference = pReceiver.Email Dim oUserReference = pReceiver.Email
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.AccessCodeRequested, oUserReference) = False Then If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.AccessCodeRequested, oUserReference) = False Then
Return False Return False
End If End If
@@ -117,7 +117,7 @@ Public Class ActionService
Public Function EnterCorrectAccessCode(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean Public Function EnterCorrectAccessCode(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
Dim oUserReference = pReceiver.Email Dim oUserReference = pReceiver.Email
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.AccessCodeCorrect, oUserReference) = False Then If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.AccessCodeCorrect, oUserReference) = False Then
Return False Return False
End If End If
@@ -127,7 +127,7 @@ Public Class ActionService
Public Function EnterIncorrectAccessCode(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean Public Function EnterIncorrectAccessCode(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
Dim oUserReference = pReceiver.Email Dim oUserReference = pReceiver.Email
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.AccessCodeIncorrect, oUserReference) = False Then If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.AccessCodeIncorrect, oUserReference) = False Then
Return False Return False
End If End If
@@ -137,7 +137,7 @@ Public Class ActionService
Public Function SignEnvelope(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean Public Function SignEnvelope(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
Dim oUserReference = pReceiver.Email Dim oUserReference = pReceiver.Email
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.DocumentSigned, oUserReference) = False Then If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.DocumentSigned, oUserReference) = False Then
Return False Return False
End If End If
@@ -145,7 +145,7 @@ Public Class ActionService
End Function End Function
Public Function FinalizeEnvelope(pEnvelope As Envelope) As Boolean Public Function FinalizeEnvelope(pEnvelope As Envelope) As Boolean
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.EnvelopeArchived, "System") = False Then If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.EnvelopeArchived, "System") = False Then
Return False Return False
End If End If
@@ -153,7 +153,7 @@ Public Class ActionService
End Function End Function
Public Function CompleteEnvelope(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean ', pAttachment As String Public Function CompleteEnvelope(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean ', pAttachment As String
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.MessageCompletionSent, pReceiver.Email) = False Then If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.MessageCompletionSent, pReceiver.Email) = False Then
Return False Return False
End If End If
@@ -161,7 +161,7 @@ Public Class ActionService
End Function End Function
Public Function CompleteEnvelope(pEnvelope As Envelope) As Boolean ', pAttachment As String Public Function CompleteEnvelope(pEnvelope As Envelope) As Boolean ', pAttachment As String
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.MessageCompletionSent, pEnvelope.User.Email) = False Then If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.MessageCompletionSent, pEnvelope.User.Email) = False Then
Return False Return False
End If End If
@@ -169,7 +169,7 @@ Public Class ActionService
End Function End Function
Public Function CreateReport(pEnvelope As Envelope) As Boolean Public Function CreateReport(pEnvelope As Envelope) As Boolean
If HistoryService.SetEnvelopeStatus(pEnvelope, Constants.EnvelopeStatus.EnvelopeReportCreated, "System") = False Then If HistoryService.SetEnvelopeStatus(pEnvelope, EnvelopeStatus.EnvelopeReportCreated, "System") = False Then
Return False Return False
End If End If

View File

@@ -1,7 +1,4 @@
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging
Imports EnvelopeGenerator.Common.My.Resources
Public Class EmailService Public Class EmailService
Inherits BaseService Inherits BaseService
@@ -18,7 +15,7 @@ Public Class EmailService
Public Function SendEnvelopeDeletedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver, pReason As String) As Boolean Public Function SendEnvelopeDeletedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver, pReason As String) As Boolean
Logger.Debug("SendEnvelopeDeletedEmail - Creating email data object...") Logger.Debug("SendEnvelopeDeletedEmail - Creating email data object...")
Dim oEmailData As New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageDeletionSent) With Dim oEmailData As New EmailData(pEnvelope, pReceiver, Domain.Constants.EnvelopeStatus.MessageDeletionSent) With
{ {
.SignatureLink = "", .SignatureLink = "",
.ADDED_WHO_PROCESS = pEnvelope.CURRENT_WORK_APP .ADDED_WHO_PROCESS = pEnvelope.CURRENT_WORK_APP
@@ -36,7 +33,7 @@ Public Class EmailService
Public Function SendDocumentReceivedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean Public Function SendDocumentReceivedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
Logger.Debug("Creating email data object.") Logger.Debug("Creating email data object.")
Dim oEmailData As New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageInvitationSent) With Dim oEmailData As New EmailData(pEnvelope, pReceiver, Domain.Constants.EnvelopeStatus.MessageInvitationSent) With
{ {
.SignatureLink = Helpers.GetEnvelopeURL(State.DbConfig.SignatureHost, pEnvelope.Uuid, pReceiver.Signature), .SignatureLink = Helpers.GetEnvelopeURL(State.DbConfig.SignatureHost, pEnvelope.Uuid, pReceiver.Signature),
.ADDED_WHO_PROCESS = pEnvelope.CURRENT_WORK_APP .ADDED_WHO_PROCESS = pEnvelope.CURRENT_WORK_APP
@@ -56,7 +53,7 @@ Public Class EmailService
Logger.Debug($"State.DbConfig.SignatureHost: {State.DbConfig.SignatureHost}") Logger.Debug($"State.DbConfig.SignatureHost: {State.DbConfig.SignatureHost}")
Logger.Debug($" pEnvelope.Uuid: {pEnvelope.Uuid}") Logger.Debug($" pEnvelope.Uuid: {pEnvelope.Uuid}")
Logger.Debug($" pReceiver.Signature: {pReceiver.Signature}") Logger.Debug($" pReceiver.Signature: {pReceiver.Signature}")
Dim oEmailData As New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageInvitationSent) With Dim oEmailData As New EmailData(pEnvelope, pReceiver, Domain.Constants.EnvelopeStatus.MessageInvitationSent) With
{ {
.SignatureLink = Helpers.GetEnvelopeURL(State.DbConfig.SignatureHost, pEnvelope.Uuid, pReceiver.Signature), .SignatureLink = Helpers.GetEnvelopeURL(State.DbConfig.SignatureHost, pEnvelope.Uuid, pReceiver.Signature),
.ADDED_WHO_PROCESS = pEnvelope.CURRENT_WORK_APP .ADDED_WHO_PROCESS = pEnvelope.CURRENT_WORK_APP
@@ -70,7 +67,7 @@ Public Class EmailService
Logger.Debug($"State.DbConfig.SignatureHost: {State.DbConfig.SignatureHost}") Logger.Debug($"State.DbConfig.SignatureHost: {State.DbConfig.SignatureHost}")
Logger.Debug($" pEnvelope.Uuid: {pEnvelope.Uuid}") Logger.Debug($" pEnvelope.Uuid: {pEnvelope.Uuid}")
Logger.Debug($" pReceiver.Signature: {pReceiver.Signature}") Logger.Debug($" pReceiver.Signature: {pReceiver.Signature}")
Dim oEmailData As New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageAccessCodeSent) With Dim oEmailData As New EmailData(pEnvelope, pReceiver, Domain.Constants.EnvelopeStatus.MessageAccessCodeSent) With
{ {
.SignatureLink = Helpers.GetEnvelopeURL(State.DbConfig.SignatureHost, pEnvelope.Uuid, pReceiver.Signature), .SignatureLink = Helpers.GetEnvelopeURL(State.DbConfig.SignatureHost, pEnvelope.Uuid, pReceiver.Signature),
.ADDED_WHO_PROCESS = pEnvelope.CURRENT_WORK_APP .ADDED_WHO_PROCESS = pEnvelope.CURRENT_WORK_APP
@@ -88,7 +85,7 @@ Public Class EmailService
Public Function SendSignedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean Public Function SendSignedEmail(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean
Logger.Debug("Creating email data object.") Logger.Debug("Creating email data object.")
Dim oEmailData = New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageConfirmationSent) With Dim oEmailData = New EmailData(pEnvelope, pReceiver, Domain.Constants.EnvelopeStatus.MessageConfirmationSent) With
{ {
.SignatureLink = "" .SignatureLink = ""
} }
@@ -105,7 +102,7 @@ Public Class EmailService
Public Function SendDocumentCompletedEmailToReceiver(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean ', pAttachment As String Public Function SendDocumentCompletedEmailToReceiver(pEnvelope As Envelope, pReceiver As EnvelopeReceiver) As Boolean ', pAttachment As String
Logger.Debug("Creating email data object.") Logger.Debug("Creating email data object.")
Dim oEmailData = New EmailData(pEnvelope, pReceiver, Constants.EnvelopeStatus.MessageCompletionSent) With Dim oEmailData = New EmailData(pEnvelope, pReceiver, Domain.Constants.EnvelopeStatus.MessageCompletionSent) With
{ {
.SignatureLink = "", .SignatureLink = "",
.ATT1_RELATED_ID = pEnvelope.Id, .ATT1_RELATED_ID = pEnvelope.Id,
@@ -126,7 +123,7 @@ Public Class EmailService
Public Function SendDocumentCompletedEmailToCreator(pEnvelope As Envelope) As Boolean ', pAttachment As String Public Function SendDocumentCompletedEmailToCreator(pEnvelope As Envelope) As Boolean ', pAttachment As String
Logger.Debug("Creating email data object.") Logger.Debug("Creating email data object.")
Dim oEmailData = New EmailData(pEnvelope, Constants.EnvelopeStatus.MessageCompletionSent) With Dim oEmailData = New EmailData(pEnvelope, Domain.Constants.EnvelopeStatus.MessageCompletionSent) With
{ {
.SignatureLink = "", .SignatureLink = "",
.ATT1_RELATED_ID = pEnvelope.Id, .ATT1_RELATED_ID = pEnvelope.Id,

View File

@@ -1,7 +1,5 @@
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Base Imports EnvelopeGenerator.Domain.Constants
Imports DigitalData.Modules.Logging
Imports EnvelopeGenerator.Common.Constants
Public Class HistoryService Public Class HistoryService
Inherits BaseService Inherits BaseService

View File

@@ -1,5 +1,6 @@
Imports DigitalData.Modules.Base Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports EnvelopeGenerator.Domain.Constants
Public Class TemplateService Public Class TemplateService
Inherits BaseService Inherits BaseService
@@ -35,7 +36,7 @@ Public Class TemplateService
Public Sub FillDocumentReceivedEmailBody(pEmailData As EmailData) Public Sub FillDocumentReceivedEmailBody(pEmailData As EmailData)
InitDictionary(pEmailData) InitDictionary(pEmailData)
Dim oTemplate = EmailHtmlTemplateModel.GetById(Constants.EmailTemplateType.DocumentReceived) Dim oTemplate = EmailHtmlTemplateModel.GetById(EmailTemplateType.DocumentReceived)
pEmailData.EmailBody = FillTemplate(oTemplate.Body) pEmailData.EmailBody = FillTemplate(oTemplate.Body)
pEmailData.EmailSubject = FillTemplate(oTemplate.Subject) pEmailData.EmailSubject = FillTemplate(oTemplate.Subject)
@@ -43,7 +44,7 @@ Public Class TemplateService
Public Sub FillEnvelopeDeletedEmailBody(pEmailData As EmailData, pReason As String) Public Sub FillEnvelopeDeletedEmailBody(pEmailData As EmailData, pReason As String)
InitDictionary(pEmailData, pReason) InitDictionary(pEmailData, pReason)
Dim oTemplate = EmailHtmlTemplateModel.GetById(Constants.EmailTemplateType.DocumentDeleted) Dim oTemplate = EmailHtmlTemplateModel.GetById(EmailTemplateType.DocumentDeleted)
pEmailData.EmailBody = FillTemplate(oTemplate.Body, pReason) pEmailData.EmailBody = FillTemplate(oTemplate.Body, pReason)
pEmailData.EmailSubject = FillTemplate(oTemplate.Subject) pEmailData.EmailSubject = FillTemplate(oTemplate.Subject)
@@ -51,7 +52,7 @@ Public Class TemplateService
Public Sub FillDocumentSignedEmailBody(pEmailData As EmailData) Public Sub FillDocumentSignedEmailBody(pEmailData As EmailData)
InitDictionary(pEmailData) InitDictionary(pEmailData)
Dim oTemplate = EmailHtmlTemplateModel.GetById(Constants.EmailTemplateType.DocumentSigned) Dim oTemplate = EmailHtmlTemplateModel.GetById(EmailTemplateType.DocumentSigned)
pEmailData.EmailBody = FillTemplate(oTemplate.Body) pEmailData.EmailBody = FillTemplate(oTemplate.Body)
pEmailData.EmailSubject = FillTemplate(oTemplate.Subject) pEmailData.EmailSubject = FillTemplate(oTemplate.Subject)
@@ -59,7 +60,7 @@ Public Class TemplateService
Public Sub FillDocumentCompletedEmailBody(pEmailData As EmailData) Public Sub FillDocumentCompletedEmailBody(pEmailData As EmailData)
InitDictionary(pEmailData) InitDictionary(pEmailData)
Dim oTemplate = EmailHtmlTemplateModel.GetById(Constants.EmailTemplateType.DocumentCompleted) Dim oTemplate = EmailHtmlTemplateModel.GetById(EmailTemplateType.DocumentCompleted)
pEmailData.EmailBody = FillTemplate(oTemplate.Body) pEmailData.EmailBody = FillTemplate(oTemplate.Body)
pEmailData.EmailSubject = FillTemplate(oTemplate.Subject) pEmailData.EmailSubject = FillTemplate(oTemplate.Subject)
@@ -67,7 +68,7 @@ Public Class TemplateService
Public Sub FillDocumentAccessCodeReceivedEmailBody(pEmailData As EmailData) Public Sub FillDocumentAccessCodeReceivedEmailBody(pEmailData As EmailData)
InitDictionary(pEmailData) InitDictionary(pEmailData)
Dim oTemplate = EmailHtmlTemplateModel.GetById(Constants.EmailTemplateType.DocumentAccessCodeReceived) Dim oTemplate = EmailHtmlTemplateModel.GetById(EmailTemplateType.DocumentAccessCodeReceived)
pEmailData.EmailBody = FillTemplate(oTemplate.Body) pEmailData.EmailBody = FillTemplate(oTemplate.Body)
pEmailData.EmailSubject = FillTemplate(oTemplate.Subject) pEmailData.EmailSubject = FillTemplate(oTemplate.Subject)

View File

@@ -0,0 +1,183 @@
#if NETFRAMEWORK
using System.Collections.Generic;
#endif
namespace EnvelopeGenerator.Domain
{
public static class Constants
{
#region Status Fields
// http://wiki.dd/xwiki13/bin/view/Anwendungen/Produkt-Handbuch/Sonstiges/SignFlow/Envelope%20Status/
public enum EnvelopeStatus
{
Invalid = 0,
EnvelopeCreated = 1001,
EnvelopeSaved = 1002,
EnvelopeQueued = 1003,
EnvelopeSent = 1004, // Nicht verwendet
EnvelopePartlySigned = 1005,
EnvelopeCompletelySigned = 1006,
EnvelopeReportCreated = 1007,
EnvelopeArchived = 1008,
EnvelopeDeleted = 1009,
EnvelopeRejected = 10007,
EnvelopeWithdrawn = 10009,
AccessCodeRequested = 2001,
AccessCodeCorrect = 2002,
AccessCodeIncorrect = 2003,
DocumentOpened = 2004,
DocumentSigned = 2005,
DocumentForwarded = 2006,
DocumentRejected = 2007,
EnvelopeShared = 2008,
EnvelopeViewed = 2009,
MessageInvitationSent = 3001, // Wird von Trigger verwendet
MessageAccessCodeSent = 3002,
MessageConfirmationSent = 3003,
MessageDeletionSent = 3004,
MessageCompletionSent = 3005,
DocumentMod_Rotation = 4001
}
public static class Status
{
public static readonly IReadOnlyList<EnvelopeStatus> NonHist = new List<EnvelopeStatus>
{
EnvelopeStatus.Invalid,
EnvelopeStatus.EnvelopeSaved,
EnvelopeStatus.EnvelopeSent,
EnvelopeStatus.EnvelopePartlySigned
};
public static readonly IReadOnlyList<EnvelopeStatus> RelatedToFormApp = new List<EnvelopeStatus>
{
EnvelopeStatus.EnvelopeCreated,
EnvelopeStatus.DocumentMod_Rotation
};
}
// TODO: standardize in xwiki
public enum ReferenceType
{
Sender = 1,
Receiver,
System,
Unknown
}
public enum ElementStatus
{
Created = 0
}
public enum DocumentStatus
{
Created = 0,
Signed = 1
}
public enum ReceiverStatus
{
Unsigned = 0,
Signed = 1
}
#endregion
#region Type Fields
public enum ElementType
{
Signature = 1
}
public enum ContractType
{
Contract = 1,
ReadAndSign = 2
}
public enum ColorType
{
ReceiverColor1 = 1,
ReceiverColor2 = 2,
ReceiverColor3 = 3,
ReceiverColor4 = 4,
ReceiverColor5 = 5,
ReceiverColor6 = 6,
ReceiverColor7 = 7,
ReceiverColor8 = 8,
ReceiverColor9 = 9,
ReceiverColor10 = 10
}
public enum CertificationType
{
AdvancedElectronicSignature = 1
// ElectronicSignature = 1
// QualifiedSignature = 2
}
public enum FinalEmailType
{
No = 0,
Yes = 1,
YesWithAttachment = 2
}
public enum PageOrientation
{
Portrait = 0,
Landscape = 1
}
public enum EmailTemplateType
{
DocumentReceived = 0,
DocumentSigned,
DocumentDeleted,
DocumentCompleted,
DocumentAccessCodeReceived,
DocumentShared,
TotpSecret,
DocumentRejected_ADM,
DocumentRejected_REC,
DocumentRejected_REC_2
}
public enum EncodeType
{
EnvelopeReceiver,
EnvelopeReceiverReadOnly,
Undefined,
DocumentForwarded,
DocumentShared
}
#endregion
#region Role
public static class ReceiverRole
{
public const string PreAuth = "PreAuth";
public const string FullyAuth = "FullyAuth";
}
#endregion
#region Constants
public const string DATABASE = "DATABASE";
public const string LOGCONFIG = "LOGCONFIG";
public const string GDPICTURE = "GDPICTURE";
public const string PDF_BURNER_PARAMS = "PDFBurnerParams";
public const string GREEN_300 = "#bbf7d0";
public const string RED_300 = "#fecaca";
public const string ORANGE_300 = "#fed7aa";
#endregion
}
}

View File

@@ -1,32 +1,25 @@
using DigitalData.Core.Abstractions; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json.Serialization;
namespace EnvelopeGenerator.Domain.Entities namespace EnvelopeGenerator.Domain.Entities
{ {
[Table("TBSIG_CONFIG", Schema = "dbo")] [Table("TBSIG_CONFIG", Schema = "dbo")]
public class Config : IUnique<int> public class Config
{ {
[Column("DOCUMENT_PATH", TypeName = "nvarchar(256)")] [Column("DOCUMENT_PATH", TypeName = "nvarchar(256)")]
public string? DocumentPath { get; init; } public string DocumentPath { get; set; }
[Column("SENDING_PROFILE", TypeName = "int")] [Column("SENDING_PROFILE", TypeName = "int")]
[Required] [Required]
public required int SendingProfile { get; init; } public int SendingProfile { get; set; }
[Column("SIGNATURE_HOST", TypeName = "nvarchar(128)")] [Column("SIGNATURE_HOST", TypeName = "nvarchar(128)")]
public string? SignatureHost { get; init; } public string SignatureHost { get; set; }
[Column("EXTERNAL_PROGRAM_NAME", TypeName = "nvarchar(30)")] [Column("EXTERNAL_PROGRAM_NAME", TypeName = "nvarchar(30)")]
public string? ExternalProgramName { get; init; } public string ExternalProgramName { get; set; }
[Column("EXPORT_PATH", TypeName = "nvarchar(256)")] [Column("EXPORT_PATH", TypeName = "nvarchar(256)")]
public string? ExportPath { get; init; } public string ExportPath { get; set; }
[Obsolete("Configuration does not have an ID; it represents a single table in the database.")]
[NotMapped]
[JsonIgnore]
public int Id => throw new InvalidOperationException("This configuration does not support an ID as it represents a single table in the database.");
} }
} }

View File

@@ -1,12 +1,14 @@
using DigitalData.Core.Abstractions; using System.ComponentModel;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
#if NETFRAMEWORK
using System;
#endif
namespace EnvelopeGenerator.Domain.Entities namespace EnvelopeGenerator.Domain.Entities
{ {
[Table("TBSIG_DOCUMENT_RECEIVER_ELEMENT", Schema = "dbo")] [Table("TBSIG_DOCUMENT_RECEIVER_ELEMENT", Schema = "dbo")]
public class DocumentReceiverElement : IUnique<int> public class DocumentReceiverElement
{ {
[Key] [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@@ -57,7 +59,7 @@ namespace EnvelopeGenerator.Domain.Entities
public bool Required { get; set; } public bool Required { get; set; }
[Column("TOOLTIP")] [Column("TOOLTIP")]
public string? Tooltip { get; set; } public string Tooltip { get; set; }
[Required] [Required]
[Column("READ_ONLY")] [Column("READ_ONLY")]
@@ -75,13 +77,13 @@ namespace EnvelopeGenerator.Domain.Entities
public DateTime AddedWhen { get; set; } public DateTime AddedWhen { get; set; }
[Column("CHANGED_WHEN", TypeName = "datetime")] [Column("CHANGED_WHEN", TypeName = "datetime")]
public DateTime? ChangedWhen { get; set; } public DateTime ChangedWhen { get; set; }
[ForeignKey("DocumentId")] [ForeignKey("DocumentId")]
public virtual EnvelopeDocument? Document { get; set; } public virtual EnvelopeDocument Document { get; set; }
[ForeignKey("ReceiverId")] [ForeignKey("ReceiverId")]
public virtual Receiver? Receiver { get; set; } public virtual Receiver Receiver { get; set; }
[NotMapped] [NotMapped]
public double Top => Math.Round(Y, 5); public double Top => Math.Round(Y, 5);

View File

@@ -1,11 +1,13 @@
using DigitalData.Core.Abstractions; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
#if NETFRAMEWORK
using System;
#endif
namespace EnvelopeGenerator.Domain.Entities namespace EnvelopeGenerator.Domain.Entities
{ {
[Table("TBSIG_DOCUMENT_STATUS", Schema = "dbo")] [Table("TBSIG_DOCUMENT_STATUS", Schema = "dbo")]
public class DocumentStatus : IUnique<int> public class DocumentStatus
{ {
[Key] [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@@ -25,22 +27,22 @@ namespace EnvelopeGenerator.Domain.Entities
public int Status { get; set; } public int Status { get; set; }
[Column("STATUS_CHANGED_WHEN", TypeName = "datetime")] [Column("STATUS_CHANGED_WHEN", TypeName = "datetime")]
public DateTime? StatusChangedWhen { get; set; } public DateTime StatusChangedWhen { get; set; }
[Column("VALUE", TypeName = "nvarchar(max)")] [Column("VALUE", TypeName = "nvarchar(max)")]
public string? Value { get; set; } public string Value { get; set; }
[Required] [Required]
[Column("ADDED_WHEN", TypeName = "datetime")] [Column("ADDED_WHEN", TypeName = "datetime")]
public DateTime AddedWhen { get; set; } public DateTime AddedWhen { get; set; }
[Column("CHANGED_WHEN", TypeName = "datetime")] [Column("CHANGED_WHEN", TypeName = "datetime")]
public DateTime? ChangedWhen { get; set; } public DateTime ChangedWhen { get; set; }
[ForeignKey("EnvelopeId")] [ForeignKey("EnvelopeId")]
public virtual Envelope? Envelope { get; set; } public virtual Envelope Envelope { get; set; }
[ForeignKey("ReceiverId")] [ForeignKey("ReceiverId")]
public virtual Receiver? Receiver { get; set; } public virtual Receiver Receiver { get; set; }
} }
} }

View File

@@ -1,12 +1,14 @@
using DigitalData.Core.Abstractions; using System.ComponentModel;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
#if NETFRAMEWORK
using System;
#endif
namespace EnvelopeGenerator.Domain.Entities namespace EnvelopeGenerator.Domain.Entities
{ {
[Table("TBSIG_EMAIL_TEMPLATE", Schema = "dbo")] [Table("TBSIG_EMAIL_TEMPLATE", Schema = "dbo")]
public class EmailTemplate : IUnique<int> public class EmailTemplate
{ {
[Key] [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@@ -14,13 +16,13 @@ namespace EnvelopeGenerator.Domain.Entities
public int Id { get; set; } public int Id { get; set; }
[Column("NAME", TypeName = "nvarchar(64)")] [Column("NAME", TypeName = "nvarchar(64)")]
public string? Name { get; set; } public string Name { get; set; }
[Column("BODY", TypeName = "nvarchar(max)")] [Column("BODY", TypeName = "nvarchar(max)")]
public string? Body { get; set; } public string Body { get; set; }
[Column("SUBJECT", TypeName = "nvarchar(512)")] [Column("SUBJECT", TypeName = "nvarchar(512)")]
public string? Subject { get; set; } public string Subject { get; set; }
[Required] [Required]
[Column("ADDED_WHEN", TypeName = "datetime")] [Column("ADDED_WHEN", TypeName = "datetime")]
@@ -28,6 +30,6 @@ namespace EnvelopeGenerator.Domain.Entities
public DateTime AddedWhen { get; set; } public DateTime AddedWhen { get; set; }
[Column("CHANGED_WHEN", TypeName = "datetime")] [Column("CHANGED_WHEN", TypeName = "datetime")]
public DateTime? ChangedWhen { get; set; } public DateTime ChangedWhen { get; set; }
} }
} }

View File

@@ -1,12 +1,14 @@
using DigitalData.Core.Abstractions; using System.ComponentModel.DataAnnotations;
using EnvelopeGenerator.Common;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
#if NETFRAMEWORK
using System;
using System.Collections.Generic;
#endif
namespace EnvelopeGenerator.Domain.Entities namespace EnvelopeGenerator.Domain.Entities
{ {
[Table("TBSIG_ENVELOPE", Schema = "dbo")] [Table("TBSIG_ENVELOPE", Schema = "dbo")]
public class Envelope : IUnique<int> public class Envelope
{ {
[Key] [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@@ -26,86 +28,86 @@ namespace EnvelopeGenerator.Domain.Entities
[Required] [Required]
[Column("ENVELOPE_UUID", TypeName = "nvarchar(36)")] [Column("ENVELOPE_UUID", TypeName = "nvarchar(36)")]
public required string Uuid { get; init; } public string Uuid { get; set; }
[Column("MESSAGE", TypeName = "nvarchar(max)")] [Column("MESSAGE", TypeName = "nvarchar(max)")]
public string? Message { get; set; } public string Message { get; set; }
[Column("EXPIRES_WHEN", TypeName = "datetime")] [Column("EXPIRES_WHEN", TypeName = "datetime")]
public DateTime? ExpiresWhen { get; set; } public DateTime ExpiresWhen { get; set; }
[Column("EXPIRES_WARNING_WHEN", TypeName = "datetime")] [Column("EXPIRES_WARNING_WHEN", TypeName = "datetime")]
public DateTime? ExpiresWarningWhen { get; set; } public DateTime ExpiresWarningWhen { get; set; }
[Required] [Required]
[Column("ADDED_WHEN", TypeName = "datetime")] [Column("ADDED_WHEN", TypeName = "datetime")]
public DateTime AddedWhen { get; set; } public DateTime AddedWhen { get; set; }
[Column("CHANGED_WHEN", TypeName = "datetime")] [Column("CHANGED_WHEN", TypeName = "datetime")]
public DateTime? ChangedWhen { get; set; } public DateTime ChangedWhen { get; set; }
[Column("TITLE", TypeName = "nvarchar(128)")] [Column("TITLE", TypeName = "nvarchar(128)")]
public string? Title { get; set; } public string Title { get; set; }
[Column("CONTRACT_TYPE")] [Column("CONTRACT_TYPE")]
public int? ContractType { get; set; } public int ContractType { get; set; }
[Column("LANGUAGE", TypeName = "nvarchar(5)")] [Column("LANGUAGE", TypeName = "nvarchar(5)")]
public string? Language { get; set; } public string Language { get; set; }
[Column("SEND_REMINDER_EMAILS")] [Column("SEND_REMINDER_EMAILS")]
public bool? SendReminderEmails { get; set; } public bool SendReminderEmails { get; set; }
[Column("FIRST_REMINDER_DAYS")] [Column("FIRST_REMINDER_DAYS")]
public int? FirstReminderDays { get; set; } public int FirstReminderDays { get; set; }
[Column("REMINDER_INTERVAL_DAYS")] [Column("REMINDER_INTERVAL_DAYS")]
public int? ReminderIntervalDays { get; set; } public int ReminderIntervalDays { get; set; }
[Column("ENVELOPE_TYPE")] [Column("ENVELOPE_TYPE")]
public int? EnvelopeTypeId { get; set; } public int EnvelopeTypeId { get; set; }
[Column("CERTIFICATION_TYPE")] [Column("CERTIFICATION_TYPE")]
public int? CertificationType { get; set; } public int CertificationType { get; set; }
[Column("USE_ACCESS_CODE")] [Column("USE_ACCESS_CODE")]
public bool? UseAccessCode { get; set; } public bool UseAccessCode { get; set; }
[Column("FINAL_EMAIL_TO_CREATOR")] [Column("FINAL_EMAIL_TO_CREATOR")]
public int? FinalEmailToCreator { get; set; } public int FinalEmailToCreator { get; set; }
[Column("FINAL_EMAIL_TO_RECEIVERS")] [Column("FINAL_EMAIL_TO_RECEIVERS")]
public int? FinalEmailToReceivers { get; set; } public int FinalEmailToReceivers { get; set; }
[Column("EXPIRES_WHEN_DAYS")] [Column("EXPIRES_WHEN_DAYS")]
public int? ExpiresWhenDays { get; set; } public int ExpiresWhenDays { get; set; }
[Column("EXPIRES_WARNING_WHEN_DAYS")] [Column("EXPIRES_WARNING_WHEN_DAYS")]
public int? ExpiresWarningWhenDays { get; set; } public int ExpiresWarningWhenDays { get; set; }
[Column("TFA_ENABLED", TypeName = "bit")] [Column("TFA_ENABLED", TypeName = "bit")]
public bool TFAEnabled { get; set; } public bool TFAEnabled { get; set; }
[Column("DOC_RESULT", TypeName = "varbinary(max)")] [Column("DOC_RESULT", TypeName = "varbinary(max)")]
public byte[]? DocResult { get; init; } public byte[] DocResult { get; set; }
/// <summary> /// <summary>
/// The sender of envelope /// The sender of envelope
/// </summary> /// </summary>
[ForeignKey("UserId")] [ForeignKey("UserId")]
public DigitalData.UserManager.Domain.Entities.User? User { get; set; } public User User { get; set; }
[ForeignKey("EnvelopeTypeId")] [ForeignKey("EnvelopeTypeId")]
public EnvelopeType? EnvelopeType { get; set; } public EnvelopeType EnvelopeType { get; set; }
[NotMapped] [NotMapped]
public string? EnvelopeTypeTitle => EnvelopeType?.Title; public string EnvelopeTypeTitle => EnvelopeType.Title;
[NotMapped] [NotMapped]
public bool IsAlreadySent => Status > (int)Constants.EnvelopeStatus.EnvelopeSaved; public bool IsAlreadySent => Status > (int)Constants.EnvelopeStatus.EnvelopeSaved;
public IEnumerable<EnvelopeDocument>? Documents { get; set; } public IEnumerable<EnvelopeDocument> Documents { get; set; }
public IEnumerable<EnvelopeHistory>? History { get; set; } public IEnumerable<EnvelopeHistory> History { get; set; }
} }
} }

View File

@@ -1,11 +1,10 @@
using DigitalData.Core.Abstractions; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
namespace EnvelopeGenerator.Domain.Entities namespace EnvelopeGenerator.Domain.Entities
{ {
[Table("TBSIG_ENVELOPE_CERTIFICATE", Schema = "dbo")] [Table("TBSIG_ENVELOPE_CERTIFICATE", Schema = "dbo")]
public class EnvelopeCertificate : IUnique<int> public class EnvelopeCertificate
{ {
[Key] [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@@ -18,11 +17,11 @@ namespace EnvelopeGenerator.Domain.Entities
[Required] [Required]
[Column("ENVELOPE_UUID", TypeName = "nvarchar(36)")] [Column("ENVELOPE_UUID", TypeName = "nvarchar(36)")]
public required string EnvelopeUuid { get; set; } public string EnvelopeUuid { get; set; }
[Required] [Required]
[Column("ENVELOPE_SUBJECT", TypeName = "nvarchar(512)")] [Column("ENVELOPE_SUBJECT", TypeName = "nvarchar(512)")]
public required string EnvelopeSubject { get; set; } public string EnvelopeSubject { get; set; }
[Required] [Required]
[Column("CREATOR_ID")] [Column("CREATOR_ID")]
@@ -30,11 +29,11 @@ namespace EnvelopeGenerator.Domain.Entities
[Required] [Required]
[Column("CREATOR_NAME", TypeName = "nvarchar(128)")] [Column("CREATOR_NAME", TypeName = "nvarchar(128)")]
public required string CreatorName { get; set; } public string CreatorName { get; set; }
[Required] [Required]
[Column("CREATOR_EMAIL", TypeName = "nvarchar(128)")] [Column("CREATOR_EMAIL", TypeName = "nvarchar(128)")]
public required string CreatorEmail { get; set; } public string CreatorEmail { get; set; }
[Required] [Required]
[Column("ENVELOPE_STATUS")] [Column("ENVELOPE_STATUS")]

View File

@@ -1,11 +1,14 @@
using DigitalData.Core.Abstractions; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
#if NETFRAMEWORK
using System;
using System.Collections.Generic;
#endif
namespace EnvelopeGenerator.Domain.Entities; namespace EnvelopeGenerator.Domain.Entities
{
[Table("TBSIG_ENVELOPE_DOCUMENT", Schema = "dbo")] [Table("TBSIG_ENVELOPE_DOCUMENT", Schema = "dbo")]
public class EnvelopeDocument : IUnique<int> public class EnvelopeDocument
{ {
[Key] [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@@ -18,10 +21,11 @@ public class EnvelopeDocument : IUnique<int>
[Required] [Required]
[Column("ADDED_WHEN", TypeName = "datetime")] [Column("ADDED_WHEN", TypeName = "datetime")]
public required DateTime AddedWhen { get; set; } public DateTime AddedWhen { get; set; }
[Column("BYTE_DATA", TypeName = "varbinary(max)")] [Column("BYTE_DATA", TypeName = "varbinary(max)")]
public byte[]? ByteData { get; init; } public byte[] ByteData { get; set; }
public IEnumerable<DocumentReceiverElement>? Elements { get; set; } public IEnumerable<DocumentReceiverElement> Elements { get; set; }
}
} }

View File

@@ -1,12 +1,13 @@
using DigitalData.Core.Abstractions; using System.ComponentModel.DataAnnotations;
using DigitalData.UserManager.Domain.Entities;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
#if NETFRAMEWORK
using System;
#endif
namespace EnvelopeGenerator.Domain.Entities namespace EnvelopeGenerator.Domain.Entities
{ {
[Table("TBSIG_ENVELOPE_HISTORY", Schema = "dbo")] [Table("TBSIG_ENVELOPE_HISTORY", Schema = "dbo")]
public class EnvelopeHistory : IUnique<long> public class EnvelopeHistory
{ {
[Key] [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@@ -19,7 +20,7 @@ namespace EnvelopeGenerator.Domain.Entities
[Required] [Required]
[Column("USER_REFERENCE", TypeName = "nvarchar(128)")] [Column("USER_REFERENCE", TypeName = "nvarchar(128)")]
public required string UserReference { get; init; } public string UserReference { get; set; }
[Required] [Required]
[Column("STATUS")] [Column("STATUS")]
@@ -31,15 +32,15 @@ namespace EnvelopeGenerator.Domain.Entities
public DateTime AddedWhen { get; set; } public DateTime AddedWhen { get; set; }
[Column("ACTION_DATE", TypeName = "datetime")] [Column("ACTION_DATE", TypeName = "datetime")]
public DateTime? ActionDate { get; set; } public DateTime ActionDate { get; set; }
[Column("COMMENT", TypeName = "nvarchar(max)")] [Column("COMMENT", TypeName = "nvarchar(max)")]
public string? Comment { get; set; } public string Comment { get; set; }
[ForeignKey("UserReference")] [ForeignKey("UserReference")]
public virtual User? Sender { get; set; } public virtual User Sender { get; set; }
[ForeignKey("UserReference")] [ForeignKey("UserReference")]
public virtual Receiver? Receiver { get; set; } public virtual Receiver Receiver { get; set; }
} }
} }

View File

@@ -6,9 +6,9 @@ namespace EnvelopeGenerator.Domain.Entities
public class EnvelopeReceiver : EnvelopeReceiverBase public class EnvelopeReceiver : EnvelopeReceiverBase
{ {
[ForeignKey("EnvelopeId")] [ForeignKey("EnvelopeId")]
public Envelope? Envelope { get; set; } public Envelope Envelope { get; set; }
[ForeignKey("ReceiverId")] [ForeignKey("ReceiverId")]
public Receiver? Receiver { get; set; } public Receiver Receiver { get; set; }
} }
} }

View File

@@ -1,11 +1,13 @@
using DigitalData.Core.Abstractions; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; 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 EnvelopeReceiverBase : IUnique<(int Envelope, int Receiver)> public class EnvelopeReceiverBase
{ {
[Key] [Key]
[Column("ENVELOPE_ID")] [Column("ENVELOPE_ID")]
@@ -20,34 +22,34 @@ namespace EnvelopeGenerator.Domain.Entities
public int Sequence { get; set; } public int Sequence { get; set; }
[Column("NAME", TypeName = "nvarchar(128)")] [Column("NAME", TypeName = "nvarchar(128)")]
public string? Name { get; set; } public string Name { get; set; }
[Column("JOB_TITLE", TypeName = "nvarchar(128)")] [Column("JOB_TITLE", TypeName = "nvarchar(128)")]
public string? JobTitle { get; set; } public string JobTitle { get; set; }
[Column("COMPANY_NAME", TypeName = "nvarchar(128)")] [Column("COMPANY_NAME", TypeName = "nvarchar(128)")]
public string? CompanyName { get; set; } public string CompanyName { get; set; }
[Column("PRIVATE_MESSAGE", TypeName = "nvarchar(max)")] [Column("PRIVATE_MESSAGE", TypeName = "nvarchar(max)")]
public string? PrivateMessage { get; set; } public string PrivateMessage { get; set; }
[Column("ACCESS_CODE", TypeName = "nvarchar(64)")] [Column("ACCESS_CODE", TypeName = "nvarchar(64)")]
public string? AccessCode { get; set; } public string AccessCode { get; set; }
[Required] [Required]
[Column("ADDED_WHEN", TypeName = "datetime")] [Column("ADDED_WHEN", TypeName = "datetime")]
public DateTime AddedWhen { get; set; } public DateTime AddedWhen { get; set; }
[Column("CHANGED_WHEN", TypeName = "datetime")] [Column("CHANGED_WHEN", TypeName = "datetime")]
public DateTime? ChangedWhen { get; set; } public DateTime ChangedWhen { get; set; }
[Column("PHONE_NUMBER")] [Column("PHONE_NUMBER")]
[StringLength(20)] [StringLength(20)]
[RegularExpression(@"^\+[0-9]+$", ErrorMessage = "Phone number must start with '+' followed by digits.")] [RegularExpression(@"^\+[0-9]+$", ErrorMessage = "Phone number must start with '+' followed by digits.")]
public string? PhoneNumber { get; set; } public string PhoneNumber { get; set; }
[NotMapped] [NotMapped]
public (int Envelope, int Receiver) Id => (Envelope: EnvelopeId, Receiver: ReceiverId); public Tuple<int, int> Id => Tuple.Create(EnvelopeId, ReceiverId);
[NotMapped] [NotMapped]
public bool HasPhoneNumber => !string.IsNullOrWhiteSpace(PhoneNumber); public bool HasPhoneNumber => !string.IsNullOrWhiteSpace(PhoneNumber);

View File

@@ -1,52 +1,54 @@
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using DigitalData.Core.Abstractions;
using DigitalData.EmailProfilerDispatcher.Abstraction.Attributes; using DigitalData.EmailProfilerDispatcher.Abstraction.Attributes;
#if NETFRAMEWORK
using System;
#endif
namespace EnvelopeGenerator.Domain.Entities namespace EnvelopeGenerator.Domain.Entities
{ {
[Table("TBSIG_ENVELOPE_RECEIVER_READ_ONLY")] [Table("TBSIG_ENVELOPE_RECEIVER_READ_ONLY")]
public class EnvelopeReceiverReadOnly : IUnique<long> public class EnvelopeReceiverReadOnly
{ {
[Key] [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Column("GUID")] [Column("GUID")]
public long Id { get; init; } public long Id { get; set; }
[Column("ENVELOPE_ID")] [Column("ENVELOPE_ID")]
[Required] [Required]
public long EnvelopeId { get; init; } public long EnvelopeId { get; set; }
//TODO: remove NotMapped attribute when EnvelopeId data type is standardized //TODO: remove NotMapped attribute when EnvelopeId data type is standardized
[NotMapped] [NotMapped]
public Envelope? Envelope { get; set; } public Envelope Envelope { get; set; }
[Column("RECEIVER_MAIL")] [Column("RECEIVER_MAIL")]
[Required] [Required]
[StringLength(250)] [StringLength(250)]
[TemplatePlaceholder("NAME_RECEIVER")] [TemplatePlaceholder("NAME_RECEIVER")]
public required string ReceiverMail { get; init; } public string ReceiverMail { get; set; }
[Column("DATE_VALID")] [Column("DATE_VALID")]
[Required] [Required]
public DateTime DateValid { get; init; } public DateTime DateValid { get; set; }
[Column("ADDED_WHO")] [Column("ADDED_WHO")]
[Required] [Required]
[StringLength(100)] [StringLength(100)]
public required string AddedWho { get; init; } public string AddedWho { get; set; }
public Receiver? Receiver { get; init; } public Receiver Receiver { get; set; }
[Column("ADDED_WHEN")] [Column("ADDED_WHEN")]
[Required] [Required]
public DateTime AddedWhen { get; init; } public DateTime AddedWhen { get; set; }
[Column("CHANGED_WHO")] [Column("CHANGED_WHO")]
[StringLength(100)] [StringLength(100)]
public string? ChangedWho { get; init; } public string ChangedWho { get; set; }
[Column("CHANGED_WHEN")] [Column("CHANGED_WHEN")]
public DateTime? ChangedWhen { get; init; } public DateTime ChangedWhen { get; set; }
} }
} }

View File

@@ -1,11 +1,13 @@
using DigitalData.Core.Abstractions; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
#if NETFRAMEWORK
using System;
#endif
namespace EnvelopeGenerator.Domain.Entities namespace EnvelopeGenerator.Domain.Entities
{ {
[Table("TBSIG_ENVELOPE_TYPE", Schema = "dbo")] [Table("TBSIG_ENVELOPE_TYPE", Schema = "dbo")]
public class EnvelopeType : IUnique<int> public class EnvelopeType
{ {
[Key] [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@@ -14,46 +16,46 @@ namespace EnvelopeGenerator.Domain.Entities
[Required] [Required]
[Column("TITLE", TypeName = "nvarchar(128)")] [Column("TITLE", TypeName = "nvarchar(128)")]
public required string Title { get; set; } public string Title { get; set; }
[Column("LANGUAGE", TypeName = "nvarchar(5)")] [Column("LANGUAGE", TypeName = "nvarchar(5)")]
public string? Language { get; set; } public string Language { get; set; }
[Column("EXPIRES_DAYS")] [Column("EXPIRES_DAYS")]
public int? ExpiresDays { get; set; } public int ExpiresDays { get; set; }
[Column("CERTIFICATION_TYPE")] [Column("CERTIFICATION_TYPE")]
public int? CertificationType { get; set; } public int CertificationType { get; set; }
[Column("USE_ACCESS_CODE")] [Column("USE_ACCESS_CODE")]
public bool? UseAccessCode { get; set; } public bool UseAccessCode { get; set; }
[Column("FINAL_EMAIL_TO_CREATOR")] [Column("FINAL_EMAIL_TO_CREATOR")]
public int? FinalEmailToCreator { get; set; } public int FinalEmailToCreator { get; set; }
[Column("FINAL_EMAIL_TO_RECEIVERS")] [Column("FINAL_EMAIL_TO_RECEIVERS")]
public int? FinalEmailToReceivers { get; set; } public int FinalEmailToReceivers { get; set; }
[Required] [Required]
[Column("ADDED_WHEN", TypeName = "datetime")] [Column("ADDED_WHEN", TypeName = "datetime")]
public DateTime AddedWhen { get; set; } public DateTime AddedWhen { get; set; }
[Column("CHANGED_WHEN", TypeName = "datetime")] [Column("CHANGED_WHEN", TypeName = "datetime")]
public DateTime? ChangedWhen { get; set; } public DateTime ChangedWhen { get; set; }
[Column("EXPIRES_WARNING_DAYS")] [Column("EXPIRES_WARNING_DAYS")]
public int? ExpiresWarningDays { get; set; } public int ExpiresWarningDays { get; set; }
[Column("SEND_REMINDER_EMAILS")] [Column("SEND_REMINDER_EMAILS")]
public bool? SendReminderEmails { get; set; } public bool SendReminderEmails { get; set; }
[Column("FIRST_REMINDER_DAYS")] [Column("FIRST_REMINDER_DAYS")]
public int? FirstReminderDays { get; set; } public int FirstReminderDays { get; set; }
[Column("REMINDER_INTERVAL_DAYS")] [Column("REMINDER_INTERVAL_DAYS")]
public int? ReminderIntervalDays { get; set; } public int ReminderIntervalDays { get; set; }
[Column("CONTRACT_TYPE")] [Column("CONTRACT_TYPE")]
public int? ContractType { get; set; } public int ContractType { get; set; }
} }
} }

View File

@@ -1,11 +1,14 @@
using DigitalData.Core.Abstractions; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
#if NETFRAMEWORK
using System;
using System.Collections.Generic;
#endif
namespace EnvelopeGenerator.Domain.Entities; namespace EnvelopeGenerator.Domain.Entities
{
[Table("TBSIG_RECEIVER", Schema = "dbo")] [Table("TBSIG_RECEIVER", Schema = "dbo")]
public class Receiver : IUnique<int> public class Receiver
{ {
[Key] [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@@ -14,21 +17,22 @@ public class Receiver : IUnique<int>
[Required, EmailAddress] [Required, EmailAddress]
[Column("EMAIL_ADDRESS", TypeName = "nvarchar(128)")] [Column("EMAIL_ADDRESS", TypeName = "nvarchar(128)")]
public required string EmailAddress { get; set; } public string EmailAddress { get; set; }
[Required] [Required]
[Column("SIGNATURE", TypeName = "nvarchar(64)")] [Column("SIGNATURE", TypeName = "nvarchar(64)")]
public required string Signature { get; set; } public string Signature { get; set; }
[Required] [Required]
[Column("ADDED_WHEN", TypeName = "datetime")] [Column("ADDED_WHEN", TypeName = "datetime")]
public DateTime AddedWhen { get; set; } public DateTime AddedWhen { get; set; }
[Column("TOTP_SECRET_KEY", TypeName = "nvarchar(MAX)")] [Column("TOTP_SECRET_KEY", TypeName = "nvarchar(MAX)")]
public string? TotpSecretkey { get; set; } public string TotpSecretkey { get; set; }
[Column("TFA_REG_DEADLINE", TypeName = "datetime")] [Column("TFA_REG_DEADLINE", TypeName = "datetime")]
public DateTime? TfaRegDeadline { get; set; } public DateTime TfaRegDeadline { get; set; }
public IEnumerable<EnvelopeReceiver>? EnvelopeReceivers { get; init; } public IEnumerable<EnvelopeReceiver> EnvelopeReceivers { get; set; }
}
} }

View File

@@ -0,0 +1,99 @@
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
#if NETFRAMEWORK
using System;
#endif
namespace EnvelopeGenerator.Domain.Entities
{
[Table("TBDD_USER", Schema = "dbo")]
public class User
{
[Column("GUID")]
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[StringLength(50)]
[Column("ADDED_WHO")]
public string AddedWho { get; set; }
[StringLength(50)]
[Column("CHANGED_WHO")]
public string ChangedWho { get; set; }
//TODO: assign it to default value in create dto, not here!
[Column("ADDED_WHEN", TypeName = "datetime")]
[DefaultValue("GETDATE()")]
public DateTime AddedWhen { get; set; } = DateTime.Now;
[Column("CHANGED_WHEN", TypeName = "datetime")]
public DateTime ChangedWhen { get; set; }
[Column("PRENAME")]
[StringLength(50)]
public string Prename { get; set; }
[Column("NAME")]
[StringLength(50)]
public string Name { get; set; }
[Required]
[Column("USERNAME")]
[StringLength(50)]
public string Username { get; set; }
[Column("SHORTNAME")]
[StringLength(30)]
public string Shortname { get; set; }
[Column("EMAIL")]
[StringLength(100)]
public string Email { get; set; }
[Required]
[Column("LANGUAGE")]
[StringLength(5)]
[DefaultValue("de-DE")]
public string Language { get; set; }
[Column("COMMENT")]
[StringLength(500)]
public string Comment { get; set; }
[Column("DELETED")]
public bool Deleted { get; set; }
[Required]
[Column("DATE_FORMAT")]
[StringLength(10)]
[DefaultValue("dd.MM.yyyy")]
public string DateFormat { get; set; }
[Required]
[Column("ACTIVE")]
public bool Active { get; set; }
[Required]
[Column("GENERAL_VIEWER")]
[StringLength(30)]
[DefaultValue("NONE")]
public string GeneralViewer { get; set; }
[Required]
[Column("WAN_ENVIRONMENT")]
public bool WanEnvironment { get; set; }
[Required]
[Column("USERID_FK_INT_ECM")]
public int UseridFkIntEcm { get; set; }
[Column("DELETED_WHEN")]
public DateTime DeletedWhen { get; set; }
[Column("DELETED_WHO")]
[StringLength(50)]
public string DeletedWho { get; set; }
}
}

View File

@@ -1,11 +1,13 @@
using DigitalData.Core.Abstractions; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
#if NETFRAMEWORK
using System;
#endif
namespace EnvelopeGenerator.Domain.Entities namespace EnvelopeGenerator.Domain.Entities
{ {
[Table("TBSIG_USER_RECEIVER", Schema = "dbo")] [Table("TBSIG_USER_RECEIVER", Schema = "dbo")]
public class UserReceiver : IUnique<int> public class UserReceiver
{ {
[Key] [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@@ -22,16 +24,16 @@ namespace EnvelopeGenerator.Domain.Entities
[Required] [Required]
[Column("NAME", TypeName = "nvarchar(128)")] [Column("NAME", TypeName = "nvarchar(128)")]
public required string Name { get; set; } public string Name { get; set; }
[Column("COMPANY_NAME", TypeName = "nvarchar(128)")] [Column("COMPANY_NAME", TypeName = "nvarchar(128)")]
public string? CompanyName { get; set; } public string CompanyName { get; set; }
[Column("JOB_TITLE", TypeName = "nvarchar(128)")] [Column("JOB_TITLE", TypeName = "nvarchar(128)")]
public string? JobTitle { get; set; } public string JobTitle { get; set; }
[Required] [Required]
[Column("ADDED_WHEN", TypeName = "datetime")] [Column("ADDED_WHEN", TypeName = "datetime")]
public required DateTime AddedWhen { get; init; } public DateTime AddedWhen { get; set; }
} }
} }

View File

@@ -1,19 +1,25 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net7.0;net8.0;net9.0</TargetFrameworks> <TargetFrameworks>net462;net7.0;net8.0;net9.0</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <PropertyGroup Condition="'$(TargetFramework)' == 'net462'">
<PackageReference Include="DigitalData.Core.Abstractions" Version="3.6.0" /> <ImplicitUsings>disable</ImplicitUsings>
<PackageReference Include="DigitalData.EmailProfilerDispatcher.Abstraction" Version="3.0.0" /> <LangVersion>7.3</LangVersion>
<PackageReference Include="UserManager.Domain" Version="3.0.2" /> </PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' != 'net462'">
<ImplicitUsings>enable</ImplicitUsings>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net462'">
<PackageReference Include="System.ComponentModel.Annotations" Version="4.7.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\EnvelopeGenerator.Common\EnvelopeGenerator.Common.vbproj" /> <PackageReference Include="DigitalData.EmailProfilerDispatcher.Abstraction.Attributes" Version="1.0.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -3,9 +3,8 @@ Imports System.IO
Imports DevExpress.XtraBars.Docking Imports DevExpress.XtraBars.Docking
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports EnvelopeGenerator.Common Imports EnvelopeGenerator.Common
Imports EnvelopeGenerator.Common.Constants
Imports EnvelopeGenerator.Common.My Imports EnvelopeGenerator.Common.My
Imports GdPicture14 Imports EnvelopeGenerator.Domain.Constants
Public Class EnvelopeEditorController Public Class EnvelopeEditorController
Inherits BaseController Inherits BaseController

View File

@@ -1,6 +1,7 @@
Imports DevExpress.XtraPrinting.Native Imports DevExpress.XtraPrinting.Native
Imports EnvelopeGenerator.Common Imports EnvelopeGenerator.Common
Imports GdPicture14.Annotations Imports GdPicture14.Annotations
Imports EnvelopeGenerator.Domain
Public Class FieldEditorController Public Class FieldEditorController
Inherits BaseController Inherits BaseController

View File

@@ -506,6 +506,10 @@
<Project>{6ea0c51f-c2b1-4462-8198-3de0b32b74f8}</Project> <Project>{6ea0c51f-c2b1-4462-8198-3de0b32b74f8}</Project>
<Name>EnvelopeGenerator.Common</Name> <Name>EnvelopeGenerator.Common</Name>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\EnvelopeGenerator.Domain\EnvelopeGenerator.Domain.csproj">
<Project>{4f32a98d-e6f0-4a09-bd97-1cf26107e837}</Project>
<Name>EnvelopeGenerator.Domain</Name>
</ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

View File

@@ -1,24 +1,18 @@
Imports System.ComponentModel Imports System.ComponentModel
Imports System.Data.SqlClient
Imports System.IO Imports System.IO
Imports System.Text.RegularExpressions Imports System.Text.RegularExpressions
Imports DevExpress.Export.Xl
Imports DevExpress.Utils.CommonDialogs
Imports DevExpress.Utils.Drawing Imports DevExpress.Utils.Drawing
Imports DevExpress.Utils.Svg.CommonSvgImages
Imports DevExpress.XtraEditors Imports DevExpress.XtraEditors
Imports DevExpress.XtraExport.Helpers
Imports DevExpress.XtraGrid Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Columns
Imports DevExpress.XtraGrid.Views.Base
Imports DevExpress.XtraGrid.Views.Grid Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraSplashScreen Imports DevExpress.XtraSplashScreen
Imports DigitalData.Modules.Base Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports EnvelopeGenerator.Common Imports EnvelopeGenerator.Common
Imports EnvelopeGenerator.Common.Constants Imports EnvelopeGenerator.Domain
Imports EnvelopeGenerator.Common.My Imports EnvelopeGenerator.Common.My
Imports GdPicture14 Imports GdPicture14
Imports EnvelopeGenerator.Domain.Constants
Partial Public Class frmEnvelopeEditor Partial Public Class frmEnvelopeEditor
Public Property Envelope As Envelope Public Property Envelope As Envelope
@@ -467,7 +461,7 @@ Partial Public Class frmEnvelopeEditor
Dim oReceiver As EnvelopeReceiver = ViewReceivers.GetRow(e.RowHandle) Dim oReceiver As EnvelopeReceiver = ViewReceivers.GetRow(e.RowHandle)
Dim oUsedColors = Receivers.Select(Of Integer)(Function(r) r.ColorType).ToList() Dim oUsedColors = Receivers.Select(Of Integer)(Function(r) r.ColorType).ToList()
Dim oAllColors = [Enum].GetValues(GetType(ColorType)).Cast(Of Integer).ToList() Dim oAllColors = [Enum].GetValues(GetType(Domain.Constants.ColorType)).Cast(Of Integer).ToList()
Dim oUnusedColors = oAllColors.Except(oUsedColors) Dim oUnusedColors = oAllColors.Except(oUsedColors)
If oUnusedColors.Any() Then If oUnusedColors.Any() Then
oReceiver.ColorType = oUnusedColors.Min() oReceiver.ColorType = oUnusedColors.Min()
@@ -756,7 +750,7 @@ Partial Public Class frmEnvelopeEditor
End Sub End Sub
Private Sub btnShowFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnShowFile.ItemClick Private Sub btnShowFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnShowFile.ItemClick
showDocument showdocument()
End Sub End Sub
Sub showdocument() Sub showdocument()
If Not IsNothing(Documents) Then If Not IsNothing(Documents) Then

View File

@@ -2,6 +2,7 @@
Imports EnvelopeGenerator.Common.My Imports EnvelopeGenerator.Common.My
Imports EnvelopeGenerator.Common.Constants Imports EnvelopeGenerator.Common.Constants
Imports System.ComponentModel Imports System.ComponentModel
Imports EnvelopeGenerator.Domain.Constants
Public Class frmEnvelopeMainData Public Class frmEnvelopeMainData
Private FormLoaded As Boolean = False Private FormLoaded As Boolean = False

View File

@@ -6,6 +6,7 @@ Imports DigitalData.Modules.Logging
Imports EnvelopeGenerator.Common Imports EnvelopeGenerator.Common
Imports EnvelopeGenerator.Common.Constants Imports EnvelopeGenerator.Common.Constants
Imports EnvelopeGenerator.Common.My Imports EnvelopeGenerator.Common.My
Imports EnvelopeGenerator.Domain.Constants
Imports GdPicture14 Imports GdPicture14
Imports GdPicture14.Annotations Imports GdPicture14.Annotations

View File

@@ -10,12 +10,9 @@ Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports EnvelopeGenerator.Common Imports EnvelopeGenerator.Common
Imports EnvelopeGenerator.Common.My Imports EnvelopeGenerator.Common.My
Imports System.Diagnostics
Imports System.ComponentModel Imports System.ComponentModel
Imports DevExpress.XtraPrinting Imports DevExpress.XtraPrinting
Imports System.Web Imports DigitalData.Domain
Imports EnvelopeGenerator.Common.Constants
Imports System.Security.Cryptography
Public Class frmMain Public Class frmMain
Private ReadOnly LogConfig As LogConfig Private ReadOnly LogConfig As LogConfig
@@ -306,12 +303,12 @@ Public Class frmMain
End If End If
Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(e.RowHandle) Dim oEnvelope As Envelope = ViewEnvelopes.GetRow(e.RowHandle)
If oEnvelope.Status = Common.Constants.EnvelopeStatus.EnvelopePartlySigned Then If oEnvelope.Status = Domain.Constants.EnvelopeStatus.EnvelopePartlySigned Then
e.Appearance.BackColor = ColorTranslator.FromHtml(Common.Constants.GREEN_300) e.Appearance.BackColor = ColorTranslator.FromHtml(Domain.Constants.GREEN_300)
End If End If
If oEnvelope.Status = Common.Constants.EnvelopeStatus.EnvelopeQueued Or oEnvelope.Status = Common.Constants.EnvelopeStatus.EnvelopeSent Then If oEnvelope.Status = Domain.Constants.EnvelopeStatus.EnvelopeQueued Or oEnvelope.Status = Domain.Constants.EnvelopeStatus.EnvelopeSent Then
e.Appearance.BackColor = ColorTranslator.FromHtml(Common.Constants.ORANGE_300) e.Appearance.BackColor = ColorTranslator.FromHtml(Domain.Constants.ORANGE_300)
End If End If
End Sub End Sub
@@ -327,10 +324,10 @@ Public Class frmMain
Exit Sub Exit Sub
End If End If
If oReceiver.Status = Common.Constants.ReceiverStatus.Signed Then If oReceiver.Status = Domain.Constants.ReceiverStatus.Signed Then
e.Appearance.BackColor = ColorTranslator.FromHtml(Common.Constants.GREEN_300) e.Appearance.BackColor = ColorTranslator.FromHtml(Domain.Constants.GREEN_300)
Else Else
e.Appearance.BackColor = ColorTranslator.FromHtml(Common.Constants.RED_300) e.Appearance.BackColor = ColorTranslator.FromHtml(Domain.Constants.RED_300)
End If End If
End Sub End Sub
@@ -340,12 +337,12 @@ Public Class frmMain
End If End If
Dim oEnvelope As Envelope = ViewCompleted.GetRow(e.RowHandle) Dim oEnvelope As Envelope = ViewCompleted.GetRow(e.RowHandle)
If oEnvelope.Status = Common.Constants.EnvelopeStatus.EnvelopeCompletelySigned Then If oEnvelope.Status = Domain.Constants.EnvelopeStatus.EnvelopeCompletelySigned Then
e.Appearance.BackColor = ColorTranslator.FromHtml(Common.Constants.GREEN_300) e.Appearance.BackColor = ColorTranslator.FromHtml(Domain.Constants.GREEN_300)
End If End If
If oEnvelope.Status = Common.Constants.EnvelopeStatus.EnvelopeDeleted Or oEnvelope.Status = Common.Constants.EnvelopeStatus.EnvelopeWithdrawn Or oEnvelope.Status = Common.Constants.EnvelopeStatus.EnvelopeRejected Then If oEnvelope.Status = Domain.Constants.EnvelopeStatus.EnvelopeDeleted Or oEnvelope.Status = Domain.Constants.EnvelopeStatus.EnvelopeWithdrawn Or oEnvelope.Status = Domain.Constants.EnvelopeStatus.EnvelopeRejected Then
e.Appearance.BackColor = ColorTranslator.FromHtml(Common.Constants.RED_300) e.Appearance.BackColor = ColorTranslator.FromHtml(Domain.Constants.RED_300)
End If End If
End Sub End Sub
@@ -361,10 +358,10 @@ Public Class frmMain
Exit Sub Exit Sub
End If End If
If oReceiver.Status = Common.Constants.ReceiverStatus.Signed Then If oReceiver.Status = Domain.Constants.ReceiverStatus.Signed Then
e.Appearance.BackColor = ColorTranslator.FromHtml(Common.Constants.GREEN_300) e.Appearance.BackColor = ColorTranslator.FromHtml(Domain.Constants.GREEN_300)
Else Else
e.Appearance.BackColor = ColorTranslator.FromHtml(Common.Constants.RED_300) e.Appearance.BackColor = ColorTranslator.FromHtml(Domain.Constants.RED_300)
End If End If
End Sub End Sub
@@ -507,7 +504,7 @@ Public Class frmMain
End If End If
Dim oEnvelope As Envelope = ViewCompleted.GetRow(ViewCompleted.FocusedRowHandle) Dim oEnvelope As Envelope = ViewCompleted.GetRow(ViewCompleted.FocusedRowHandle)
If oEnvelope.Status = Common.Constants.EnvelopeStatus.EnvelopeArchived Then If oEnvelope.Status = Domain.Constants.EnvelopeStatus.EnvelopeArchived Then
bbtnitmEB.Enabled = True bbtnitmEB.Enabled = True
Else Else
bbtnitmEB.Enabled = False bbtnitmEB.Enabled = False
@@ -811,16 +808,16 @@ Public Class frmMain
Dim oMailToCreator = oEnvelope.FinalEmailToCreator Dim oMailToCreator = oEnvelope.FinalEmailToCreator
Dim oMailToReceivers = oEnvelope.FinalEmailToReceivers Dim oMailToReceivers = oEnvelope.FinalEmailToReceivers
If oMailToCreator <> FinalEmailType.No Then If oMailToCreator <> Domain.Constants.FinalEmailType.No Then
MsgBox("Finale email an Creator könnten/würden gesendet werden!") MsgBox("Finale email an Creator könnten/würden gesendet werden!")
Else Else
MsgBox("Finale email an Creator könnte/würde nicht erzeugt werden!" & vbNewLine & $"No SendFinalEmailToCreator - oMailToCreator [{oMailToCreator}] <> [{FinalEmailType.No}]") MsgBox("Finale email an Creator könnte/würde nicht erzeugt werden!" & vbNewLine & $"No SendFinalEmailToCreator - oMailToCreator [{oMailToCreator}] <> [{Domain.Constants.FinalEmailType.No}]")
End If End If
If oMailToReceivers <> FinalEmailType.No Then If oMailToReceivers <> Domain.Constants.FinalEmailType.No Then
MsgBox("Finale email an Unterzeichner könnten/würden gesendet werden!") MsgBox("Finale email an Unterzeichner könnten/würden gesendet werden!")
Else Else
MsgBox("Finale email an Unterzeichner könnte/würde nicht erzeugt werden!" & vbNewLine & $"No SendFinalEmailToReceivers - oMailToReceivers [{oMailToReceivers}] <> [{FinalEmailType.No}]") MsgBox("Finale email an Unterzeichner könnte/würde nicht erzeugt werden!" & vbNewLine & $"No SendFinalEmailToReceivers - oMailToReceivers [{oMailToReceivers}] <> [{Domain.Constants.FinalEmailType.No}]")
End If End If
End Sub End Sub
Private Function GetState() As State Private Function GetState() As State

View File

@@ -27,10 +27,9 @@
<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" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="8.1.1" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="8.1.1" />
<PackageReference Include="DigitalData.Core.Abstractions" Version="3.6.0" /> <PackageReference Include="DigitalData.Core.Abstractions" Version="4.0.0" />
<PackageReference Include="DigitalData.Core.Application" Version="3.2.1" /> <PackageReference Include="DigitalData.Core.Application" Version="3.3.1" />
<PackageReference Include="DigitalData.Core.DTO" Version="2.0.1" /> <PackageReference Include="DigitalData.EmailProfilerDispatcher.Abstraction" Version="3.1.0" />
<PackageReference Include="DigitalData.EmailProfilerDispatcher.Abstraction" Version="3.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net7.0'"> <ItemGroup Condition="'$(TargetFramework)' == 'net7.0'">

View File

@@ -33,7 +33,7 @@ public static class DIExtensions
/// will be created per HTTP request (or per scope) within the dependency injection container. /// will be created per HTTP request (or per scope) within the dependency injection container.
/// </remarks> /// </remarks>
public static IServiceCollection AddEnvelopeGeneratorInfrastructureServices(this IServiceCollection services, public static IServiceCollection AddEnvelopeGeneratorInfrastructureServices(this IServiceCollection services,
Action<DbContextOptionsBuilder>? dbContextOptions = null, Action<IServiceProvider, DbContextOptionsBuilder>? dbContextOptions = null,
IConfiguration? sqlExecutorConfiguration = null, IConfiguration? sqlExecutorConfiguration = null,
Action<SQLExecutorParams>? sqlExecutorConfigureOptions = null) Action<SQLExecutorParams>? sqlExecutorConfigureOptions = null)
{ {

Some files were not shown because too many files have changed in this diff Show More