Compare commits

...

3 Commits

7 changed files with 38 additions and 50 deletions

View File

@@ -1,8 +1,13 @@
using DigitalData.EmailProfilerDispatcher.Application.Contracts;
using DigitalData.Core.DTO;
using DigitalData.EmailProfilerDispatcher.Application.Contracts;
using EnvelopeGenerator.Application.DTOs;
using EnvelopeGenerator.Common;
namespace EnvelopeGenerator.Application.Contracts
{
public interface IEnvelopeMailService : IEmailOutService
{
Task<DataResult<int>> SendAsync(EnvelopeReceiverDto envelopeReceiverDto, Constants.EmailTemplateType tempType);
Task<DataResult<int>> SendAccessCodeAsync(EnvelopeReceiverDto envelopeReceiverDto);
}
}

View File

@@ -1,15 +1,36 @@
using AutoMapper;
using DigitalData.Core.DTO;
using DigitalData.EmailProfilerDispatcher.Application.DTOs.EmailOut;
using DigitalData.EmailProfilerDispatcher.Application.Services;
using DigitalData.EmailProfilerDispatcher.Infrastructure.Contracts;
using DigitalData.UserManager.Application;
using EnvelopeGenerator.Application.Contracts;
using EnvelopeGenerator.Application.DTOs;
using EnvelopeGenerator.Common;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Localization;
namespace EnvelopeGenerator.Application.Services
{
public class EnvelopeMailService : EmailOutService<Resource>, IEnvelopeMailService
{
public EnvelopeMailService(IEmailOutRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper, IEmailTemplateService tempService) : base(repository, localizer, mapper)
private readonly IEmailTemplateService _tempService;
private readonly IMemoryCache _cache;
public EnvelopeMailService(IEmailOutRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper, IEmailTemplateService tempService, IMemoryCache cache) : base(repository, localizer, mapper)
{
_tempService = tempService;
_cache = cache;
}
public Task<DataResult<int>> SendAccessCodeAsync(EnvelopeReceiverDto envelopeReceiverDto)
{
throw new NotImplementedException();
}
public Task<DataResult<int>> SendAsync(EnvelopeReceiverDto envelopeReceiverDto, Constants.EmailTemplateType tempType)
{
throw new NotImplementedException();
}
}
}

View File

