From 234f39876b3d3b6066cb472f55eebb7c1fe97638 Mon Sep 17 00:00:00 2001 From: Hadi Khazaee Asl Date: Wed, 8 Jul 2026 02:47:15 +0330 Subject: [PATCH] last works on Category and SubCategory Completion ... --- Interfaces/IXCategoryProvider.cs | 2 +- .../Dtos/XCategoryResourceDto.cs | 14 +++++++++-- .../Dtos/XSubCategoryResourceDto.cs | 3 +-- Providers/XCategoryProvider.cs | 2 ++ Providers/XSubCategoryProvider.cs | 23 +++++++++++++++++-- 5 files changed, 37 insertions(+), 7 deletions(-) rename {Providers => Models}/Dtos/XCategoryResourceDto.cs (53%) rename {Providers => Models}/Dtos/XSubCategoryResourceDto.cs (90%) diff --git a/Interfaces/IXCategoryProvider.cs b/Interfaces/IXCategoryProvider.cs index 686303f..fedcad1 100644 --- a/Interfaces/IXCategoryProvider.cs +++ b/Interfaces/IXCategoryProvider.cs @@ -13,7 +13,7 @@ using xPushService.Interfaces; namespace xCategoryService.Interfaces { - public interface IXCategoryProvider : IXBaseProvided + public interface IXCategoryProvider : IXBaseProvided, IXCategorySubCategoryReferenceProvider { /// /// Check Has Specified Locale or not ... diff --git a/Providers/Dtos/XCategoryResourceDto.cs b/Models/Dtos/XCategoryResourceDto.cs similarity index 53% rename from Providers/Dtos/XCategoryResourceDto.cs rename to Models/Dtos/XCategoryResourceDto.cs index cd664f3..f575de3 100644 --- a/Providers/Dtos/XCategoryResourceDto.cs +++ b/Models/Dtos/XCategoryResourceDto.cs @@ -1,16 +1,26 @@ -using xCategoryService.Models.Dtos; using xModels.Base; using xModels.Dtos; -namespace xCategoryService.Providers.Dtos +namespace xCategoryService.Models.Dtos { /// /// Represent a Category by all of it's Resources ... /// public class XCategoryResourceDto : XBaseDto { + /// + /// Category Dto Item for Add or Update ... + /// public XCategoryDto Item { get; set; } + + /// + /// Exists Category Titles ... + /// public XResourceDto Titles { get; set; } + + /// + /// Exists Category Description ... + /// public XResourceDto Descriptions { get; set; } } } \ No newline at end of file diff --git a/Providers/Dtos/XSubCategoryResourceDto.cs b/Models/Dtos/XSubCategoryResourceDto.cs similarity index 90% rename from Providers/Dtos/XSubCategoryResourceDto.cs rename to Models/Dtos/XSubCategoryResourceDto.cs index c9bcd63..d389acd 100644 --- a/Providers/Dtos/XSubCategoryResourceDto.cs +++ b/Models/Dtos/XSubCategoryResourceDto.cs @@ -1,8 +1,7 @@ -using xCategoryService.Models.Dtos; using xModels.Base; using xModels.Dtos; -namespace xCategoryService.Providers.Dtos +namespace xCategoryService.Models.Dtos { public class XSubCategoryResourceDto : XBaseDto { diff --git a/Providers/XCategoryProvider.cs b/Providers/XCategoryProvider.cs index 8de96d8..43f3e42 100644 --- a/Providers/XCategoryProvider.cs +++ b/Providers/XCategoryProvider.cs @@ -32,6 +32,8 @@ namespace xCategoryService.Providers private readonly IXCategoryDescriptionResourceProvider descriptionResourceProvider; private readonly IXCategorySubCategoryReferenceProvider categorySubCategoryReferenceProvider; + public string Provider => categorySubCategoryReferenceProvider.Provider; + public XCategoryProvider( XAppConfiguration appConfiguration, IXCategoryServiceProvider provider, diff --git a/Providers/XSubCategoryProvider.cs b/Providers/XSubCategoryProvider.cs index dec1c89..1a97e9a 100644 --- a/Providers/XSubCategoryProvider.cs +++ b/Providers/XSubCategoryProvider.cs @@ -25,6 +25,7 @@ namespace xCategoryService.Providers public class XSubCategoryProvider : XBaseProvided, IXSubCategoryProvider { private readonly XAppConfiguration appConfiguration; + private readonly IXCategoryProvider categoryProvider; private readonly IXSubCategoryServiceProvider provider; private readonly XDataServiceConfiguration dataServiceConfiguration; private readonly IXSubCategoryTitleResourceProvider titleResourceProvider; @@ -32,6 +33,7 @@ namespace xCategoryService.Providers public XSubCategoryProvider( XAppConfiguration appConfiguration, + IXCategoryProvider categoryProvider, IXSubCategoryServiceProvider provider, XDataServiceConfiguration dataServiceConfiguration, IXSubCategoryTitleResourceProvider titleResourceProvider, @@ -41,10 +43,11 @@ namespace xCategoryService.Providers permittedRoles: new string[] { } ) { - this.appConfiguration = appConfiguration; this.provider = provider; - this.dataServiceConfiguration = dataServiceConfiguration; + this.appConfiguration = appConfiguration; + this.categoryProvider = categoryProvider; this.titleResourceProvider = titleResourceProvider; + this.dataServiceConfiguration = dataServiceConfiguration; this.descriptionResourceProvider = descriptionResourceProvider; } @@ -137,11 +140,27 @@ namespace xCategoryService.Providers cancellationToken: cancellationToken ); + // + // Reading Category Resource ... + XCategoryResourceDto categoryResourceDto = null; + var categoryDto = await categoryProvider.GetReference( + providedForId: id, + cancellationToken: cancellationToken + ); + if (!categoryDto.IsNullOrDefault()) + { + categoryResourceDto = await categoryProvider.GetResource( + id: categoryDto.Id, + cancellationToken: cancellationToken + ); + } + // var result = new XSubCategoryResourceDto { Item = item, Titles = titleResource, + Category = categoryResourceDto, Descriptions = descriptionResource };