diff --git a/Configurations/Entities/XAiConversationMappingAction.cs b/Configurations/Entities/XAiConversationMappingAction.cs index 92f30a6..a59bf0b 100644 --- a/Configurations/Entities/XAiConversationMappingAction.cs +++ b/Configurations/Entities/XAiConversationMappingAction.cs @@ -5,17 +5,30 @@ using System.Threading.Tasks; using AutoMapper; using xAiModels.Models.Dtos; using xAiModels.Models.Entities; +using xIdentityService.Interfaces; namespace xAiModels.Configurations.Entities { public class XAiConversationMappingAction : IMappingAction { + private readonly IXIdentityProvider identityProvider; + + public XAiConversationMappingAction( + IXIdentityProvider identityProvider + ) + { + this.identityProvider = identityProvider; + } + public void Process( XAiConversation source, XAiConversationDto destination, ResolutionContext context ) { + // + // Retrieve Owner ... + // Retrieve Project Info ... throw new NotImplementedException(); } } diff --git a/Configurations/Entities/XAiMessageMappingAction.cs b/Configurations/Entities/XAiMessageMappingAction.cs index 33c5b3b..042aa01 100644 --- a/Configurations/Entities/XAiMessageMappingAction.cs +++ b/Configurations/Entities/XAiMessageMappingAction.cs @@ -5,11 +5,21 @@ using System.Threading.Tasks; using AutoMapper; using xAiModels.Models.Dtos; using xAiModels.Models.Entities; +using xIdentityService.Interfaces; namespace xAiModels.Configurations.Entities { public class XAiMessageMappingAction : IMappingAction { + private readonly IXIdentityProvider identityProvider; + + public XAiMessageMappingAction( + IXIdentityProvider identityProvider + ) + { + this.identityProvider = identityProvider; + } + public void Process( XAiMessage source, XAiMessageDto destination, diff --git a/Configurations/Entities/XAiProjectMappingAction.cs b/Configurations/Entities/XAiProjectMappingAction.cs index a4af258..5eca343 100644 --- a/Configurations/Entities/XAiProjectMappingAction.cs +++ b/Configurations/Entities/XAiProjectMappingAction.cs @@ -5,11 +5,21 @@ using System.Threading.Tasks; using AutoMapper; using xAiModels.Models.Dtos; using xAiModels.Models.Entities; +using xIdentityService.Interfaces; namespace xAiModels.Configurations.Entities { public class XAiProjectMappingAction : IMappingAction { + private readonly IXIdentityProvider identityProvider; + + public XAiProjectMappingAction( + IXIdentityProvider identityProvider + ) + { + this.identityProvider = identityProvider; + } + public void Process( XAiProject source, XAiProjectDto destination, diff --git a/Configurations/XAiApiConfiguration.cs b/Configurations/XAiApiConfiguration.cs index 3c9686e..c4abba3 100644 --- a/Configurations/XAiApiConfiguration.cs +++ b/Configurations/XAiApiConfiguration.cs @@ -1,3 +1,4 @@ +using xAiModels.Constants; using xAiModels.Models; namespace xAiModels.Configurations @@ -10,13 +11,18 @@ namespace xAiModels.Configurations public XAiModelDescriptor[] Models { get; set; } = []; /// - /// Each User must Has a Default Project ... + /// Each User must Has a Default Project, this is Title Resource Identifier ... /// - public string DefaultProjectResource { get; set; } + public string DefaultProjectTitleResource { get; set; } = XAiModelsConstants.DefaultXAiProjectTitleResourceID; /// - /// Each User must Has a Default Conversation ... + /// Each User must Has a Default Project, this is Description Resource Identifier ... /// - public string DefaultConversationResource { get; set; } + public string DefaultProjectDescriptionResource { get; set; } = XAiModelsConstants.DefaultXAiProjectDescriptionResourceID; + + /// + /// Each User must Has a Default Conversation, this is Title Resource Identifier ... ... + /// + public string DefaultConversationTitleResource { get; set; } = XAiModelsConstants.DefaultXAiConversationTitleResourceID; } } \ No newline at end of file diff --git a/Constants/XAiModelsConstants.cs b/Constants/XAiModelsConstants.cs index d5b880e..3ac296f 100644 --- a/Constants/XAiModelsConstants.cs +++ b/Constants/XAiModelsConstants.cs @@ -43,6 +43,11 @@ namespace xAiModels.Constants // EF Repositories Helper Extensions ... public const string GetXAiMessageEFRepositoryDescriptor = "GetXAiMessageEFRepositoryDescriptor"; public const string GetXAiProjectEFRepositoryDescriptor = "GetXAiProjectEFRepositoryDescriptor"; - public const string GetXAiConversationEFRepositoryDescriptor = "GetXAiConversationEFRepositoryDescriptor"; + public const string GetXAiConversationEFRepositoryDescriptor = "GetXAiConversationEFRepositoryDescriptor"; + + // + public const string DefaultXAiProjectTitleResourceID = "XAiPrjT"; + public const string DefaultXAiConversationTitleResourceID = "XAiCnvT"; + public const string DefaultXAiProjectDescriptionResourceID = "XAiPrjD"; } } \ No newline at end of file diff --git a/Providers/XAiConversationTitleResourceProvider.cs b/Providers/XAiConversationTitleResourceProvider.cs index 0a44ddf..2db9cbf 100644 --- a/Providers/XAiConversationTitleResourceProvider.cs +++ b/Providers/XAiConversationTitleResourceProvider.cs @@ -10,8 +10,8 @@ namespace xAiModels.Providers public XAiConversationTitleResourceProvider( IXStringServiceProvider stringProvider ) : base( - item: XAiModelsConstants.XAiConversationTitleIdentifier, - stringProvider + stringProvider: stringProvider, + item: XAiModelsConstants.XAiConversationTitleIdentifier ) { } } diff --git a/Providers/XAiDataProvider.cs b/Providers/XAiDataProvider.cs new file mode 100644 index 0000000..a169dbe --- /dev/null +++ b/Providers/XAiDataProvider.cs @@ -0,0 +1,58 @@ +using Microsoft.AspNetCore.SignalR; +using xAiModels.Interfaces; +using xAiModels.Interfaces.Entities; +using xAiModels.Providers.Dtos; +using xAiModels.Providers.Entities; + +namespace xAiModels.Providers +{ + /// + /// All Data Manipulation Requirements ... + /// + public class XAiDataProvider : IXAiDataProvider + { + private readonly IHubContext messageDtoHub; + private readonly IHubContext projectDtoHub; + private readonly IXAiMessageRepository messageRepositoryService; + private readonly IXAiProjectRepository projectRepositoryService; + private readonly IHubContext messageEntityHub; + private readonly IHubContext projectEntityHub; + private readonly IXAiConversationRepository conversationRepository; + private readonly IHubContext conversationDtoHub; + private readonly IHubContext conversationEntityHub; + private readonly IXAiProjectTitleResourceProvider projectTitleResourceProvider; + private readonly IXAiConversationTitleResourceProvider conversationTitleResourceProvider; + private readonly IXAiProjectDescriptionResourceProvider projectDescriptionResourceProvider; + + public XAiDataProvider( + IHubContext messageDtoHub, + IHubContext projectDtoHub, + IXAiMessageRepository messageRepositoryService, + IXAiProjectRepository projectRepositoryService, + IHubContext messageEntityHub, + IHubContext projectEntityHub, + IXAiConversationRepository conversationRepository, + IHubContext conversationDtoHub, + IHubContext conversationEntityHub, + IXAiProjectTitleResourceProvider projectTitleResourceProvider, + IXAiConversationTitleResourceProvider conversationTitleResourceProvider, + IXAiProjectDescriptionResourceProvider projectDescriptionResourceProvider + ) + { + this.messageDtoHub = messageDtoHub; + this.projectDtoHub = projectDtoHub; + this.projectEntityHub = projectEntityHub; + this.messageEntityHub = messageEntityHub; + this.conversationDtoHub = conversationDtoHub; + this.conversationEntityHub = conversationEntityHub; + this.conversationRepository = conversationRepository; + this.messageRepositoryService = messageRepositoryService; + this.projectRepositoryService = projectRepositoryService; + this.projectTitleResourceProvider = projectTitleResourceProvider; + this.conversationTitleResourceProvider = conversationTitleResourceProvider; + this.projectDescriptionResourceProvider = projectDescriptionResourceProvider; + } + + + } +} \ No newline at end of file diff --git a/Providers/XAiProjectDescriptionResourceProvider.cs b/Providers/XAiProjectDescriptionResourceProvider.cs index c884d60..58c2b05 100644 --- a/Providers/XAiProjectDescriptionResourceProvider.cs +++ b/Providers/XAiProjectDescriptionResourceProvider.cs @@ -10,8 +10,8 @@ namespace xAiModels.Providers public XAiProjectDescriptionResourceProvider( IXStringServiceProvider stringProvider ) : base( - item: XAiModelsConstants.XAiProjectDescriptionIdentifier, - stringProvider + stringProvider: stringProvider, + item: XAiModelsConstants.XAiProjectDescriptionIdentifier ) { } } diff --git a/Providers/XAiProjectTitleResourceProvider.cs b/Providers/XAiProjectTitleResourceProvider.cs index be2e4f7..3d04d1d 100644 --- a/Providers/XAiProjectTitleResourceProvider.cs +++ b/Providers/XAiProjectTitleResourceProvider.cs @@ -10,8 +10,8 @@ namespace xAiModels.Providers public XAiProjectTitleResourceProvider( IXStringServiceProvider stringProvider ) : base( - item: XAiModelsConstants.XAiProjectTitleIdentifier, - stringProvider + stringProvider: stringProvider, + item: XAiModelsConstants.XAiProjectTitleIdentifier ) { } }