This commit is contained in:
2026-05-28 02:30:20 +03:30
parent 0e8c3a9623
commit 172f0806f2
10 changed files with 51 additions and 53 deletions
+1 -1
View File
@@ -177,7 +177,7 @@ namespace xStringService.DI
// //
descriptor = typeof(XStringServiceHelper) descriptor = typeof(XStringServiceHelper)
.InvokeGenericMethod<XRepositoryDescriptor>( .InvokeGenericMethod<XRepositoryDescriptor>(
methodName: "GetXStringEfRepositoryDescriptor", methodName: "GetXStringEFRepositoryDescriptor",
runtimeType: contextType, runtimeType: contextType,
args: null args: null
); );
-45
View File
@@ -9,51 +9,6 @@ namespace xStringService.Extensions
{ {
public static class XModelExtensions public static class XModelExtensions
{ {
/// <summary>
/// Converts an Entity to Dto Representation ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static XStringDto ToXStringDto(this XString source)
{
//
XStringDto result = new XStringDto();
//
result.Id = source.Id;
result.Language = source.Language;
result.ResourceTitle = source.ResourceTitle;
result.TranslatedValue = source.TranslatedValue;
//
return result;
}
/// <summary>
/// Converts a Collection of Entities to Dto ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static IEnumerable<XStringDto> ToXStringDtos(this IEnumerable<XString> source)
{
//
var list = new List<XStringDto>();
//
// Validate ...
bool isValid = source.HasChild();
if (!isValid)
{
return list.AsEnumerable();
}
//
var result = source.Select(e => ToXStringDto(e));
//
return result;
}
/// <summary> /// <summary>
/// Converts an Entity to LocaleResource Dto ... /// Converts an Entity to LocaleResource Dto ...
/// </summary> /// </summary>
View File
+2 -3
View File
@@ -1,5 +1,4 @@
using GraphQL.Types; using GraphQL.Types;
using MongoDB.Bson.Serialization.Serializers;
using xDataHelper.Providers.GraphQL; using xDataHelper.Providers.GraphQL;
using xDataService.Db; using xDataService.Db;
using xDataService.Models; using xDataService.Models;
@@ -32,7 +31,7 @@ namespace xStringService.Helpers
IXStringRepository, IXStringRepository,
XStringEFRepository<TContext>, XStringEFRepository<TContext>,
TContext TContext
> GetXStringEfRepositoryDescriptor<TContext>() > GetXStringEFRepositoryDescriptor<TContext>()
where TContext : XDbContext where TContext : XDbContext
{ {
// //
@@ -76,7 +75,7 @@ namespace xStringService.Helpers
TContext, TContext,
IXStringSeeder, IXStringSeeder,
TSeederImplementation TSeederImplementation
> GetXStringEfRepositoryDescriptor<TContext, TSeederImplementation>() > GetXStringEFRepositoryDescriptor<TContext, TSeederImplementation>()
where TContext : XDbContext where TContext : XDbContext
where TSeederImplementation : XBaseDbSeeder<XString, int> where TSeederImplementation : XBaseDbSeeder<XString, int>
{ {
View File
@@ -4,6 +4,6 @@ using xStringService.Providers.Entities;
namespace xStringService.Interfaces.Entities namespace xStringService.Interfaces.Entities
{ {
public interface IXStringRepositoryProvider : IXBaseEntityProviderr<XString, int, XStringEntityHub> public interface IXStringRepositoryProvider : IXBaseEntityProvider<XString, int, XStringEntityHub>
{ } { }
} }
View File
View File
+47 -3
View File
@@ -6,11 +6,8 @@ it is a Part of xDashboard on SaherElm IT Center which provides:
this module has following dependencies : this module has following dependencies :
- xModels
- xCommons
- xDataService - xDataService
- xPushService - xPushService
- xIdentityModels
- xIdentityService - xIdentityService
for configure and use this Module refer to DI.XDIHelperExtension.cs file. for configure and use this Module refer to DI.XDIHelperExtension.cs file.
@@ -615,6 +612,53 @@ public abstract class XBaseStringResourceProvider : IXBaseStringResourceProvider
} }
``` ```
### Controllers
there are some abstraction Layer of Controller Implementation for using Provided Services for managing data.
- **XStringRepositoryControllerBase**: an abstract Controller for Provide Repository Actions (using Entity).
- **XStringRepositoryProviderControllerBase**: an abstract Controller for Provide Repository Actions (using Entity and XEntityHub).
- **XStringServiceControllerBase**: an abstract Controller for Provide Service Actions (using Dto).
- **XStringServiceProviderControllerBase**: an abstract Controller for Provide Service Actions (using Dto and XDtoHub).
- **XBaseStringResourceProviderControllerBase**: an abstract Controller for Provide Actions for Base String Resources.
## Implementation
you have to follow these steps for using this Module.
- **DI Registration**: in this phase, all Provided Services Registered in DI.
- **Middleware Usage**: in this phase, Service Middlewares Use to Handle Features.
```C#
public class Startup
{
//
public void ConfigureServices(IServiceCollection services)
{
...
//
// Register String Service ...
services.AddXStringService<XApiDbContext>(
lifeTime: lifeTime,
repositoryType: xDataService.Constants.XRepositoryType.EF
);
...
}
//
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
//
// Using String Service ...
app.UseXStringService(
isDevelopmentEnvironment: isDevelopmentEnvironment
);
...
}
}
```
## Maintainer ## Maintainer
Hadi Khazaee asl Hadi Khazaee asl