From ad152fdf7f6102cf848500772ddff9d2e95983f0 Mon Sep 17 00:00:00 2001 From: Hadi Khazaee Asl Date: Mon, 1 Jun 2026 22:51:37 +0330 Subject: [PATCH] last ... --- .../XCategoryRepositoryControllerBase.cs | 33 ++++++++++++++++ ...ategoryRepositoryProviderControllerBase.cs | 37 ++++++++++++++++++ Controllers/XCategoryServiceControllerBase.cs | 34 +++++++++++++++++ .../XCategoryServiceProviderControllerBase.cs | 38 +++++++++++++++++++ Interfaces/IXCategoryProvider.cs | 10 +++++ Interfaces/IXCategoryProviderController.cs | 10 +++++ Interfaces/IXSubCategoryProvider.cs | 10 +++++ Interfaces/IXSubCategoryProviderController.cs | 10 +++++ Providers/XCategoryProvider.cs | 38 +++++++++++++++++++ Providers/XSubCategoryProvider.cs | 38 +++++++++++++++++++ 10 files changed, 258 insertions(+) create mode 100644 Controllers/XCategoryRepositoryControllerBase.cs create mode 100644 Controllers/XCategoryRepositoryProviderControllerBase.cs create mode 100644 Controllers/XCategoryServiceControllerBase.cs create mode 100644 Controllers/XCategoryServiceProviderControllerBase.cs create mode 100644 Interfaces/IXCategoryProvider.cs create mode 100644 Interfaces/IXCategoryProviderController.cs create mode 100644 Interfaces/IXSubCategoryProvider.cs create mode 100644 Interfaces/IXSubCategoryProviderController.cs create mode 100644 Providers/XCategoryProvider.cs create mode 100644 Providers/XSubCategoryProvider.cs diff --git a/Controllers/XCategoryRepositoryControllerBase.cs b/Controllers/XCategoryRepositoryControllerBase.cs new file mode 100644 index 0000000..163886e --- /dev/null +++ b/Controllers/XCategoryRepositoryControllerBase.cs @@ -0,0 +1,33 @@ +using System; +using System.Linq; +using Microsoft.EntityFrameworkCore.Query; +using Microsoft.Extensions.Logging; +using xCategoryService.Interfaces.Entities; +using xCategoryService.Models.Entities; +using xCommons.Configurations; +using xCommons.Providers; +using xDataService.Controllers; +using xDataService.Interfaces; + +namespace xCategoryService.Controllers +{ + public abstract class XCategoryRepositoryControllerBase : XBaseRepositoryController, IXBaseRepositoryController + { + protected XCategoryRepositoryControllerBase( + ILogger logger, + XAppConfiguration appConfiguration, + XValidationProvider validationProvider, + IXCategoryRepository repository, + Func, IOrderedQueryable> defaultOrderBuilder = null, + Func, IIncludableQueryable> defaultIncludeBuilder = null + ) : base( + logger, + appConfiguration, + validationProvider, + repository, + defaultOrderBuilder, + defaultIncludeBuilder + ) + { } + } +} \ No newline at end of file diff --git a/Controllers/XCategoryRepositoryProviderControllerBase.cs b/Controllers/XCategoryRepositoryProviderControllerBase.cs new file mode 100644 index 0000000..8fda1f5 --- /dev/null +++ b/Controllers/XCategoryRepositoryProviderControllerBase.cs @@ -0,0 +1,37 @@ +using System; +using System.Linq; +using Microsoft.EntityFrameworkCore.Query; +using Microsoft.Extensions.Logging; +using xCategoryService.Interfaces.Entities; +using xCategoryService.Models.Entities; +using xCategoryService.Providers.Entities; +using xCommons.Configurations; +using xCommons.Providers; +using xIdentityService.Interfaces; +using xPushService.Controllers; +using xPushService.Interfaces; + +namespace xCategoryService.Controllers +{ + public abstract class XCategoryRepositoryProviderControllerBase : XBaseRepositoryProviderController, IXBaseRepositoryProviderController + { + protected XCategoryRepositoryProviderControllerBase( + ILogger logger, + XAppConfiguration appConfiguration, + IXIdentityProvider identityProvider, + XValidationProvider validationProvider, + IXCategoryRepositoryProvider 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/Controllers/XCategoryServiceControllerBase.cs b/Controllers/XCategoryServiceControllerBase.cs new file mode 100644 index 0000000..768d67d --- /dev/null +++ b/Controllers/XCategoryServiceControllerBase.cs @@ -0,0 +1,34 @@ +using System; +using System.Linq; +using Microsoft.EntityFrameworkCore.Query; +using Microsoft.Extensions.Logging; +using xCategoryService.Interfaces.Dtos; +using xCategoryService.Models.Dtos; +using xCategoryService.Models.Entities; +using xCommons.Configurations; +using xCommons.Providers; +using xDataService.Controllers; +using xDataService.Interfaces; + +namespace xCategoryService.Controllers +{ + public abstract class XCategoryServiceControllerBase : XBaseServiceController, IXBaseServiceController + { + protected XCategoryServiceControllerBase( + ILogger logger, + XAppConfiguration appConfiguration, + XValidationProvider validationProvider, + IXCategoryRepositoryService repositoryService, + Func, IOrderedQueryable> defaultOrderBuilder = null, + Func, IIncludableQueryable> defaultIncludeBuilder = null + ) : base( + logger, + appConfiguration, + validationProvider, + repositoryService, + defaultOrderBuilder, + defaultIncludeBuilder + ) + { } + } +} \ No newline at end of file diff --git a/Controllers/XCategoryServiceProviderControllerBase.cs b/Controllers/XCategoryServiceProviderControllerBase.cs new file mode 100644 index 0000000..21c1bab --- /dev/null +++ b/Controllers/XCategoryServiceProviderControllerBase.cs @@ -0,0 +1,38 @@ +using System; +using System.Linq; +using Microsoft.EntityFrameworkCore.Query; +using Microsoft.Extensions.Logging; +using xCategoryService.Interfaces.Dtos; +using xCategoryService.Models.Dtos; +using xCategoryService.Models.Entities; +using xCategoryService.Providers.Dtos; +using xCommons.Configurations; +using xCommons.Providers; +using xIdentityService.Interfaces; +using xPushService.Controllers; +using xPushService.Interfaces; + +namespace xCategoryService.Controllers +{ + public abstract class XCategoryServiceProviderControllerBase : XBaseServiceProviderController, IXBaseServiceProviderController + { + protected XCategoryServiceProviderControllerBase( + ILogger logger, + XAppConfiguration appConfiguration, + IXIdentityProvider identityProvider, + XValidationProvider validationProvider, + IXCategoryServiceProvider 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/Interfaces/IXCategoryProvider.cs b/Interfaces/IXCategoryProvider.cs new file mode 100644 index 0000000..3dde505 --- /dev/null +++ b/Interfaces/IXCategoryProvider.cs @@ -0,0 +1,10 @@ +using xCategoryService.Models.Dtos; +using xCategoryService.Models.Entities; +using xCategoryService.Providers.Dtos; +using xPushService.Interfaces; + +namespace xCategoryService.Interfaces +{ + public interface IXCategoryProvider : IXBaseProvided + { } +} \ No newline at end of file diff --git a/Interfaces/IXCategoryProviderController.cs b/Interfaces/IXCategoryProviderController.cs new file mode 100644 index 0000000..60f2f55 --- /dev/null +++ b/Interfaces/IXCategoryProviderController.cs @@ -0,0 +1,10 @@ +using xCategoryService.Models.Dtos; +using xCategoryService.Models.Entities; +using xCategoryService.Providers.Dtos; +using xPushService.Interfaces; + +namespace xCategoryService.Interfaces +{ + public interface IXCategoryProviderController: IXBaseProvidedController + { } +} \ No newline at end of file diff --git a/Interfaces/IXSubCategoryProvider.cs b/Interfaces/IXSubCategoryProvider.cs new file mode 100644 index 0000000..21206ba --- /dev/null +++ b/Interfaces/IXSubCategoryProvider.cs @@ -0,0 +1,10 @@ +using xCategoryService.Models.Dtos; +using xCategoryService.Models.Entities; +using xCategoryService.Providers.Dtos; +using xPushService.Interfaces; + +namespace xCategoryService.Interfaces +{ + public interface IXSubCategoryProvider : IXBaseProvided + { } +} \ No newline at end of file diff --git a/Interfaces/IXSubCategoryProviderController.cs b/Interfaces/IXSubCategoryProviderController.cs new file mode 100644 index 0000000..15113b7 --- /dev/null +++ b/Interfaces/IXSubCategoryProviderController.cs @@ -0,0 +1,10 @@ +using xCategoryService.Models.Dtos; +using xCategoryService.Models.Entities; +using xCategoryService.Providers.Dtos; +using xPushService.Interfaces; + +namespace xCategoryService.Interfaces +{ + public interface IXSubCategoryProviderController: IXBaseProvidedController + { } +} \ No newline at end of file diff --git a/Providers/XCategoryProvider.cs b/Providers/XCategoryProvider.cs new file mode 100644 index 0000000..e104e1a --- /dev/null +++ b/Providers/XCategoryProvider.cs @@ -0,0 +1,38 @@ +using xCategoryService.Interfaces; +using xCategoryService.Interfaces.Dtos; +using xCategoryService.Models.Dtos; +using xCategoryService.Models.Entities; +using xCategoryService.Providers.Dtos; +using xCommons.Extensions; +using xIdentityModels.Models; +using xPushService.Providers; + +namespace xCategoryService.Providers +{ + public class XCategoryProvider : XBaseProvided, IXCategoryProvider + { + public XCategoryProvider( + IXCategoryServiceProvider provider + ) : base( + provider, + permittedRoles: new string[] { } + ) + { } + + public override bool IsOwned( + XCategoryDto item, + XUserClaimsInfoDto userInfo + ) + { + return !item.IsNullOrDefault(); + } + + public override bool IsOwned( + XCategory item, + XUserClaimsInfoDto userInfo + ) + { + return !item.IsNullOrDefault(); + } + } +} \ No newline at end of file diff --git a/Providers/XSubCategoryProvider.cs b/Providers/XSubCategoryProvider.cs new file mode 100644 index 0000000..6d11dcf --- /dev/null +++ b/Providers/XSubCategoryProvider.cs @@ -0,0 +1,38 @@ +using xCategoryService.Interfaces; +using xCategoryService.Interfaces.Dtos; +using xCategoryService.Models.Dtos; +using xCategoryService.Models.Entities; +using xCategoryService.Providers.Dtos; +using xCommons.Extensions; +using xIdentityModels.Models; +using xPushService.Providers; + +namespace xCategoryService.Providers +{ + public class XSubCategoryProvider : XBaseProvided, IXSubCategoryProvider + { + public XSubCategoryProvider( + IXSubCategoryServiceProvider provider + ) : base( + provider, + permittedRoles: new string[] { } + ) + { } + + public override bool IsOwned( + XSubCategoryDto item, + XUserClaimsInfoDto userInfo + ) + { + return !item.IsNullOrDefault(); + } + + public override bool IsOwned( + XSubCategory item, + XUserClaimsInfoDto userInfo + ) + { + return !item.IsNullOrDefault(); + } + } +} \ No newline at end of file