Files
xAiModels/Configurations/Entities/XAiConversationMappingAction.cs
2026-08-03 09:44:56 +03:30

56 lines
2.1 KiB
C#

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<XAiConversation, XAiConversationDto>
{
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();
}
}
}