using Bogus; using DigitalData.Core.Abstraction.Application.Repository; using DigitalData.UserManager.Domain.Entities; using EnvelopeGenerator.Application.Envelopes.Commands; using EnvelopeGenerator.Domain.Entities; using MediatR; using Microsoft.Extensions.DependencyInjection; namespace EnvelopeGenerator.Tests.Application; public abstract class TestBase : Faker { protected Fake.Host Host; protected User User => Host.User; protected IMediator Mediator => Host.Mediator; protected CreateEnvelopeCommand FakeCreateEnvelopeCommand => this.CreateEnvelopeCommand(Host.User.Id); protected Envelope FakeEnvelope => this.CreateEnvelope(Host.User.Id); protected IRepository GetRepository() where T : class => Host.GetRepository(); protected IRepository Repository => Host.Services.GetRequiredService(); protected abstract void ConfigureServices(IServiceCollection services); [SetUp] public virtual async Task Setup() { Host = Fake.CreateHost(ConfigureServices); await Host.AddSamples(); // Add seed email templates foreach (var temp in SeedEmailTemplates) await Repository.CreateAsync(temp); } [TearDown] public virtual void TearDown() { Host.Dispose(); } protected static List SeedEmailTemplates => new() { new EmailTemplate { Id = 1, Name = "DocumentReceived", Body = "Guten Tag [NAME_RECEIVER],

[NAME_SENDER] hat Ihnen ein Dokument zum [SIGNATURE_TYPE] gesendet.

Über den folgenden Link können Sie das Dokument einsehen und elektronisch unterschreiben: [LINK_TO_DOCUMENT_TEXT]

[MESSAGE]

Mit freundlichen Grüßen

[NAME_PORTAL]", Subject = "Dokument erhalten: '[DOCUMENT_TITLE]'", AddedWhen = DateTime.Parse("2024-05-29 09:33:54.913"), ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.020") }, new EmailTemplate { Id = 2, Name = "DocumentDeleted", Body = "Guten Tag [NAME_RECEIVER],

[NAME_SENDER] hat den Umschlag '[DOCUMENT_TITLE]' gelöscht/zurückgezogen.

Begründung:
[REASON]


Mit freundlichen Grüßen

[NAME_PORTAL]", Subject = "Umschlag zurückgezogen: '[DOCUMENT_TITLE]'", AddedWhen = DateTime.Parse("2024-05-29 09:33:54.913"), ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.033") }, new EmailTemplate { Id = 3, Name = "DocumentSigned", Body = "Guten Tag [NAME_RECEIVER],

hiermit bestätigen wir Ihnen die erfolgreiche Signatur für den Vorgang '[DOCUMENT_TITLE]'.
Wenn alle Vertragspartner unterzeichnet haben, erhalten Sie ebenfalls per email ein unterschriebenes Exemplar mit dem Signierungszertifikat!
Mit freundlichen Grüßen

[NAME_PORTAL]", Subject = "Dokument unterschrieben: '[DOCUMENT_TITLE]'", AddedWhen = DateTime.Parse("2024-05-29 09:33:54.913"), ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.033") }, new EmailTemplate { Id = 4, Name = "DocumentCompleted", Body = "Guten Tag [NAME_RECEIVER],

Der Signaturvorgang '[DOCUMENT_TITLE]' wurde erfolgreich abgeschlossen.

Sie erhalten das Dokument mit einem detaillierten Ergebnisbericht als Anhang zu dieser Email.

Mit freundlichen Grüßen

[NAME_PORTAL]", Subject = "Umschlag abgeschlossen: '[DOCUMENT_TITLE]'", AddedWhen = DateTime.Parse("2024-05-29 09:33:54.913"), ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.050") }, new EmailTemplate { Id = 5, Name = "DocumentAccessCodeReceived", Body = "Guten Tag [NAME_RECEIVER],

[NAME_SENDER] hat Ihnen ein Dokument zum [SIGNATURE_TYPE] gesendet.

Verwenden Sie den folgenden Zugriffscode, um das Dokument einzusehen:

[DOCUMENT_ACCESS_CODE]

Mit freundlichen Grüßen

[NAME_PORTAL]", Subject = "Zugriffscode für Dokument erhalten: '[DOCUMENT_TITLE]'", AddedWhen = DateTime.Parse("2024-05-29 09:33:54.913"), ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.050") }, new EmailTemplate { Id = 6, Name = "DocumentRejected_ADM", Body = "Guten Tag [NAME_SENDER],

[NAME_RECEIVER] hat den Umschlag '[DOCUMENT_TITLE]' mit folgendem Grund abgelehnt:

[REASON]

Der Umschlag wurde auf den Status Rejected gesetzt.

Mit freundlichen Grüßen

[NAME_PORTAL]", Subject = "'[DOCUMENT_TITLE]' - Unterzeichnungsvorgang zurückgezogen", AddedWhen = DateTime.Parse("2024-06-06 10:25:14.917"), ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.067") }, new EmailTemplate { Id = 9, Name = "DocumentRejected_REC", Body = "Guten Tag [NAME_RECEIVER],

Hiermit bestätigen wir Ihnen die Ablehnung des Unterzeichnungsvorganges '[DOCUMENT_TITLE]'!

Der Vertragsinhaber [NAME_SENDER] wurde über die Ablehnung informiert.

Mit freundlichen Grüßen

[NAME_PORTAL]", Subject = "'[DOCUMENT_TITLE]' - Bestätigung Ablehnung", AddedWhen = DateTime.Parse("2024-06-12 09:24:34.927"), ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.067") }, new EmailTemplate { Id = 10, Name = "DocumentRejected_REC_2", Body = "Guten Tag [NAME_RECEIVER],

Der Unterzeichnungsvorganges '[DOCUMENT_TITLE]' wurde durch einen anderen Vertragspartner abgelehnt! Ihre notwendige Unterzeichnung wurde verworfen.

Der Vertragsinhaber [NAME_SENDER] wird sich bei Bedarf mit Ihnen in Verbindung setzen.

Mit freundlichen Grüßen

[NAME_PORTAL]", Subject = "'[DOCUMENT_TITLE]' - Unterzeichnungsvorgang abgelehnt.", AddedWhen = DateTime.Parse("2024-06-12 09:55:40.613"), ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.080") }, new EmailTemplate { Id = 11, Name = "DocumentShared", Body = "Guten Tag,

[NAME_RECEIVER] hat Ihnen ein Dokument zum Ansehen gesendet.

Über den folgenden Link können Sie das Dokument einsehen: [LINK_TO_DOCUMENT_TEXT]


Mit freundlichen Grüßen

[NAME_PORTAL]", Subject = "Dokument geteilt: '[DOCUMENT_TITLE]'", AddedWhen = DateTime.Parse("2024-09-27 11:37:47.860"), ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.097") }, new EmailTemplate { Id = 12, Name = "TotpSecret", Body = "Guten Tag,

Sie können auf Ihren Zwei-Faktor-Authentifizierungscode zugreifen, indem Sie den unten stehenden QR-Code mit einer beliebigen Authentifizierungs-App auf Ihrem Telefon scannen (Google Authenticator, Microsoft Authenticator usw.). Dieser Code ist bis zum [TFA_EXPIRATION] gültig.




Mit freundlichen Grüßen

[NAME_PORTAL]", Subject = "2-Faktor-Authentifizierung QR-Code", AddedWhen = DateTime.Parse("2024-12-11 10:07:08.400"), ChangedWhen = DateTime.Parse("2025-05-12 10:43:44.290") } }; }