add support tags ...

This commit is contained in:
2026-09-04 01:35:15 +03:30
parent 92d7948c35
commit 903703dca0
6 changed files with 117 additions and 10 deletions
+8
View File
@@ -1,3 +1,5 @@
using xContentService.Models.Entities;
namespace xContentService.Constants namespace xContentService.Constants
{ {
public struct XContentServiceConstants public struct XContentServiceConstants
@@ -24,6 +26,12 @@ namespace xContentService.Constants
// EF Repositories Helper Extensions ... // EF Repositories Helper Extensions ...
public const string GetXContentEFRepositoryDescriptor = "GetXContentEFRepositoryDescriptor"; public const string GetXContentEFRepositoryDescriptor = "GetXContentEFRepositoryDescriptor";
//
// Custome Constants ...
public const string XAdminRole = "admin";
public const string XContentTagProvided = nameof(XContent);
public const string XContentTitleIdentifier = "CntnT"; public const string XContentTitleIdentifier = "CntnT";
public const string XContentDescriptionIdentifier = "CntnD"; public const string XContentDescriptionIdentifier = "CntnD";
} }
+15 -10
View File
@@ -210,6 +210,7 @@ namespace xContentService.DI
); );
// //
// Resource Providers ...
services.Add( services.Add(
new ServiceDescriptor(typeof(IXContentTitleResourceProvider), typeof(XContentTitleResourceProvider), lifeTime) new ServiceDescriptor(typeof(IXContentTitleResourceProvider), typeof(XContentTitleResourceProvider), lifeTime)
); );
@@ -218,6 +219,7 @@ namespace xContentService.DI
); );
// //
// Enrichers ...
services.Add( services.Add(
new ServiceDescriptor(typeof(IXContentEnricher), typeof(XContentEnricher), lifeTime) new ServiceDescriptor(typeof(IXContentEnricher), typeof(XContentEnricher), lifeTime)
); );
@@ -235,16 +237,19 @@ namespace xContentService.DI
); );
// //
// Register Additional Service ... // Tags ...
// services.Add( services.Add(
// new ServiceDescriptor(typeof(IXContentTagProvider), typeof(XContentTagProvider), lifeTime) new ServiceDescriptor(typeof(IXContentTagProvider), typeof(XContentTagProvider), lifeTime)
// ); );
// services.Add( services.Add(
// new ServiceDescriptor(typeof(IXContentTagProvided), typeof(XContentTagProvided), lifeTime) new ServiceDescriptor(typeof(IXContentTagProvided), typeof(XContentTagProvided), lifeTime)
// ); );
// services.Add(
// new ServiceDescriptor(typeof(IXContentProvider), typeof(XContentProvider), lifeTime) //
// ); // Provider ...
services.Add(
new ServiceDescriptor(typeof(IXContentProvider), typeof(XContentProvider), lifeTime)
);
// //
Log("Service Regitration Succeed ..."); Log("Service Regitration Succeed ...");
+11
View File
@@ -0,0 +1,11 @@
using System;
using xTagService.Interfaces;
using xContentService.Models.Dtos;
using xContentService.Providers.Dtos;
using xContentService.Models.Entities;
namespace xContentService.Interfaces
{
public interface IXContentTagProvided : IXTagProvided<XContent, XContentDto, Guid, XContentDtoHub>
{ }
}
+8
View File
@@ -0,0 +1,8 @@
using System;
using xTagService.Interfaces;
namespace xContentService.Interfaces
{
public interface IXContentTagProvider : IXBaseTagProvider<Guid>
{ }
}
+56
View File
@@ -0,0 +1,56 @@
using System;
using xCommons.Extensions;
using xTagService.Providers;
using xIdentityModels.Models;
using xContentService.Constants;
using xContentService.Interfaces;
using xContentService.Models.Dtos;
using xContentService.Providers.Dtos;
using xContentService.Interfaces.Dtos;
using xContentService.Models.Entities;
namespace xContentService.Providers
{
public class XContentTagProvided : XBaseTagProvided<XContent, XContentDto, Guid, XContentDtoHub>, IXContentTagProvided
{
public XContentTagProvided(
IXContentTagProvider tagProvider,
IXContentServiceProvider provider
) : base(
provider: provider,
tagProvider: tagProvider,
permittedRoles: [XContentServiceConstants.XAdminRole]
)
{ }
public override bool IsOwned(
XContent item,
XUserClaimsInfoDto userInfo
)
{
//
var result =
!item.IsNullOrDefault() &&
!userInfo.IsNullOrDefault() &&
item.OwnerId == userInfo.UserId;
//
return result;
}
public override bool IsOwned(
XContentDto item,
XUserClaimsInfoDto userInfo
)
{
//
var result =
!item.IsNullOrDefault() &&
!userInfo.IsNullOrDefault() &&
item.OwnerId == userInfo.UserId;
//
return result;
}
}
}
+19
View File
@@ -0,0 +1,19 @@
using System;
using xTagService.Providers;
using xContentService.Constants;
using xContentService.Interfaces;
using xTagService.Interfaces.Dtos;
namespace xContentService.Providers
{
public class XContentTagProvider : XBaseTagProvider<Guid>, IXContentTagProvider
{
public XContentTagProvider(
IXTagServiceProvider tagProvider
) : base(
tagProvider: tagProvider,
providedFor: XContentServiceConstants.XContentTagProvided
)
{ }
}
}