diff --git a/Controllers/XTermsAndComditionsControllerBase.cs b/Controllers/XTermsAndComditionsControllerBase.cs
deleted file mode 100644
index 15141c0..0000000
--- a/Controllers/XTermsAndComditionsControllerBase.cs
+++ /dev/null
@@ -1,313 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Threading;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.Logging;
-using xCommons.Configurations;
-using xCommons.Extensions;
-using xCommons.Providers;
-using xExceptions.Constants;
-using xIdentityService.Controllers;
-using xIdentityService.Interfaces;
-using xModels.Base;
-using xTermsAndConditionsService.Interfaces;
-
-namespace xTermsAndConditionsService.Controllers
-{
- ///
- /// a Base Controller Implementation for Providing Base Actions of
- /// Terms and Conditions Provided Actions ...
- ///
- [AllowAnonymous]
- public abstract class XTermsAndComditionsControllerBase : XBaseIdentityApiV1Controller, IXTermsAndComditionsController
- {
- private readonly IXTermsAndComditionsProvider provider;
-
- protected XTermsAndComditionsControllerBase(
- ILogger logger,
- XAppConfiguration appConfiguration,
- IXIdentityProvider identityProvider,
- IXTermsAndComditionsProvider provider,
- XValidationProvider validationProvider
- ) : base(
- logger,
- appConfiguration,
- identityProvider,
- validationProvider
- )
- {
- this.provider = provider;
- }
-
- //
- #region Actions ...
- ///
- /// Retrieved all Exists Languages Terms and Conditions ...
- ///
- ///
- [HttpGet("Terms/Languages")]
- public virtual async Task>> TermsLanguages(
- CancellationToken cancellationToken = default
- )
- {
- //
- try
- {
- //
- var result = await provider.TermsLanguages(
- cancellationToken: cancellationToken
- );
-
- //
- return Ok(result.ToDynamicObject());
- }
- catch (Exception ex)
- {
- //
- var result = GetExceptionActionResult(ex);
- return result;
- }
- }
-
- ///
- /// Check Has Terms and Conditions based on Specified Language ...
- ///
- /// if null, used Default Language ...
- ///
- [HttpGet("Terms/{language}/Has")]
- public virtual async Task> HasTerms(
- [FromRoute] string language = null,
- CancellationToken cancellationToken = default
- )
- {
- //
- try
- {
- //
- // Validate ...
- if (!ModelState.IsValid)
- {
- XException.InvalidArgs.Throw();
- }
- await ValidationProvider
- .GroupValidationBuilder()
- .AddNotEmpty(language)
- .ValidateGroupAsync();
-
- //
- var result = await provider.HasTerms(
- language: language,
- cancellationToken: cancellationToken
- );
-
- //
- return Ok(result);
- }
- catch (Exception ex)
- {
- //
- var result = GetExceptionActionResult(ex);
- return result;
- }
- }
-
- ///
- /// Retrieve Terms and Conditions for Specified Language ...
- ///
- /// if null, used Default Language ...
- ///
- [HttpGet("Terms/{language}")]
- public virtual async Task> GetTerms(
- [FromRoute] string language = null,
- CancellationToken cancellationToken = default
- )
- {
- //
- try
- {
- //
- // Validate ...
- if (!ModelState.IsValid)
- {
- XException.InvalidArgs.Throw();
- }
- await ValidationProvider
- .GroupValidationBuilder()
- .AddNotEmpty(language)
- .ValidateGroupAsync();
-
- //
- var result = await provider.GetTerms(
- language: language,
- cancellationToken: cancellationToken
- );
-
- //
- return Ok(result);
- }
- catch (Exception ex)
- {
- //
- var result = GetExceptionActionResult(ex);
- return result;
- }
- }
-
- ///
- /// Add Terms and Conditions for Specified Language ...
- ///
- ///
- ///
- ///
- [HttpPost("Terms/{language}")]
- public virtual async Task> AddTerms(
- [FromRoute] string language,
- [FromBody] XBaseValueContainer terms,
- CancellationToken cancellationToken = default
- )
- {
- //
- try
- {
- //
- // Validate ...
- if (!ModelState.IsValid)
- {
- XException.InvalidArgs.Throw();
- }
- await ValidationProvider
- .GroupValidationBuilder()
- .AddNotEmpty(language)
- .AddNotNull(terms)
- .AddNotEmpty(terms.Value)
- .ValidateGroupAsync();
-
- //
- var userInfo = await GetUserInfo();
- var connectionId = GetConnectionId();
-
- //
- var result = await provider.AddTerms(
- language: language,
- terms: terms.Value,
- userInfo: userInfo,
- connectionId: connectionId,
- cancellationToken: cancellationToken
- );
-
- //
- return Ok(result);
- }
- catch (Exception ex)
- {
- //
- var result = GetExceptionActionResult(ex);
- return result;
- }
- }
-
- ///
- /// Remove Terms and Conditions of Specified Language ...
- ///
- ///
- ///
- [HttpDelete("Terms/{language}")]
- public virtual async Task> RemoveTerms(
- [FromRoute] string language,
- CancellationToken cancellationToken = default
- )
- {
- //
- try
- {
- //
- // Validate ...
- if (!ModelState.IsValid)
- {
- XException.InvalidArgs.Throw();
- }
- await ValidationProvider
- .GroupValidationBuilder()
- .AddNotEmpty(language)
- .ValidateGroupAsync();
-
- //
- var userInfo = await GetUserInfo();
- var connectionId = GetConnectionId();
-
- //
- var result = await provider.RemoveTerms(
- language: language,
- userInfo: userInfo,
- connectionId: connectionId,
- cancellationToken: cancellationToken
- );
-
- //
- return Ok(result);
- }
- catch (Exception ex)
- {
- //
- var result = GetExceptionActionResult(ex);
- return result;
- }
- }
-
- ///
- /// Update Terms and Conditions of Specified Language ...
- ///
- ///
- ///
- ///
- [HttpPut("Terms/{language}")]
- public virtual async Task> UpdateTerms(
- [FromRoute] string language,
- [FromBody] XBaseValueContainer terms,
- CancellationToken cancellationToken = default
- )
- {
- //
- try
- {
- //
- // Validate ...
- if (!ModelState.IsValid)
- {
- XException.InvalidArgs.Throw();
- }
- await ValidationProvider
- .GroupValidationBuilder()
- .AddNotEmpty(language)
- .AddNotNull(terms)
- .AddNotEmpty(terms.Value)
- .ValidateGroupAsync();
-
- //
- var userInfo = await GetUserInfo();
- var connectionId = GetConnectionId();
-
- //
- var result = await provider.UpdateTerms(
- language: language,
- terms: terms.Value,
- userInfo: userInfo,
- connectionId: connectionId,
- cancellationToken: cancellationToken
- );
-
- //
- return Ok(result);
- }
- catch (Exception ex)
- {
- //
- var result = GetExceptionActionResult(ex);
- return result;
- }
- }
- #endregion
- }
-}
\ No newline at end of file
diff --git a/Controllers/XTermsAndConditionsControllerBase.cs b/Controllers/XTermsAndConditionsControllerBase.cs
new file mode 100644
index 0000000..c65030f
--- /dev/null
+++ b/Controllers/XTermsAndConditionsControllerBase.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Logging;
+using xCommons.Configurations;
+using xCommons.Extensions;
+using xCommons.Providers;
+using xExceptions.Constants;
+using xIdentityService.Controllers;
+using xIdentityService.Interfaces;
+using xModels.Base;
+using xStringService.Controllers;
+using xTermsAndConditionsService.Interfaces;
+using xTermsAndConditionsService.Providers;
+
+namespace xTermsAndConditionsService.Controllers
+{
+ ///
+ /// a Base Controller Implementation for Providing Base Actions of
+ /// Terms and Conditions Provided Actions ...
+ ///
+ [AllowAnonymous]
+ public abstract class XTermsAndConditionsControllerBase : XBaseResourceProviderControllerBase, IXTermsAndConditionsController
+ {
+ protected XTermsAndConditionsControllerBase(
+ ILogger logger,
+ XAppConfiguration appConfiguration,
+ IXIdentityProvider identityProvider,
+ XValidationProvider validationProvider,
+ IXTermsAndConditionsProvider provider
+ ) : base(
+ logger,
+ appConfiguration,
+ identityProvider,
+ validationProvider,
+ provider
+ )
+ { }
+ }
+}
\ No newline at end of file
diff --git a/DI/XDIHelperExtension.cs b/DI/XDIHelperExtension.cs
index 1517d41..b96f120 100644
--- a/DI/XDIHelperExtension.cs
+++ b/DI/XDIHelperExtension.cs
@@ -294,7 +294,7 @@ namespace xTermsAndConditionsService.DI
//
// Register Resource Providers ...
- services.Add(new ServiceDescriptor(typeof(IXTermsAndComditionsProvider), typeof(XTermsAndComditionsProvider), lifeTime));
+ services.Add(new ServiceDescriptor(typeof(IXTermsAndConditionsProvider), typeof(XTermsAndConditionsProvider), lifeTime));
}
#endregion
}
diff --git a/Interfaces/IXTermsAndComditionsController.cs b/Interfaces/IXTermsAndComditionsController.cs
deleted file mode 100644
index 32ff929..0000000
--- a/Interfaces/IXTermsAndComditionsController.cs
+++ /dev/null
@@ -1,82 +0,0 @@
-using System.Collections.Generic;
-using System.Threading;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.Mvc;
-using xModels.Base;
-
-namespace xTermsAndConditionsService.Interfaces
-{
- ///
- /// an Interface for Describing Terms and Conditions Management Controller Actions ...
- ///
- public interface IXTermsAndComditionsController
- {
- ///
- /// Retrieved all Exists Languages Terms and Conditions ...
- ///
- ///
- [HttpGet("Terms/Languages")]
- Task>> TermsLanguages(
- CancellationToken cancellationToken = default
- );
-
- ///
- /// Check Has Terms and Conditions based on Specified Language ...
- ///
- /// if null, used Default Language ...
- ///
- [HttpGet("Terms/{language}/Has")]
- Task> HasTerms(
- [FromRoute] string language = null,
- CancellationToken cancellationToken = default
- );
-
- ///
- /// Retrieve Terms and Conditions for Specified Language ...
- ///
- /// if null, used Default Language ...
- ///
- [HttpGet("Terms/{language}")]
- Task> GetTerms(
- [FromRoute] string language = null,
- CancellationToken cancellationToken = default
- );
-
- ///
- /// Add Terms and Conditions for Specified Language ...
- ///
- ///
- ///
- ///
- [HttpPost("Terms/{language}")]
- Task> AddTerms(
- [FromRoute] string language,
- [FromBody] XBaseValueContainer terms,
- CancellationToken cancellationToken = default
- );
-
- ///
- /// Remove Terms and Conditions of Specified Language ...
- ///
- ///
- ///
- [HttpDelete("Terms/{language}")]
- Task> RemoveTerms(
- [FromRoute] string language,
- CancellationToken cancellationToken = default
- );
-
- ///
- /// Update Terms and Conditions of Specified Language ...
- ///
- ///
- ///
- ///
- [HttpPut("Terms/{language}")]
- Task> UpdateTerms(
- [FromRoute] string language,
- [FromBody] XBaseValueContainer terms,
- CancellationToken cancellationToken = default
- );
- }
-}
\ No newline at end of file
diff --git a/Interfaces/IXTermsAndComditionsProvider.cs b/Interfaces/IXTermsAndComditionsProvider.cs
deleted file mode 100644
index 0a840e9..0000000
--- a/Interfaces/IXTermsAndComditionsProvider.cs
+++ /dev/null
@@ -1,95 +0,0 @@
-using System.Collections.Generic;
-using System.Threading;
-using System.Threading.Tasks;
-using xIdentityModels.Models;
-
-namespace xTermsAndConditionsService.Interfaces
-{
- ///
- /// an Interface for Describing Terms and Conditions Management Provided Actions ...
- ///
- public interface IXTermsAndComditionsProvider
- {
- #region Actions ...
- ///
- /// Retrieved all Exists Languages Terms and Conditions ...
- ///
- ///
- ///
- Task> TermsLanguages(
- CancellationToken cancellationToken = default
- );
-
- ///
- /// Check Has Terms and Conditions based on Specified Language ...
- ///
- /// if null, used Default Language ...
- ///
- ///
- Task HasTerms(
- string language = null,
- CancellationToken cancellationToken = default
- );
-
- ///
- /// Retrieve Terms and Conditions for Specified Language ...
- ///
- /// if null, used Default Language ...
- ///
- ///
- Task GetTerms(
- string language = null,
- CancellationToken cancellationToken = default
- );
-
- ///
- /// Add Terms and Conditions for Specified Language ...
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- Task AddTerms(
- string language,
- string terms,
- XUserClaimsInfoDto userInfo = null,
- string connectionId = null,
- CancellationToken cancellationToken = default
- );
-
- ///
- /// Remove Terms and Conditions of Specified Language ...
- ///
- ///
- ///
- ///
- ///
- ///
- Task RemoveTerms(
- string language,
- XUserClaimsInfoDto userInfo = null,
- string connectionId = null,
- CancellationToken cancellationToken = default
- );
-
- ///
- /// Update Terms and Conditions of Specified Language ...
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- Task UpdateTerms(
- string language,
- string terms,
- XUserClaimsInfoDto userInfo = null,
- string connectionId = null,
- CancellationToken cancellationToken = default
- );
- #endregion
- }
-}
\ No newline at end of file
diff --git a/Interfaces/IXTermsAndConditionsController.cs b/Interfaces/IXTermsAndConditionsController.cs
new file mode 100644
index 0000000..fc4e357
--- /dev/null
+++ b/Interfaces/IXTermsAndConditionsController.cs
@@ -0,0 +1,15 @@
+using System.Collections.Generic;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using xModels.Base;
+using xStringService.Interfaces;
+
+namespace xTermsAndConditionsService.Interfaces
+{
+ ///
+ /// an Interface for Describing Terms and Conditions Management Controller Actions ...
+ ///
+ public interface IXTermsAndConditionsController : IXBaseResourceProviderController
+ { }
+}
\ No newline at end of file
diff --git a/Interfaces/IXTermsAndConditionsProvider.cs b/Interfaces/IXTermsAndConditionsProvider.cs
new file mode 100644
index 0000000..cc13dcc
--- /dev/null
+++ b/Interfaces/IXTermsAndConditionsProvider.cs
@@ -0,0 +1,14 @@
+using System.Collections.Generic;
+using System.Threading;
+using System.Threading.Tasks;
+using xIdentityModels.Models;
+using xStringService.Interfaces;
+
+namespace xTermsAndConditionsService.Interfaces
+{
+ ///
+ /// an Interface for Describing Terms and Conditions Management Provided Actions ...
+ ///
+ public interface IXTermsAndConditionsProvider : IXResourceProvider
+ { }
+}
\ No newline at end of file
diff --git a/Providers/XTermsAndComditionsProvider.cs b/Providers/XTermsAndComditionsProvider.cs
deleted file mode 100644
index d55e2d6..0000000
--- a/Providers/XTermsAndComditionsProvider.cs
+++ /dev/null
@@ -1,495 +0,0 @@
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.SignalR;
-using xCommons.Configurations;
-using xCommons.Extensions;
-using xExceptions.Constants;
-using xIdentityModels.Extensions;
-using xIdentityModels.Models;
-using xPushService.Constants;
-using xStringService.Interfaces.Dtos;
-using xStringService.Models.Dtos;
-using xTermsAndConditionsService.Configuration;
-using xTermsAndConditionsService.Hubs;
-using xTermsAndConditionsService.Interfaces;
-
-namespace xTermsAndConditionsService.Providers
-{
- ///
- /// an Implementation of Terms and Conditions Management Provided Actions ...
- ///
- public class XTermsAndComditionsProvider : IXTermsAndComditionsProvider
- {
- //
- #region Props ...
- private readonly string termsId;
- private readonly string[] allowedRoles;
- private readonly IHubContext hub;
- private readonly XAppConfiguration appConfiguration;
- private readonly IXStringServiceProvider stringProvider;
- private readonly XTermsAndConditionsServiceConfiguration serviceConfiguration;
- #endregion
-
- //
- #region Constructor ...
- public XTermsAndComditionsProvider(
- XAppConfiguration appConfiguration,
- IXStringServiceProvider stringProvider,
- XTermsAndConditionsServiceConfiguration serviceConfiguration,
- IHubContext hub = null
- )
- {
- //
- this.hub = hub;
- this.stringProvider = stringProvider;
- this.appConfiguration = appConfiguration;
- this.serviceConfiguration = serviceConfiguration;
-
- //
- termsId = serviceConfiguration.ResourceTitle;
-
- //
- // Specified roles for Handling Dangerouse Actions ...
- this.allowedRoles = new string[]
- {
- "admin"
- };
- }
- #endregion
-
- //
- #region Actions ...
- ///
- /// Retrieved all Exists Languages Terms and Conditions ...
- ///
- ///
- ///
- public async Task> TermsLanguages(
- CancellationToken cancellationToken = default
- )
- {
- //
- var result = (await stringProvider
- .FindManyAsync(
- includeBuilder: null,
- ignoreSoftDeleteds: true,
- cancellationToken: cancellationToken,
- predicate: x => x.ResourceTitle == termsId,
- orderBuilder: x => x.OrderBy(y => y.ResourceTitle)
- ))
- .Select(x => x.Language);
- return result;
- }
-
- ///
- /// Check Has Terms and Conditions based on Specified Language ...
- ///
- /// if null, used Default Language ...
- ///
- ///
- public async Task HasTerms(
- string language = null,
- CancellationToken cancellationToken = default
- )
- {
- //
- // Normalize ...
- if (language.IsNullOrEmpty())
- {
- language = appConfiguration.DefaultLanguage;
- }
-
- //
- var result = !(await GetString(
- language: language,
- cancellationToken: cancellationToken
- ))
- .IsNullOrDefault();
-
- //
- return result;
- }
-
- ///
- /// Retrieve Terms and Conditions for Specified Language ...
- ///
- /// if null, used Default Language ...
- ///
- ///
- public async Task GetTerms(
- string language = null,
- CancellationToken cancellationToken = default
- )
- {
- //
- var result = string.Empty;
- var item = await GetString(
- language: language,
- cancellationToken: cancellationToken
- );
-
- //
- if (!item.IsNullOrDefault())
- {
- result = item.TranslatedValue;
- }
-
- //
- return result;
- }
-
- ///
- /// Add Terms and Conditions for Specified Language ...
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public async Task AddTerms(
- string language,
- string terms,
- XUserClaimsInfoDto userInfo = null,
- string connectionId = null,
- CancellationToken cancellationToken = default
- )
- {
- //
- // Validate ...
- var isValid =
- !language.IsNullOrEmpty() &&
- !terms.IsNullOrEmpty() &&
- !userInfo.IsNullOrDefault() &&
- language != appConfiguration.DefaultLanguage;
- if (!isValid)
- {
- XException.InvalidArgs.Throw();
- }
-
- //
- // Check Exists ...
- isValid = await HasTerms(
- language: language,
- cancellationToken: cancellationToken
- );
- if (isValid)
- {
- XException.Duplicate.Throw();
- }
-
- //
- // Check Permission ...
- isValid = userInfo.HasAccess(allowedRoles);
- if (!isValid)
- {
- XException.NotAllowed.Throw();
- }
-
- //
- // Add Terms ...
- XStringDto item = null;
- try
- {
- //
- item = new XStringDto
- {
- Language = language,
- ResourceTitle = termsId,
- TranslatedValue = terms,
- };
- item = await stringProvider.AddAsync(
- item: item,
- saveChanges: true,
- cancellationToken: cancellationToken
- );
- }
- catch { }
-
- //
- var result = string.Empty;
- if (!item.IsNullOrDefault())
- {
- result = item.TranslatedValue;
- }
-
- //
- if (!result.IsNullOrEmpty())
- {
- //
- await SendPush(
- connectionId: connectionId,
- cancellationToken: cancellationToken,
- payLoad: item.ToJSON(camelCase: true),
- action: XBaseEntityHubAction.Add.GetStringValue()
- );
- }
-
- //
- return result;
- }
-
- ///
- /// Remove Terms and Conditions of Specified Language ...
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public async Task RemoveTerms(
- string language,
- XUserClaimsInfoDto userInfo = null,
- string connectionId = null,
- CancellationToken cancellationToken = default
- )
- {
- //
- var isValid =
- !language.IsNullOrEmpty() &&
- !userInfo.IsNullOrDefault() &&
- language != appConfiguration.DefaultLanguage;
- if (!isValid)
- {
- XException.InvalidArgs.Throw();
- }
-
- //
- // Check Exists ...
- var item = await GetString(
- language: language,
- cancellationToken: cancellationToken
- );
- isValid = !item.IsNullOrDefault();
- if (!isValid)
- {
- XException.NotFound.Throw();
- }
-
- //
- // Check Permission ...
- isValid = userInfo.HasAccess(allowedRoles);
- if (!isValid)
- {
- XException.NotAllowed.Throw();
- }
-
- //
- try
- {
- //
- item = await stringProvider.RemoveAsync(
- id: item.Id,
- softDelete: false,
- saveChanges: true,
- cancellationToken: cancellationToken
- );
- }
- catch
- {
- item = null;
- }
-
- //
- var result = !item.IsNullOrDefault();
- if (result)
- {
- //
- await SendPush(
- connectionId: connectionId,
- cancellationToken: cancellationToken,
- payLoad: item.ToJSON(camelCase: true),
- action: XBaseEntityHubAction.Delete.GetStringValue()
- );
- }
-
- //
- return result;
- }
-
- ///
- /// Update Terms and Conditions of Specified Language ...
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public async Task UpdateTerms(
- string language,
- string terms,
- XUserClaimsInfoDto userInfo = null,
- string connectionId = null,
- CancellationToken cancellationToken = default
- )
- {
- //
- var isValid =
- !terms.IsNullOrEmpty() &&
- !language.IsNullOrEmpty() &&
- !userInfo.IsNullOrDefault();
- if (!isValid)
- {
- XException.InvalidArgs.Throw();
- }
-
- //
- // Check Exists ...
- var item = await GetString(
- language: language,
- cancellationToken: cancellationToken
- );
- isValid = !item.IsNullOrDefault();
- if (!isValid)
- {
- XException.NotFound.Throw();
- }
-
- //
- // Check Permission ...
- isValid = userInfo.HasAccess(allowedRoles);
- if (!isValid)
- {
- XException.NotAllowed.Throw();
- }
-
- //
- try
- {
- //
- item.TranslatedValue = terms;
- item = await stringProvider.UpdateAsync(
- id: item.Id,
- item: item,
- saveChanges: true,
- cancellationToken: cancellationToken
- );
- }
- catch
- {
- item = null;
- }
-
- //
- var result = !item.IsNullOrDefault();
- if (result)
- {
- //
- await SendPush(
- connectionId: connectionId,
- cancellationToken: cancellationToken,
- payLoad: item.ToJSON(camelCase: true),
- action: XBaseEntityHubAction.Update.GetStringValue()
- );
- }
-
- //
- return result;
- }
- #endregion
-
- //
- #region Hub Actions ...
- ///
- /// Send Custom Push Message ...
- ///
- ///
- ///
- ///
- ///
- ///
- public async Task SendPush(
- string action,
- string payLoad,
- string connectionId = null,
- CancellationToken cancellationToken = default
- )
- {
- //
- var actions = new List
- {
- XBaseEntityHubAction.Add.GetStringValue(),
- XBaseEntityHubAction.Update.GetStringValue(),
- XBaseEntityHubAction.Delete.GetStringValue(),
- };
-
- //
- // Validate ...
- var isValid =
- !hub.IsNull() &&
- !action.IsNullOrEmpty() &&
- actions.Contains(action);
- if (!isValid)
- {
- return;
- }
-
- //
- var clients = hub.Clients.All;
- if (!connectionId.IsNullOrEmpty())
- {
- clients = hub.Clients.AllExcept(connectionId);
- }
- try
- {
- //
- await clients.SendAsync(
- action,
- payLoad,
- connectionId,
- cancellationToken
- );
- }
- catch { }
- }
- #endregion
-
- //
- #region Private ...
- ///
- /// Retrieve Terms and Conditions XString Entity ...
- ///
- ///
- ///
- ///
- private async Task GetString(
- string language = null,
- CancellationToken cancellationToken = default
- )
- {
- //
- // Normalize ...
- if (language.IsNullOrEmpty())
- {
- language = appConfiguration.DefaultLanguage;
- }
-
- //
- // Retrieve ...
- XStringDto result = null;
- try
- {
- //
- result = await stringProvider.FindOneAsync(
- includeBuilder: null,
- ignoreSoftDeleteds: true,
- predicate: x =>
- x.Language == language &&
- x.ResourceTitle == termsId,
- cancellationToken: cancellationToken
- );
- }
- catch
- {
- }
-
- //
- return result;
- }
- #endregion
- }
-}
\ No newline at end of file
diff --git a/Providers/XTermsAndConditionsProvider.cs b/Providers/XTermsAndConditionsProvider.cs
new file mode 100644
index 0000000..2751342
--- /dev/null
+++ b/Providers/XTermsAndConditionsProvider.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Linq;
+using System.Reflection;
+using xCommons.Extensions;
+using xStringService.Interfaces.Dtos;
+using xStringService.Providers;
+using xTermsAndConditionsService.Configuration;
+using xTermsAndConditionsService.Interfaces;
+
+namespace xTermsAndConditionsService.Providers
+{
+ ///
+ /// an Implementation of Terms and Conditions Management Provided Actions ...
+ ///
+ public class XTermsAndConditionsProvider : XBaseResourceProvider, IXTermsAndConditionsProvider
+ {
+ public XTermsAndConditionsProvider(
+ IXStringServiceProvider provider,
+ XTermsAndConditionsServiceConfiguration configuration
+ ) : base(
+ resource: "NULL",
+ provider
+ )
+ {
+ //
+ // Since we nee to Set Resource Title of Terms and Conditions
+ // during instancing using Provided Configurations ...
+ // set this value here ...
+ resource = configuration.ResourceTitle;
+ }
+ }
+}
\ No newline at end of file