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