From c192699752408f552d74461ebd657e6e5cfdf361 Mon Sep 17 00:00:00 2001 From: malik masis Date: Wed, 17 Aug 2022 11:05:43 +0300 Subject: [PATCH] Added validation for Tags and its elements --- .../Volo/CmsKit/Admin/Tags/EntityTagSetDto.cs | 15 ++++++++++++++- .../Volo/CmsKit/Localization/Resources/en.json | 3 ++- .../Volo/CmsKit/Localization/Resources/tr.json | 3 ++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/EntityTagSetDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/EntityTagSetDto.cs index 33afb68a6e..8f19bf7e74 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/EntityTagSetDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/EntityTagSetDto.cs @@ -1,6 +1,9 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Localization; +using Volo.CmsKit.Localization; using Volo.CmsKit.Tags; namespace Volo.CmsKit.Admin.Tags; @@ -9,17 +12,27 @@ namespace Volo.CmsKit.Admin.Tags; public class EntityTagSetDto : IValidatableObject { public string EntityId { get; set; } + public string EntityType { get; set; } + + [Required] public List Tags { get; set; } public IEnumerable Validate(ValidationContext validationContext) { + var l = validationContext.GetRequiredService>(); + foreach (var tag in Tags) { if (tag.Length > TagConsts.MaxNameLength) { yield return new ValidationResult( - $"{nameof(tag)} length must be equal to or lower than {TagConsts.MaxNameLength}", + l[ + "MaxTagLengthExceptionMessage", + nameof(tag), + TagConsts.MaxNameLength, + typeof(EntityTagSetDto).FullName + ], new[] { nameof(Tags) } ); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json index 6057b5dc5e..18d900cabe 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json @@ -206,6 +206,7 @@ "Feature:ReactionEnable": "Enabled reaction", "Feature:ReactionEnableDescription": "Enable reaction in the application.", "Feature:TagEnable": "Enabled taging", - "Feature:TagEnableDescription": "Enable taging in the application." + "Feature:TagEnableDescription": "Enable taging in the application.", + "MaxTagLengthExceptionMessage": "{0} length must be equal to or lower than {1}. {2}" } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json index c8865aa648..c04461dd03 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json @@ -209,6 +209,7 @@ "Feature:ReactionEnable": "Reaksiyonları etkinleştirin", "Feature:ReactionEnableDescription": "Uygulamınızdaki reaksiyonları etkinleştirir.", "Feature:TagEnable": "Etkiketleri etkinleştirin", - "Feature:TagEnableDescription": "Uygulamınızdaki etiketleri etkinleştirir." + "Feature:TagEnableDescription": "Uygulamınızdaki etiketleri etkinleştirir.", + "MaxTagLengthExceptionMessage": "{0} uzunluğu {1} den küçük veya eşit olmalı. {2}" } }