This commit is contained in:
2026-05-15 03:21:07 +03:30
parent 3d7f5b58a8
commit 95f5adfc4e
13 changed files with 232 additions and 22 deletions
-12
View File
@@ -1,12 +0,0 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using xServices.Models.Entities;
namespace xServices.Configurations
{
public class XTestConfiguration : IEntityTypeConfiguration<XTest>
{
public void Configure(EntityTypeBuilder<XTest> builder)
{ }
}
}
+13
View File
@@ -0,0 +1,13 @@
using System;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using xDataService.Providers;
using xServices.Models.Entities;
namespace xServices.Configurations
{
public class XTestTypeConfiguration : XBaseEntityTypeConfiguration<XTest, Guid>
{
public override void Configure(EntityTypeBuilder<XTest> builder)
{ }
}
}
+71 -5
View File
@@ -1,10 +1,16 @@
using System.Collections.Generic;
using System.Linq;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using xCommons.Extensions;
using xDataService.DI;
using xDataService.Models;
using xMessageService.DI;
using xServices.Configurations;
using xServices.Constants;
using xServices.Interfaces;
using xServices.Providers;
using xStorageService.DI;
namespace xServices.DI
@@ -48,7 +54,7 @@ namespace xServices.DI
}
//
services.AddSingleton<XServicesConfiguration>(config);
services.AddSingleton(config);
}
/// <summary>
@@ -68,18 +74,21 @@ namespace xServices.DI
}
//
services.AddSingleton<XServicesConfiguration>(configuration);
services.AddSingleton(configuration);
}
/// <summary>
/// Register Services ...
/// </summary>
/// <param name="services"></param>
/// <param name="configuration"></param>
/// <param name="databases"></param>
/// <param name="lifeTime"></param>
public static void AddXServices(
this IServiceCollection services,
IConfiguration configuration,
ServiceLifetime lifeTime = ServiceLifetime.Transient
IEnumerable<XDatabaseDescriptor> databases = null,
ServiceLifetime lifeTime = ServiceLifetime.Scoped
)
{
//
@@ -90,6 +99,7 @@ namespace xServices.DI
config: config,
services: services,
lifeTime: lifeTime,
databases: databases,
configuration: configuration
);
}
@@ -99,12 +109,15 @@ namespace xServices.DI
/// </summary>
/// <param name="services"></param>
/// <param name="configuration"></param>
/// <param name="config"></param>
/// <param name="databases"></param>
/// <param name="lifeTime"></param>
public static void AddXServices(
this IServiceCollection services,
IConfiguration configuration,
XServicesConfiguration config,
ServiceLifetime lifeTime = ServiceLifetime.Transient
IEnumerable<XDatabaseDescriptor> databases = null,
ServiceLifetime lifeTime = ServiceLifetime.Scoped
)
{
//
@@ -112,6 +125,7 @@ namespace xServices.DI
config: config,
services: services,
lifeTime: lifeTime,
databases: databases,
configuration: configuration
);
}
@@ -120,11 +134,35 @@ namespace xServices.DI
/// Use All Required Middlewares ...
/// </summary>
/// <param name="app"></param>
public static void UseXServices(this IApplicationBuilder app)
/// <param name="databases"></param>
/// <param name="isDevelopmentEnvironment"></param>
public static void UseXServices(
this IApplicationBuilder app,
IEnumerable<XDatabaseDescriptor> databases = null,
bool isDevelopmentEnvironment = false
)
{
//
// Use Storage Service ...
app.UseXStorageService();
//
#region Use Data Data Service ...
if (databases.HasChild())
{
//
databases
.ToList()
.ForEach(database =>
{
//
app.UseXDatabase(
descriptor: database,
isDevelopmentEnvironment: isDevelopmentEnvironment
);
});
}
#endregion
}
//
@@ -134,11 +172,14 @@ namespace xServices.DI
/// </summary>
/// <param name="services"></param>
/// <param name="config"></param>
/// <param name="configuration"></param>
/// <param name="databases"></param>
/// <param name="lifeTime"></param>
private static void AddServices(
this IServiceCollection services,
IConfiguration configuration,
XServicesConfiguration config = null,
IEnumerable<XDatabaseDescriptor> databases = null,
ServiceLifetime lifeTime = ServiceLifetime.Transient
)
{
@@ -156,6 +197,31 @@ namespace xServices.DI
//
// Message Service ...
services.AddXMessageService(config: configuration);
//
#region Register Data Service ...
//
if (databases.HasChild())
{
//
databases
.ToList()
.ForEach(database =>
{
//
// Register DataBase ...
services.AddXDatabase(
lifetime: lifeTime,
descriptor: database,
configuration: configuration
);
});
}
//
// Register Repository Services ...
services.AddScoped<IXTestRepositoryService, XTestRepositoryService>();
#endregion
}
#endregion
}
+10
View File
@@ -0,0 +1,10 @@
using System;
using xDataService.Interfaces;
using xServices.Models.Dtos;
using xServices.Models.Entities;
namespace xServices.Interfaces
{
public interface IXTestRepositoryService : IXBaseRepositoryService<XTest, XTestDto, Guid>
{ }
}
+2 -2
View File
@@ -3,9 +3,9 @@ using xModels.Base;
namespace xServices.Models.Dtos
{
public class XTestDto :XBaseEntityDto<Guid>
public class XTestDto : XBaseEntityDto<Guid>
{
public string Firstname { get; set; }
public string Lastname { get; set; }
public string Lastname { get; set; }
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
using System;
using xDataService.Configuration;
using xDataService.EFRepositories;
using xDataService.Providers;
using xDataService.Interfaces;
using xServices.Databases;
using xServices.Interfaces;
-1
View File
@@ -8,7 +8,6 @@ namespace xServices.Providers
{
public class XTestGraphQLTypeHelper : XBaseGraphQLTypeHelper<XTest, Guid>, IXTestGraphQLTypeHelper
{
public XTestGraphQLTypeHelper(
XDataServiceConfiguration configuration
) : base(configuration)
+22
View File
@@ -0,0 +1,22 @@
using System;
using xDataService.Configuration;
using xDataService.Providers;
using xServices.Interfaces;
using xServices.Models.Entities;
namespace xServices.Providers
{
public class XTestInMemoryRepository : XBaseInMemoryRepository<XTest, Guid>
{
public XTestInMemoryRepository(
XDataServiceConfiguration configuration,
IXTestKeyGenerator keyGenerator = null,
IXTestRepositoryEvents baseRepositoryEvents = null
) : base(
configuration,
keyGenerator,
baseRepositoryEvents
)
{ }
}
}
+26
View File
@@ -0,0 +1,26 @@
using System;
using xDataService.Configuration;
using xDataService.Providers;
using xServices.Interfaces;
using xServices.Models.Entities;
namespace xServices.Providers
{
public class XTestMongoRepository : XBaseMongoRepository<XTest, Guid>
{
public XTestMongoRepository(
XDataBaseConfiguration dbConfiguration,
XDataServiceConfiguration configuration,
string collectionName = null,
IXTestKeyGenerator keyGenerator = null,
IXTestRepositoryEvents baseRepositoryEvents = null
) : base(
dbConfiguration,
configuration,
collectionName,
keyGenerator,
baseRepositoryEvents
)
{ }
}
}
+33
View File
@@ -0,0 +1,33 @@
using System;
using System.Linq;
using Microsoft.EntityFrameworkCore.Query;
using Microsoft.Extensions.Logging;
using xCommons.Configurations;
using xCommons.Providers;
using xDataService.Controllers;
using xDataService.Interfaces;
using xServices.Interfaces;
using xServices.Models.Entities;
namespace xServices.Providers
{
public partial class XTestRepositoryController : XBaseRepositoryController<XTest, Guid>, IXBaseRepositoryController<XTest, Guid>
{
public XTestRepositoryController(
ILogger<XTestRepositoryController> logger,
XAppConfiguration appConfiguration,
XValidationProvider validationProvider,
IXTestRepository repository,
Func<IQueryable<XTest>, IOrderedQueryable<XTest>> defaultOrderBuilder = null,
Func<IQueryable<XTest>, IIncludableQueryable<XTest, object>> defaultIncludeBuilder = null
) : base(
logger,
appConfiguration,
validationProvider,
repository,
defaultOrderBuilder,
defaultIncludeBuilder
)
{ }
}
}
+1 -1
View File
@@ -1,4 +1,4 @@
using xDataService.Events;
using xDataService.Providers;
using xServices.Interfaces;
using xServices.Models.Entities;
+19
View File
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using AutoMapper;
using xDataService.Providers;
using xServices.Interfaces;
using xServices.Models.Dtos;
using xServices.Models.Entities;
namespace xServices.Providers
{
public class XTestRepositoryService : XBaseRepositoryService<XTest, XTestDto, Guid>, IXTestRepositoryService
{
public XTestRepositoryService(
IXTestRepository repository,
IEnumerable<Profile> mapperProfiles = null
) : base(repository, mapperProfiles)
{ }
}
}
+34
View File
@@ -0,0 +1,34 @@
using System;
using System.Linq;
using Microsoft.EntityFrameworkCore.Query;
using Microsoft.Extensions.Logging;
using xCommons.Configurations;
using xCommons.Providers;
using xDataService.Controllers;
using xDataService.Interfaces;
using xServices.Interfaces;
using xServices.Models.Dtos;
using xServices.Models.Entities;
namespace xServices.Providers
{
public class XTestServiceController : XBaseServiceController<XTest, XTestDto, Guid>, IXBaseServiceController<XTest, XTestDto, Guid>
{
public XTestServiceController(
ILogger<XTestServiceController> logger,
XAppConfiguration appConfiguration,
XValidationProvider validationProvider,
IXTestRepositoryService repositoryService,
Func<IQueryable<XTest>, IOrderedQueryable<XTest>> defaultOrderBuilder = null,
Func<IQueryable<XTest>, IIncludableQueryable<XTest, object>> defaultIncludeBuilder = null
) : base(
logger,
appConfiguration,
validationProvider,
repositoryService,
defaultOrderBuilder,
defaultIncludeBuilder
)
{ }
}
}