From a946ba871d4bbbb550c7979b18aaf8a889c47e60 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Mon, 11 Nov 2024 09:36:48 +0100 Subject: [PATCH] =?UTF-8?q?feat(UserRepService):=20Die=20Methode=20CreateA?= =?UTF-8?q?sync=20wurde=20=C3=BCberschrieben.=20=20-=20XOR-Logik=20hinzuge?= =?UTF-8?q?f=C3=BCgt,=20um=20zu=20pr=C3=BCfen,=20ob=20ValidFrom=20und=20Va?= =?UTF-8?q?lidTo=20Null=20sind=20=20-=20Logik=20hinzugef=C3=BCgt,=20um=20z?= =?UTF-8?q?u=20kontrollieren,=20dass=20ValidFrom=20kleiner=20als=20ValidTo?= =?UTF-8?q?=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DigitalData.UserManager.Application/Key.cs | 4 +++- .../Services/UserRepService.cs | 13 +++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/DigitalData.UserManager.Application/Key.cs b/DigitalData.UserManager.Application/Key.cs index 38c6090..eec4b67 100644 --- a/DigitalData.UserManager.Application/Key.cs +++ b/DigitalData.UserManager.Application/Key.cs @@ -8,5 +8,7 @@ public static readonly string UserAlreadyExists = "UserAlreadyExists"; public static readonly string UserNotFound = "UserNotFound"; public static readonly string UnauthorizedUser = "UnauthorizedUser"; + public static readonly string DateRangeNotXNOR = "DateRangeNotXNOR"; + public static readonly string InvalidDateRange = "InvalidDateRange"; } -} +} \ No newline at end of file diff --git a/DigitalData.UserManager.Application/Services/UserRepService.cs b/DigitalData.UserManager.Application/Services/UserRepService.cs index 2e946ce..348b7c9 100644 --- a/DigitalData.UserManager.Application/Services/UserRepService.cs +++ b/DigitalData.UserManager.Application/Services/UserRepService.cs @@ -5,13 +5,16 @@ using DigitalData.UserManager.Application.DTOs.UserRep; using DigitalData.UserManager.Domain.Entities; using DigitalData.UserManager.Infrastructure.Contracts; using Microsoft.Extensions.Localization; +using Microsoft.Extensions.Logging; namespace DigitalData.UserManager.Application.Services { public class UserRepService : BaseService, IUserRepService { + private readonly IStringLocalizer _localizer; public UserRepService(IUserRepRepository repository, IStringLocalizer localizer, IMapper mapper) : base(repository, mapper) { + _localizer = localizer; } public async Task>> ReadAllAsync(bool withUser = false, bool withRepGroup = false, bool withGroup = false, bool withRepUser = false, int? userId = null, int? groupId = null) @@ -20,5 +23,15 @@ namespace DigitalData.UserManager.Application.Services var urReadDTOs = _mapper.Map>(urs); return Result.Success(urReadDTOs); } + + public override async Task> CreateAsync(UserRepCreateDto createDto) + // XOR control + => (createDto.ValidFrom is null && createDto.ValidTo is not null) || (createDto.ValidFrom is not null && createDto.ValidTo is null) + ? Result.Fail().Notice(LogLevel.None, Flag.DataIntegrityIssue, _localizer[Key.DateRangeNotXNOR]) + //date range control + : (createDto.ValidFrom > createDto.ValidTo) + ? Result.Fail().Notice(LogLevel.None, Flag.DataIntegrityIssue, _localizer[Key.InvalidDateRange]) + : await base.CreateAsync(createDto); + } } \ No newline at end of file