diff --git a/Controllers/XTagProviderControllerBase.cs b/Controllers/XTagProviderControllerBase.cs new file mode 100644 index 0000000..6d794c3 --- /dev/null +++ b/Controllers/XTagProviderControllerBase.cs @@ -0,0 +1,37 @@ +using System; +using System.Linq; +using Microsoft.EntityFrameworkCore.Query; +using Microsoft.Extensions.Logging; +using xCommons.Configurations; +using xCommons.Providers; +using xIdentityService.Interfaces; +using xPushService.Controllers; +using xTagService.Interfaces; +using xTagService.Models.Dtos; +using xTagService.Models.Entities; +using xTagService.Providers.Dtos; + +namespace xTagService.Controllers +{ + public abstract class XTagProviderControllerBase : XBaseProvidedController, IXTagProviderController + { + protected XTagProviderControllerBase( + ILogger logger, + XAppConfiguration appConfiguration, + IXIdentityProvider identityProvider, + XValidationProvider validationProvider, + IXTagProvider provider, + Func, IOrderedQueryable> defaultOrderBuilder = null, + Func, IIncludableQueryable> defaultIncludeBuilder = null + ) : base( + logger, + appConfiguration, + identityProvider, + validationProvider, + provider, + defaultOrderBuilder, + defaultIncludeBuilder + ) + { } + } +} \ No newline at end of file diff --git a/DI/XDIHelperExtension.cs b/DI/XDIHelperExtension.cs index 8bb6868..151f3f3 100644 --- a/DI/XDIHelperExtension.cs +++ b/DI/XDIHelperExtension.cs @@ -11,8 +11,10 @@ using xExceptions.Constants; using xPushService.DI; using xPushService.Helpers; using xTagService.Helpers; +using xTagService.Interfaces; using xTagService.Interfaces.Dtos; using xTagService.Interfaces.Entities; +using xTagService.Providers; using xTagService.Providers.Dtos; using xTagService.Providers.Entities; @@ -213,6 +215,11 @@ namespace xTagService.DI new ServiceDescriptor(typeof(IXTagRepositoryProvider), typeof(XTagRepositoryProvider), lifeTime) ); + // + services.Add( + new ServiceDescriptor(typeof(IXTagProvider), typeof(XTagProvider), lifeTime) + ); + // Log("Service Regitration Succeed ..."); } diff --git a/Interfaces/IXTagProvider.cs b/Interfaces/IXTagProvider.cs new file mode 100644 index 0000000..bdb6ed1 --- /dev/null +++ b/Interfaces/IXTagProvider.cs @@ -0,0 +1,10 @@ +using xPushService.Interfaces; +using xTagService.Models.Dtos; +using xTagService.Models.Entities; +using xTagService.Providers.Dtos; + +namespace xTagService.Interfaces +{ + public interface IXTagProvider : IXBaseProvided + { } +} \ No newline at end of file diff --git a/Interfaces/IXTagProviderController.cs b/Interfaces/IXTagProviderController.cs new file mode 100644 index 0000000..4c34c2e --- /dev/null +++ b/Interfaces/IXTagProviderController.cs @@ -0,0 +1,10 @@ +using xPushService.Interfaces; +using xTagService.Models.Dtos; +using xTagService.Models.Entities; +using xTagService.Providers.Dtos; + +namespace xTagService.Interfaces +{ + public interface IXTagProviderController : IXBaseProvidedController + { } +} \ No newline at end of file diff --git a/Providers/XTagProvider.cs b/Providers/XTagProvider.cs new file mode 100644 index 0000000..7542afe --- /dev/null +++ b/Providers/XTagProvider.cs @@ -0,0 +1,38 @@ +using xCommons.Extensions; +using xIdentityModels.Models; +using xPushService.Providers; +using xTagService.Interfaces; +using xTagService.Interfaces.Dtos; +using xTagService.Models.Dtos; +using xTagService.Models.Entities; +using xTagService.Providers.Dtos; + +namespace xTagService.Providers +{ + public class XTagProvider : XBaseProvided, IXTagProvider + { + public XTagProvider( + IXTagServiceProvider provider + ) : base( + provider, + permittedRoles: new string[] { } + ) + { } + + public override bool IsOwned( + XTagDto item, + XUserClaimsInfoDto userInfo + ) + { + return !item.IsNullOrDefault(); + } + + public override bool IsOwned( + XTag item, + XUserClaimsInfoDto userInfo + ) + { + return !item.IsNullOrDefault(); + } + } +} \ No newline at end of file