From 10f5c463db29d4b4a934b3b5f71c42ae30b6bbdf Mon Sep 17 00:00:00 2001 From: Hadi Khazaee Asl Date: Tue, 2 Jun 2026 23:42:49 +0330 Subject: [PATCH] last ... --- Interfaces/IXItemResourceProvider.cs | 10 ++++ Providers/XBaseItemResourceProvider.cs | 67 ++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) diff --git a/Interfaces/IXItemResourceProvider.cs b/Interfaces/IXItemResourceProvider.cs index 05217eb..863a171 100644 --- a/Interfaces/IXItemResourceProvider.cs +++ b/Interfaces/IXItemResourceProvider.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using xIdentityModels.Models; using xStringService.Models.Dtos; namespace xStringService.Interfaces @@ -51,6 +52,15 @@ namespace xStringService.Interfaces object identifier, CancellationToken cancellationToken = default ); + + Task AddOrUpdateItemResourcer( + object identifier, + string language, + string translation, + string connectionId = null, + XUserClaimsInfoDto userInfo = null, + CancellationToken cancellationToken = default + ); #endregion } } \ No newline at end of file diff --git a/Providers/XBaseItemResourceProvider.cs b/Providers/XBaseItemResourceProvider.cs index 94211ab..e14c53d 100644 --- a/Providers/XBaseItemResourceProvider.cs +++ b/Providers/XBaseItemResourceProvider.cs @@ -5,6 +5,8 @@ using System.Threading; using System.Threading.Tasks; using xCommons.Extensions; using xExceptions.Constants; +using xIdentityModels.Models; +using xModels.Dtos; using xStringService.Interfaces; using xStringService.Interfaces.Dtos; using xStringService.Models.Dtos; @@ -156,10 +158,71 @@ namespace xStringService.Providers await provider.GetResourceLocales(cancellationToken); return result; } + + public async Task AddOrUpdateItemResourcer( + object identifier, + string language, + string translation, + string connectionId = null, + XUserClaimsInfoDto userInfo = null, + CancellationToken cancellationToken = default + ) + { + // + var result = string.Empty; + + // + // Validate Args ... + var isValid = + !identifier.IsNull() && + !language.IsNullOrEmpty() && + !translation.IsNullOrEmpty(); + if (!isValid) + { + return result; + } + + // + // Prepare Identifier ... + var resourceTitle = GetResourceTitle(identifier); + + // + // Set Resource Title ... + SetResourceTitle(resourceTitle); + + // + // Try to Add Or Update ... + var resource = await provider.AddOrUpdateLocale( + userInfo: userInfo, + connectionId: connectionId, + locale: new XLocaleResourceDto + { + Language = language, + Value = translation + }, + cancellationToken: cancellationToken + ); + + // + // Validate Result ... + isValid = !resource.IsNullOrDefault(); + if (isValid) + { + result = resourceTitle; + } + + // + return result; + } #endregion // #region Private ... + /// + /// Retrieve Resource Title ... + /// + /// + /// private string GetResourceTitle(object identifier = null) { // @@ -175,6 +238,10 @@ namespace xStringService.Providers return result; } + /// + /// Set Resource Title ... + /// + /// private void SetResourceTitle(object identifier = null) { //