From d4de9e52c47debb2e44844dc972bd5b912e882d6 Mon Sep 17 00:00:00 2001 From: Hadi Khazaee Asl Date: Tue, 28 Jul 2026 14:27:33 +0330 Subject: [PATCH] complete Data Service DI and Models and etc ... --- DI/XDIHelperExtension.cs | 388 ++++++++++-------- Interfaces/Dtos/IXAiConversationDtoHub.cs | 10 + .../Dtos/IXAiConversationRepositoryService.cs | 10 + .../Dtos/IXAiConversationServiceProvider.cs | 11 + Interfaces/Dtos/IXAiMessageDtoHub.cs | 10 + .../Dtos/IXAiMessageRepositoryService.cs | 10 + Interfaces/Dtos/IXAiMessageServiceProvider.cs | 11 + Interfaces/Dtos/IXAiProjectDtoHub.cs | 10 + .../Dtos/IXAiProjectRepositoryService.cs | 10 + Interfaces/Dtos/IXAiProjectServiceProvider.cs | 11 + Providers/Dtos/XAiConversationDtoHub.cs | 17 + .../Dtos/XAiConversationRepositoryService.cs | 23 ++ .../Dtos/XAiConversationServiceProvider.cs | 27 ++ Providers/Dtos/XAiMessageDtoHub.cs | 17 + Providers/Dtos/XAiMessageRepositoryService.cs | 23 ++ Providers/Dtos/XAiMessageServiceProvider.cs | 27 ++ Providers/Dtos/XAiProjectDtoHub.cs | 17 + Providers/Dtos/XAiProjectRepositoryService.cs | 23 ++ Providers/Dtos/XAiProjectServiceProvider.cs | 27 ++ 19 files changed, 515 insertions(+), 167 deletions(-) create mode 100644 Interfaces/Dtos/IXAiConversationDtoHub.cs create mode 100644 Interfaces/Dtos/IXAiConversationRepositoryService.cs create mode 100644 Interfaces/Dtos/IXAiConversationServiceProvider.cs create mode 100644 Interfaces/Dtos/IXAiMessageDtoHub.cs create mode 100644 Interfaces/Dtos/IXAiMessageRepositoryService.cs create mode 100644 Interfaces/Dtos/IXAiMessageServiceProvider.cs create mode 100644 Interfaces/Dtos/IXAiProjectDtoHub.cs create mode 100644 Interfaces/Dtos/IXAiProjectRepositoryService.cs create mode 100644 Interfaces/Dtos/IXAiProjectServiceProvider.cs create mode 100644 Providers/Dtos/XAiConversationDtoHub.cs create mode 100644 Providers/Dtos/XAiConversationRepositoryService.cs create mode 100644 Providers/Dtos/XAiConversationServiceProvider.cs create mode 100644 Providers/Dtos/XAiMessageDtoHub.cs create mode 100644 Providers/Dtos/XAiMessageRepositoryService.cs create mode 100644 Providers/Dtos/XAiMessageServiceProvider.cs create mode 100644 Providers/Dtos/XAiProjectDtoHub.cs create mode 100644 Providers/Dtos/XAiProjectRepositoryService.cs create mode 100644 Providers/Dtos/XAiProjectServiceProvider.cs diff --git a/DI/XDIHelperExtension.cs b/DI/XDIHelperExtension.cs index 1760e4a..8cccb43 100644 --- a/DI/XDIHelperExtension.cs +++ b/DI/XDIHelperExtension.cs @@ -1,13 +1,23 @@ using System; -using System.Collections.Generic; using System.Linq; -using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; +using xAiModels.Providers.Dtos; using xAiModels.Providers.Entities; +using xCommons.Extensions; using xDataService.Constants; using xDataService.Db; +using xDataService.Models; +using xExceptions.Constants; using xPushService.Helpers; +using xPushService.DI; +using xDataService.DI; +using xAiModels.Interfaces.Dtos; +using xAiModels.Helpers; +using xCommons.Helpers; +using xAiModels.Interfaces.Entities; +using xAiModels.Interfaces; +using xAiModels.Providers; namespace xAiModels.DI { @@ -19,13 +29,13 @@ namespace xAiModels.DI /// /// /// - public static void AddXAiDataServiceService( + public static void AddXAiDataService( this IServiceCollection services, XRepositoryType repositoryType, ServiceLifetime lifeTime = ServiceLifetime.Scoped ) { - AddAiDataServiceService( + AddAiDataService( contextType: null, services: services, lifeTime: lifeTime, @@ -40,14 +50,14 @@ namespace xAiModels.DI /// /// /// - public static void AddXAiDataServiceService( + public static void AddXAiDataService( this IServiceCollection services, XRepositoryType repositoryType, ServiceLifetime lifeTime = ServiceLifetime.Scoped ) where TContext : XDbContext { - AddAiDataServiceService( + AddAiDataService( services: services, lifeTime: lifeTime, contextType: typeof(TContext), @@ -60,7 +70,7 @@ namespace xAiModels.DI /// /// /// - public static void UseXAiDataServiceService( + public static void UseXAiDataService( this IApplicationBuilder app, bool isDevelopmentEnvironment = false ) @@ -72,36 +82,52 @@ namespace xAiModels.DI // // XAiConversation ... - pushHelper.AddHub("categoryDto"); - pushHelper.AddHub("categoryEntity"); + pushHelper.AddHub("aiConversationDto"); + pushHelper.AddHub("aiConversationEntity"); // - // SubCategory ... - pushHelper.AddHub("subCategoryDto"); - pushHelper.AddHub("subCategoryEntity"); + // XAiMessage ... + pushHelper.AddHub("aiMessageDto"); + pushHelper.AddHub("aiMessageEntity"); + + // + // XAiProject ... + pushHelper.AddHub("aiProjectDto"); + pushHelper.AddHub("aiProjectEntity"); // app.UseXPushService(pushHelper); #endregion // - // Using XAiDataService Repository Descriptor ... - if (!categoryDescriptor.IsNull()) + // Using XAiConversation Repository Descriptor ... + if (!aiConversationDescriptor.IsNull()) { // app.UseXRepository( - descriptor: categoryDescriptor, + descriptor: aiConversationDescriptor, isDevelopmentEnvironment: isDevelopmentEnvironment ); } // - // Using XSubCategory Repository Descriptor ... - if (!subCategoryDescriptor.IsNull()) + // Using XAiMessage Repository Descriptor ... + if (!aiMessageDescriptor.IsNull()) { // app.UseXRepository( - descriptor: subCategoryDescriptor, + descriptor: aiMessageDescriptor, + isDevelopmentEnvironment: isDevelopmentEnvironment + ); + } + + // + // Using XAiProject Repository Descriptor ... + if (!aiProjectDescriptor.IsNull()) + { + // + app.UseXRepository( + descriptor: aiProjectDescriptor, isDevelopmentEnvironment: isDevelopmentEnvironment ); } @@ -109,116 +135,119 @@ namespace xAiModels.DI // // Create an Scope for Services Acces ... // Handle Seeding Category/SubCategory Resources ... - using (var scope = app.ApplicationServices.CreateScope()) - { - // - // Retrieve Configuratuions ... - var categoryProvider = scope.ServiceProvider.GetService(); - var subCategoryProvider = scope.ServiceProvider.GetService(); - var configuration = scope.ServiceProvider.GetService(); - if (!configuration.IsNullOrDefault() && - !categoryProvider.IsNullOrDefault() && - !subCategoryDescriptor.IsNullOrDefault() - ) - { - // - // Logging ... - Log("Start Seeding ..."); + // TODO: Enable Seeding if Required ... + // using (var scope = app.ApplicationServices.CreateScope()) + // { + // // + // // Retrieve Configuratuions ... + // var aiMessageProvider = scope.ServiceProvider.GetService(); + // var aiProjectProvider = scope.ServiceProvider.GetService(); + // var aiConversationProvider = scope.ServiceProvider.GetService(); + // var configuration = scope.ServiceProvider.GetService(); + // if (!configuration.IsNullOrDefault() && + // !categoryProvider.IsNullOrDefault() && + // !subaiConversationDescriptor.IsNullOrDefault() + // ) + // { + // // + // // Logging ... + // Log("Start Seeding ..."); - // - // Count Data in Category ... - var hasCategory = (categoryProvider.Count().GetAwaiter().GetResult()) > 0; - var hasSubCategory = (subCategoryProvider.Count().GetAwaiter().GetResult()) > 0; + // // + // // Count Data in Category ... + // var hasCategory = (categoryProvider.Count().GetAwaiter().GetResult()) > 0; + // var hasSubCategory = (subCategoryProvider.Count().GetAwaiter().GetResult()) > 0; - // - // Seed Category Resources ... - var canSeed = - !hasCategory && - configuration.Categories.HasChild(); - if (canSeed) - { - // - // Loop through Provided items ... - foreach (var cat in configuration.Categories) - { - // - try - { - // - Log($"Start Seeding Category: {cat.Titles.Locales.ToArray()[0].Value} ..."); + // // + // // Seed Category Resources ... + // var canSeed = + // !hasCategory && + // configuration.Categories.HasChild(); + // if (canSeed) + // { + // // + // // Loop through Provided items ... + // foreach (var cat in configuration.Categories) + // { + // // + // try + // { + // // + // Log($"Start Seeding Category: {cat.Titles.Locales.ToArray()[0].Value} ..."); - // - categoryProvider.Refresh( - resource: cat, - userInfo: null, - connectionId: null, - cancellationToken: default - ) - .GetAwaiter() - .GetResult(); + // // + // categoryProvider.Refresh( + // resource: cat, + // userInfo: null, + // connectionId: null, + // cancellationToken: default + // ) + // .GetAwaiter() + // .GetResult(); - // - Log($"Seeding Category: {cat.Titles.Locales.ToArray()[0].Value} Finished Successfully ..."); - } - catch (Exception ex) - { - Log($"Seeding Category: {cat.Titles.Locales.ToArray()[0].Value} Failed due: {ex.Message} ..."); - } - } - } + // // + // Log($"Seeding Category: {cat.Titles.Locales.ToArray()[0].Value} Finished Successfully ..."); + // } + // catch (Exception ex) + // { + // Log($"Seeding Category: {cat.Titles.Locales.ToArray()[0].Value} Failed due: {ex.Message} ..."); + // } + // } + // } - // - // Seed SubCategory Resources ... - canSeed = - !hasSubCategory && - configuration.SubCategories.HasChild(); - if (canSeed) - { - // - // Loop through Provided items ... - foreach (var subcat in configuration.SubCategories) - { - // - try - { - // - Log($"Start Seeding SubCategory: {subcat.Titles.Locales.ToArray()[0].Value} ..."); + // // + // // Seed SubCategory Resources ... + // canSeed = + // !hasSubCategory && + // configuration.SubCategories.HasChild(); + // if (canSeed) + // { + // // + // // Loop through Provided items ... + // foreach (var subcat in configuration.SubCategories) + // { + // // + // try + // { + // // + // Log($"Start Seeding SubCategory: {subcat.Titles.Locales.ToArray()[0].Value} ..."); - // - subCategoryProvider.Refresh( - userInfo: null, - resource: subcat, - connectionId: null, - cancellationToken: default - ) - .GetAwaiter() - .GetResult(); + // // + // subCategoryProvider.Refresh( + // userInfo: null, + // resource: subcat, + // connectionId: null, + // cancellationToken: default + // ) + // .GetAwaiter() + // .GetResult(); - // - Log($"Seeding SubCategory: {subcat.Titles.Locales.ToArray()[0].Value} Finished Successfully ..."); - } - catch (Exception ex) - { - Log($"Seeding SubCategory: {subcat.Titles.Locales.ToArray()[0].Value} Failed due: {ex.Message} ..."); - } - } - } + // // + // Log($"Seeding SubCategory: {subcat.Titles.Locales.ToArray()[0].Value} Finished Successfully ..."); + // } + // catch (Exception ex) + // { + // Log($"Seeding SubCategory: {subcat.Titles.Locales.ToArray()[0].Value} Failed due: {ex.Message} ..."); + // } + // } + // } - // - Log("Finish Seeding ..."); - } - } + // // + // Log("Finish Seeding ..."); + // } + // } } // #region Private ... - private static XRepositoryDescriptor categoryDescriptor = null; - private static XRepositoryDescriptor subCategoryDescriptor = null; + private static XRepositoryDescriptor aiMessageDescriptor = null; + private static XRepositoryDescriptor aiProjectDescriptor = null; + private static XRepositoryDescriptor aiConversationDescriptor = null; /// /// a LogTag for Service ... /// - private static string XLogTag = "XAiDataServiceService"; + private static string XLogTag = "XAiModels"; /// /// print a log in Console ... @@ -236,7 +265,7 @@ namespace xAiModels.DI /// /// /// - private static void AddCategoryService( + private static void AddAiDataService( IServiceCollection services, XRepositoryType repositoryType, Type contextType = null, @@ -289,19 +318,28 @@ namespace xAiModels.DI // case XRepositoryType.EF: // - // Category ... - categoryDescriptor = typeof(XAiDataServiceServiceHelper) + // XAiMessage ... + aiMessageDescriptor = typeof(XAiModelsHelper) .InvokeGenericMethod( - methodName: "GetXAiDataServiceEFRepositoryDescriptor", + methodName: "GetXAiMessageEFRepositoryDescriptor", runtimeType: contextType, args: null ); // - // SubCategory ... - subCategoryDescriptor = typeof(XAiDataServiceServiceHelper) + // XAiProject ... + aiProjectDescriptor = typeof(XAiModelsHelper) .InvokeGenericMethod( - methodName: "GetXSubCategoryEFRepositoryDescriptor", + methodName: "GetXAiProjectEFRepositoryDescriptor", + runtimeType: contextType, + args: null + ); + + // + // XAiConversation ... + aiConversationDescriptor = typeof(XAiModelsHelper) + .InvokeGenericMethod( + methodName: "GetXAiConversationEFRepositoryDescriptor", runtimeType: contextType, args: null ); @@ -310,113 +348,129 @@ namespace xAiModels.DI // case XRepositoryType.Mongo: // - // Category ... - categoryDescriptor = XAiDataServiceServiceHelper.GetXAiDataServiceMongoRepositoryDescriptor(); + // XAiMessage ... + aiMessageDescriptor = XAiModelsHelper.GetXAiMessageMongoRepositoryDescriptor(); // - // SubCategory ... - subCategoryDescriptor = XAiDataServiceServiceHelper.GetXSubCategoryMongoRepositoryDescriptor(); + // XAiProject ... + aiProjectDescriptor = XAiModelsHelper.GetXAiProjectMongoRepositoryDescriptor(); + + // + // XAiConversation ... + aiConversationDescriptor = XAiModelsHelper.GetXAiConversationMongoRepositoryDescriptor(); break; // case XRepositoryType.InMemory: // - // Category ... - categoryDescriptor = XAiDataServiceServiceHelper.GetXAiDataServiceInMemoryRepositoryDescriptor(); + // XAiMessage ... + aiMessageDescriptor = XAiModelsHelper.GetXAiMessageInMemoryRepositoryDescriptor(); // - // SubCategory ... - subCategoryDescriptor = XAiDataServiceServiceHelper.GetXSubCategoryInMemoryRepositoryDescriptor(); + // XAiProject ... + aiProjectDescriptor = XAiModelsHelper.GetXAiProjectInMemoryRepositoryDescriptor(); + + // + // XAiConversation ... + aiConversationDescriptor = XAiModelsHelper.GetXAiConversationInMemoryRepositoryDescriptor(); break; } // - // Register Category Repository Descriptor ... - if (!categoryDescriptor.IsNull()) + #region Register Repository Descriptor ... + // + // XAiMessage ... + if (!aiMessageDescriptor.IsNull()) { // services.AddXRepository( lifeTime: lifeTime, - descriptor: categoryDescriptor + descriptor: aiMessageDescriptor ); } // - // Register SubCategory Repository Descriptor ... - if (!subCategoryDescriptor.IsNull()) + // XAiProject ... + if (!aiProjectDescriptor.IsNull()) { // services.AddXRepository( lifeTime: lifeTime, - descriptor: subCategoryDescriptor + descriptor: aiProjectDescriptor ); } // - #region Register Services ... + // XAiConversation ... + if (!aiConversationDescriptor.IsNull()) + { + // + services.AddXRepository( + lifeTime: lifeTime, + descriptor: aiConversationDescriptor + ); + } + #endregion + // - #region Category ... + #region Register Services ... + // + #region AiMessage ... // // Models ... services.Add( - new ServiceDescriptor(typeof(IXAiDataServiceServiceProvider), typeof(XAiDataServiceServiceProvider), lifeTime) + new ServiceDescriptor(typeof(IXAiMessageServiceProvider), typeof(XAiMessageServiceProvider), lifeTime) ); services.Add( - new ServiceDescriptor(typeof(IXAiDataServiceRepositoryService), typeof(XAiDataServiceRepositoryService), lifeTime) + new ServiceDescriptor(typeof(IXAiMessageRepositoryService), typeof(XAiMessageRepositoryService), lifeTime) ); services.Add( - new ServiceDescriptor(typeof(IXAiDataServiceRepositoryProvider), typeof(XAiDataServiceRepositoryProvider), lifeTime) - ); - - // - // Resource Providers ... - services.Add( - new ServiceDescriptor(typeof(IXAiDataServiceTitleResourceProvider), typeof(XAiDataServiceTitleResourceProvider), lifeTime) - ); - services.Add( - new ServiceDescriptor(typeof(IXAiDataServiceDescriptionResourceProvider), typeof(XAiDataServiceDescriptionResourceProvider), lifeTime) - ); - - // - // Reference Providers ... - services.Add( - new ServiceDescriptor(typeof(IXAiDataServiceSubCategoryReferenceProvider), typeof(XAiDataServiceSubCategoryReferenceProvider), lifeTime) - ); - - // - // Provider ... - services.Add( - new ServiceDescriptor(typeof(IXAiDataServiceProvider), typeof(XAiDataServiceProvider), lifeTime) + new ServiceDescriptor(typeof(IXAiMessageRepositoryProvider), typeof(XAiMessageRepositoryProvider), lifeTime) ); #endregion // - #region SubCategory ... + #region AiProject ... // // Models ... services.Add( - new ServiceDescriptor(typeof(IXSubCategoryServiceProvider), typeof(XSubCategoryServiceProvider), lifeTime) + new ServiceDescriptor(typeof(IXAiProjectServiceProvider), typeof(XAiProjectServiceProvider), lifeTime) ); services.Add( - new ServiceDescriptor(typeof(IXSubCategoryRepositoryService), typeof(XSubCategoryRepositoryService), lifeTime) + new ServiceDescriptor(typeof(IXAiProjectRepositoryService), typeof(XAiProjectRepositoryService), lifeTime) ); services.Add( - new ServiceDescriptor(typeof(IXSubCategoryRepositoryProvider), typeof(XSubCategoryRepositoryProvider), lifeTime) + new ServiceDescriptor(typeof(IXAiProjectRepositoryProvider), typeof(XAiProjectRepositoryProvider), lifeTime) ); // // Resource Providers ... services.Add( - new ServiceDescriptor(typeof(IXSubCategoryTitleResourceProvider), typeof(XSubCategoryTitleResourceProvider), lifeTime) + new ServiceDescriptor(typeof(IXAiProjectTitleResourceProvider), typeof(XAiProjectTitleResourceProvider), lifeTime) ); services.Add( - new ServiceDescriptor(typeof(IXSubCategoryDescriptionResourceProvider), typeof(XSubCategoryDescriptionResourceProvider), lifeTime) + new ServiceDescriptor(typeof(IXAiProjectDescriptionResourceProvider), typeof(XAiProjectDescriptionResourceProvider), lifeTime) + ); + #endregion + + // + #region AiConversation ... + // + // Models ... + services.Add( + new ServiceDescriptor(typeof(IXAiConversationServiceProvider), typeof(XAiConversationServiceProvider), lifeTime) + ); + services.Add( + new ServiceDescriptor(typeof(IXAiConversationRepositoryService), typeof(XAiConversationRepositoryService), lifeTime) + ); + services.Add( + new ServiceDescriptor(typeof(IXAiConversationRepositoryProvider), typeof(XAiConversationRepositoryProvider), lifeTime) ); // - // Provider ... + // Resource Providers ... services.Add( - new ServiceDescriptor(typeof(IXSubCategoryProvider), typeof(XSubCategoryProvider), lifeTime) + new ServiceDescriptor(typeof(IXAiConversationTitleResourceProvider), typeof(XAiConversationTitleResourceProvider), lifeTime) ); #endregion #endregion diff --git a/Interfaces/Dtos/IXAiConversationDtoHub.cs b/Interfaces/Dtos/IXAiConversationDtoHub.cs new file mode 100644 index 0000000..d5f5893 --- /dev/null +++ b/Interfaces/Dtos/IXAiConversationDtoHub.cs @@ -0,0 +1,10 @@ +using System; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xPushService.Interfaces; + +namespace xAiModels.Interfaces.Dtos +{ + public interface IXAiConversationDtoHub : IXBaseDtoHub + { } +} \ No newline at end of file diff --git a/Interfaces/Dtos/IXAiConversationRepositoryService.cs b/Interfaces/Dtos/IXAiConversationRepositoryService.cs new file mode 100644 index 0000000..737372b --- /dev/null +++ b/Interfaces/Dtos/IXAiConversationRepositoryService.cs @@ -0,0 +1,10 @@ +using System; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xDataService.Interfaces; + +namespace xAiModels.Interfaces.Dtos +{ + public interface IXAiConversationRepositoryService : IXBaseRepositoryService + { } +} \ No newline at end of file diff --git a/Interfaces/Dtos/IXAiConversationServiceProvider.cs b/Interfaces/Dtos/IXAiConversationServiceProvider.cs new file mode 100644 index 0000000..17f44e7 --- /dev/null +++ b/Interfaces/Dtos/IXAiConversationServiceProvider.cs @@ -0,0 +1,11 @@ +using System; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xAiModels.Providers.Dtos; +using xPushService.Interfaces; + +namespace xAiModels.Interfaces.Dtos +{ + public interface IXAiConversationServiceProvider : IXBaseDtoProvider + { } +} \ No newline at end of file diff --git a/Interfaces/Dtos/IXAiMessageDtoHub.cs b/Interfaces/Dtos/IXAiMessageDtoHub.cs new file mode 100644 index 0000000..3c4f6d1 --- /dev/null +++ b/Interfaces/Dtos/IXAiMessageDtoHub.cs @@ -0,0 +1,10 @@ +using System; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xPushService.Interfaces; + +namespace xAiModels.Interfaces.Dtos +{ + public interface IXAiMessageDtoHub : IXBaseDtoHub + { } +} \ No newline at end of file diff --git a/Interfaces/Dtos/IXAiMessageRepositoryService.cs b/Interfaces/Dtos/IXAiMessageRepositoryService.cs new file mode 100644 index 0000000..6337f3c --- /dev/null +++ b/Interfaces/Dtos/IXAiMessageRepositoryService.cs @@ -0,0 +1,10 @@ +using System; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xDataService.Interfaces; + +namespace xAiModels.Interfaces.Dtos +{ + public interface IXAiMessageRepositoryService : IXBaseRepositoryService + { } +} \ No newline at end of file diff --git a/Interfaces/Dtos/IXAiMessageServiceProvider.cs b/Interfaces/Dtos/IXAiMessageServiceProvider.cs new file mode 100644 index 0000000..bb47423 --- /dev/null +++ b/Interfaces/Dtos/IXAiMessageServiceProvider.cs @@ -0,0 +1,11 @@ +using System; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xAiModels.Providers.Dtos; +using xPushService.Interfaces; + +namespace xAiModels.Interfaces.Dtos +{ + public interface IXAiMessageServiceProvider : IXBaseDtoProvider + { } +} \ No newline at end of file diff --git a/Interfaces/Dtos/IXAiProjectDtoHub.cs b/Interfaces/Dtos/IXAiProjectDtoHub.cs new file mode 100644 index 0000000..fbcde72 --- /dev/null +++ b/Interfaces/Dtos/IXAiProjectDtoHub.cs @@ -0,0 +1,10 @@ +using System; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xPushService.Interfaces; + +namespace xAiModels.Interfaces.Dtos +{ + public interface IXAiProjectDtoHub : IXBaseDtoHub + { } +} \ No newline at end of file diff --git a/Interfaces/Dtos/IXAiProjectRepositoryService.cs b/Interfaces/Dtos/IXAiProjectRepositoryService.cs new file mode 100644 index 0000000..7699ce7 --- /dev/null +++ b/Interfaces/Dtos/IXAiProjectRepositoryService.cs @@ -0,0 +1,10 @@ +using System; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xDataService.Interfaces; + +namespace xAiModels.Interfaces.Dtos +{ + public interface IXAiProjectRepositoryService : IXBaseRepositoryService + { } +} \ No newline at end of file diff --git a/Interfaces/Dtos/IXAiProjectServiceProvider.cs b/Interfaces/Dtos/IXAiProjectServiceProvider.cs new file mode 100644 index 0000000..cd161f5 --- /dev/null +++ b/Interfaces/Dtos/IXAiProjectServiceProvider.cs @@ -0,0 +1,11 @@ +using System; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xAiModels.Providers.Dtos; +using xPushService.Interfaces; + +namespace xAiModels.Interfaces.Dtos +{ + public interface IXAiProjectServiceProvider : IXBaseDtoProvider + { } +} \ No newline at end of file diff --git a/Providers/Dtos/XAiConversationDtoHub.cs b/Providers/Dtos/XAiConversationDtoHub.cs new file mode 100644 index 0000000..acaa15a --- /dev/null +++ b/Providers/Dtos/XAiConversationDtoHub.cs @@ -0,0 +1,17 @@ +using System; +using Microsoft.Extensions.Logging; +using xAiModels.Interfaces.Dtos; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xPushService.Base; + +namespace xAiModels.Providers.Dtos +{ + public class XAiConversationDtoHub : XBaseDtoHub, IXAiConversationDtoHub + { + public XAiConversationDtoHub( + ILogger logger + ) : base(logger) + { } + } +} \ No newline at end of file diff --git a/Providers/Dtos/XAiConversationRepositoryService.cs b/Providers/Dtos/XAiConversationRepositoryService.cs new file mode 100644 index 0000000..6b9e78a --- /dev/null +++ b/Providers/Dtos/XAiConversationRepositoryService.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using AutoMapper; +using xAiModels.Interfaces.Dtos; +using xAiModels.Interfaces.Entities; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xDataService.Providers; + +namespace xAiModels.Providers.Dtos +{ + public class XAiConversationRepositoryService : XBaseRepositoryService, IXAiConversationRepositoryService + { + public XAiConversationRepositoryService( + IXAiConversationRepository repository, + IEnumerable mapperProfiles = null + ) : base( + repository, + mapperProfiles + ) + { } + } +} \ No newline at end of file diff --git a/Providers/Dtos/XAiConversationServiceProvider.cs b/Providers/Dtos/XAiConversationServiceProvider.cs new file mode 100644 index 0000000..40972e2 --- /dev/null +++ b/Providers/Dtos/XAiConversationServiceProvider.cs @@ -0,0 +1,27 @@ +using System; +using Microsoft.AspNetCore.SignalR; +using xAiModels.Interfaces.Dtos; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xDataService.Configuration; +using xIdentityService.Interfaces; +using xPushService.Base; + +namespace xAiModels.Providers.Dtos +{ + public class XAiConversationServiceProvider : XBaseDtoProvider, IXAiConversationServiceProvider + { + public XAiConversationServiceProvider( + IHubContext hub, + XDataServiceConfiguration dataConfiguration, + IXAiConversationRepositoryService service, + IXIdentityProvider identityProvider = null + ) : base( + hub, + dataConfiguration, + service, + identityProvider + ) + { } + } +} \ No newline at end of file diff --git a/Providers/Dtos/XAiMessageDtoHub.cs b/Providers/Dtos/XAiMessageDtoHub.cs new file mode 100644 index 0000000..2da5a4b --- /dev/null +++ b/Providers/Dtos/XAiMessageDtoHub.cs @@ -0,0 +1,17 @@ +using System; +using Microsoft.Extensions.Logging; +using xAiModels.Interfaces.Dtos; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xPushService.Base; + +namespace xAiModels.Providers.Dtos +{ + public class XAiMessageDtoHub : XBaseDtoHub, IXAiMessageDtoHub + { + public XAiMessageDtoHub( + ILogger logger + ) : base(logger) + { } + } +} \ No newline at end of file diff --git a/Providers/Dtos/XAiMessageRepositoryService.cs b/Providers/Dtos/XAiMessageRepositoryService.cs new file mode 100644 index 0000000..a006efe --- /dev/null +++ b/Providers/Dtos/XAiMessageRepositoryService.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using AutoMapper; +using xAiModels.Interfaces.Dtos; +using xAiModels.Interfaces.Entities; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xDataService.Providers; + +namespace xAiModels.Providers.Dtos +{ + public class XAiMessageRepositoryService : XBaseRepositoryService, IXAiMessageRepositoryService + { + public XAiMessageRepositoryService( + IXAiMessageRepository repository, + IEnumerable mapperProfiles = null + ) : base( + repository, + mapperProfiles + ) + { } + } +} \ No newline at end of file diff --git a/Providers/Dtos/XAiMessageServiceProvider.cs b/Providers/Dtos/XAiMessageServiceProvider.cs new file mode 100644 index 0000000..a6ac7b4 --- /dev/null +++ b/Providers/Dtos/XAiMessageServiceProvider.cs @@ -0,0 +1,27 @@ +using System; +using Microsoft.AspNetCore.SignalR; +using xAiModels.Interfaces.Dtos; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xDataService.Configuration; +using xIdentityService.Interfaces; +using xPushService.Base; + +namespace xAiModels.Providers.Dtos +{ + public class XAiMessageServiceProvider : XBaseDtoProvider, IXAiMessageServiceProvider + { + public XAiMessageServiceProvider( + IHubContext hub, + XDataServiceConfiguration dataConfiguration, + IXAiMessageRepositoryService service, + IXIdentityProvider identityProvider = null + ) : base( + hub, + dataConfiguration, + service, + identityProvider + ) + { } + } +} \ No newline at end of file diff --git a/Providers/Dtos/XAiProjectDtoHub.cs b/Providers/Dtos/XAiProjectDtoHub.cs new file mode 100644 index 0000000..65ff2ce --- /dev/null +++ b/Providers/Dtos/XAiProjectDtoHub.cs @@ -0,0 +1,17 @@ +using System; +using Microsoft.Extensions.Logging; +using xAiModels.Interfaces.Dtos; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xPushService.Base; + +namespace xAiModels.Providers.Dtos +{ + public class XAiProjectDtoHub : XBaseDtoHub, IXAiProjectDtoHub + { + public XAiProjectDtoHub( + ILogger logger + ) : base(logger) + { } + } +} \ No newline at end of file diff --git a/Providers/Dtos/XAiProjectRepositoryService.cs b/Providers/Dtos/XAiProjectRepositoryService.cs new file mode 100644 index 0000000..1b51a8b --- /dev/null +++ b/Providers/Dtos/XAiProjectRepositoryService.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using AutoMapper; +using xAiModels.Interfaces.Dtos; +using xAiModels.Interfaces.Entities; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xDataService.Providers; + +namespace xAiModels.Providers.Dtos +{ + public class XAiProjectRepositoryService : XBaseRepositoryService, IXAiProjectRepositoryService + { + public XAiProjectRepositoryService( + IXAiProjectRepository repository, + IEnumerable mapperProfiles = null + ) : base( + repository, + mapperProfiles + ) + { } + } +} \ No newline at end of file diff --git a/Providers/Dtos/XAiProjectServiceProvider.cs b/Providers/Dtos/XAiProjectServiceProvider.cs new file mode 100644 index 0000000..69ed219 --- /dev/null +++ b/Providers/Dtos/XAiProjectServiceProvider.cs @@ -0,0 +1,27 @@ +using System; +using Microsoft.AspNetCore.SignalR; +using xAiModels.Interfaces.Dtos; +using xAiModels.Models.Dtos; +using xAiModels.Models.Entities; +using xDataService.Configuration; +using xIdentityService.Interfaces; +using xPushService.Base; + +namespace xAiModels.Providers.Dtos +{ + public class XAiProjectServiceProvider : XBaseDtoProvider, IXAiProjectServiceProvider + { + public XAiProjectServiceProvider( + IHubContext hub, + XDataServiceConfiguration dataConfiguration, + IXAiProjectRepositoryService service, + IXIdentityProvider identityProvider = null + ) : base( + hub, + dataConfiguration, + service, + identityProvider + ) + { } + } +} \ No newline at end of file