using System; using AutoMapper; using xAiModels.Interfaces; using xAiModels.Models.Dtos; using xAiModels.Models.Entities; using xIdentityService.Extensions; using xIdentityService.Interfaces; namespace xAiModels.Configurations.Entities { public class XAiConversationMappingAction : IMappingAction { private readonly IXIdentityProvider identityProvider; private readonly IXAiProjectTitleResourceProvider projectTitleResourceProvider; private readonly IXAiConversationTitleResourceProvider conversationTitleResourceProvider; private readonly IXAiProjectDescriptionResourceProvider projectDescriptionResourceProvider; public XAiConversationMappingAction( IXIdentityProvider identityProvider, IXAiProjectTitleResourceProvider projectTitleResourceProvider, IXAiConversationTitleResourceProvider conversationTitleResourceProvider, IXAiProjectDescriptionResourceProvider projectDescriptionResourceProvider ) { this.identityProvider = identityProvider; this.projectTitleResourceProvider = projectTitleResourceProvider; this.conversationTitleResourceProvider = conversationTitleResourceProvider; this.projectDescriptionResourceProvider = projectDescriptionResourceProvider; } public void Process( XAiConversation source, XAiConversationDto destination, ResolutionContext context ) { // // Retrieve Owner ... var device = identityProvider.GetDevice(); var ownerUserInfo = identityProvider.GetUserInfo( device: device, userSelectByParam: source.OwnerId ) .GetAwaiter() .GetResult(); var owner = ownerUserInfo.ToXPersonDto(); // // Setting Owner ... destination.Owner = owner; // Retrieve Project Info ... throw new NotImplementedException(); } } }