@@ -43,28 +43,28 @@ namespace EnvelopeGenerator.Web.Controllers
//TODO: integrate localizer for ready-to-use views
public static ViewResult ViewError(this Controller controller, ErrorViewModel errorViewModel) => controller.View("_Error", errorViewModel);
public static ViewResult ViewError404(this Controller controller) => controller.ViewError(new ErrorViewModel()
public static ViewResult ViewError404(this Controller controller) => controller.ViewError(new()
{
Title = "404",
Subtitle = "Die von Ihnen gesuchte Seite ist nicht verfügbar",
Body = "Sie können derzeit nur an Sie gerichtete Briefe einsehen und unterschreiben.",
});
public static ViewResult ViewEnvelopeNotFound(this Controller controller) => controller.ViewError(new ErrorViewModel()
public static ViewResult ViewEnvelopeNotFound(this Controller controller) => controller.ViewError(new()
{
Title = "404",
Subtitle = "Document not found",
Body = "Wenn Sie diese URL in Ihrer E-Mail erhalten haben, wenden Sie sich bitte an das IT-Team."
});
public static ViewResult ViewDocumentNotFound(this Controller controller) => controller.ViewError(new ErrorViewModel()
public static ViewResult ViewDocumentNotFound(this Controller controller) => controller.ViewError(new()
{
Title = "404",
Subtitle = "Umschlag nicht gefunden",
Body = "Wenn Sie diese URL in Ihrer E-Mail erhalten haben, wenden Sie sich bitte an das IT-Team."
});
public static ViewResult ViewInnerServiceError(this Controller controller) => controller.ViewError(new ErrorViewModel()
public static ViewResult ViewInnerServiceError(this Controller controller) => controller.ViewError(new()
{
Title = "500",
Subtitle = "Ein unerwarteter Fehler ist aufgetreten",

View File

@@ -176,6 +176,8 @@ try
builder.Services.AddScoped<IEnvelopeMailService, EnvelopeMailService>();
builder.Services.AddDispatcher<EGDbContext, Resource>();
builder.Services.AddMemoryCache();
var app = builder.Build();
// Configure the HTTP request pipeline.

View File

@@ -36,7 +36,7 @@
</div>
</form>
</div>
<div class="col-4 d-flex justify-content-center align-items-center">
<div class="col-4 mb-3 d-flex justify-content-center align-items-center">
<div class="dropdown">
<button class="btn btn-outline-secondary dropdown-toggle" type="button" id="langDropdownMenuButton" data-bs-toggle="dropdown" aria-expanded="false">
<span class="fi @_cultures.FIClassOf(userLanguage).TrySanitize(_sanitizer) me-2" id="selectedFlag"></span><span id="selectedLanguage"></span>

View File

@@ -38,7 +38,7 @@
<div class="col p-0 m-0">
<div class="card-body p-0 m-0">
<h5 class="card-title p-0 m-0">@($"{envelope?.Title.TrySanitize(_sanitizer)}")</h5>
<p class="card-text p-0 m-0">@($"Sie haben {(pages.Count())} Briefe zu unterschreiben. Bitte prüfen Sie die Seiten {stPageIndexes.TrySanitize(_sanitizer)}.")</p>
<p class="card-text p-0 m-0">@($"Sie müssen {(pages.Count())} Vorgang zu unterzeichen. Bitte prüfen Sie die Seite {stPageIndexes.TrySanitize(_sanitizer)}.")</p>
<p class="card-text p-0 m-0"><small class="text-body-secondary">Erstellt am @envelope?.AddedWhen von @sender?.Prename.TrySanitize(_sanitizer) @sender?.Name.TrySanitize(_sanitizer). Sie können den Absender über <a href="mailto:@(sender?.Email.TryEncode(_encoder))?subject=@(envelope?.Title.TryEncode(_encoder))&body=Sehr%20geehrter%20@(sender?.Prename.TryEncode(_encoder))%20@(sender?.Name.TryEncode(_encoder)),%0A%0A%0A">@sender?.Email.TryEncode(_encoder)</a> kontaktieren.</small></p>
</div>
</div>

View File

@@ -17,13 +17,11 @@
.btn_refresh, .btn_complete {
height:4vh
}
.btn_refresh {
}
.btn_complete{
}
.btn_complete .icon {
width: 2vh;
}
.btn_complete span {
vertical-align: middle;
}
@@ -173,27 +171,6 @@ footer#page-footer a:focus {
width: 75%;
}
/* --- */
/* Adjusting the height of the select2 container */
.dropdown-flag .select2-container--default .select2-selection--single {
height: 40px; /* Desired height */
}
/* Adjusting the height and vertical alignment of the selected item */
.dropdown-flag .select2-container--default .select2-selection--single .select2-selection__rendered {
line-height: 38px; /* Should be 2px less than the height for internal padding */
}
/* Adjusting the height of the dropdown arrow */
.dropdown-flag .select2-container--default .select2-selection--single .select2-selection__arrow {
height: 38px; /* Again, 2px less than the height */
}
/* Adjusting the height of dropdown list items */
.dropdown-flag .select2-container--default .select2-dropdown .select2-results>.select2-results__options {
max-height: 200px; /* Optional, adjust for larger dropdown height */
}
/* CSS for custom class to increase dropdown height */
.increase-dropdown-height {
min-height: 400px; /* Optional, larger value for increased height */
@@ -206,23 +183,6 @@ footer#page-footer a:focus {
max-width: 180px; /* Suitable maximum width for the form */
}
.select2-container--default .select2-search--dropdown .select2-search__field {
border-color: #86b7fe;
outline: 0;
mask-border-width: 0
}
.select2-container--default .select2-search--dropdown .select2-search__field:hover {
border-color: #86b7fe;
outline: 0;
box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);
}
.select2-search__field {
display:none
}
.lang-item {
font-size: 0.85rem;
}