Browse Source

CmsKit - Add EntityNotTaggableException

pull/7103/head
enisn 6 years ago
parent
commit
88d990fa9c
  1. 1
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitErrorCodes.cs
  2. 5
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs
  3. 19
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityNotTaggableException.cs
  4. 2
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs
  5. 5
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs

1
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitErrorCodes.cs

@ -4,5 +4,6 @@
{
public const string TagAlreadyExist = "CmsKit:0001";
public const string ContentAlreadyExist = "CmsKit:0002";
public const string EntityNotTaggable = "CmsKit:0003";
}
}

5
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs

@ -29,5 +29,10 @@ namespace Volo.CmsKit.Tags
{
return Task.FromResult(options.Tags.Values.ToList());
}
public Task<bool> IsDefinedAsync([NotNull] string entityType)
{
return Task.FromResult(options.Tags.ContainsKey(entityType));
}
}
}

19
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityNotTaggableException.cs

@ -0,0 +1,19 @@
using System;
using Volo.Abp;
namespace Volo.CmsKit.Tags
{
[Serializable]
public class EntityNotTaggableException : BusinessException
{
public EntityNotTaggableException(string code = null, string message = null, string details = null, Exception innerException = null, Microsoft.Extensions.Logging.LogLevel logLevel = Microsoft.Extensions.Logging.LogLevel.Warning) : base(code, message, details, innerException, logLevel)
{
}
public EntityNotTaggableException(string entityType)
{
Code = CmsKitErrorCodes.EntityNotTaggable;
WithData(nameof(Tag.EntityType), entityType);
}
}
}

2
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs

@ -9,5 +9,7 @@ namespace Volo.CmsKit.Tags
Task<List<TagDefiniton>> GetTagDefinitionsAsync();
Task<TagDefiniton> GetTagDefinitionOrNullAsync([NotNull] string entityType);
Task<bool> IsDefinedAsync([NotNull] string entityType);
}
}

5
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs

@ -51,6 +51,11 @@ namespace Volo.CmsKit.Tags
throw new TagAlreadyExistException(entityType, name);
}
if (!await _tagDefinitionStore.IsDefinedAsync(entityType))
{
throw new EntityNotTaggableException(entityType);
}
return await _tagRepository.InsertAsync(
new Tag(
id,

Loading…
Cancel
Save