66 lines
2.3 KiB
C#
66 lines
2.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
using BeWo.Data.Access;
|
|
using BeWo.Data.Entities;
|
|
|
|
using BS.Shared;
|
|
using BS.Shared.Core;
|
|
using BS.Shared.DataContracts;
|
|
using BS.Shared.DataContracts.Feature.AI;
|
|
|
|
namespace BeWo.Service.DCEntityMapper
|
|
{
|
|
public class AiConversationDC_AiConversation : AbstractIDCEntityMapper<AiConversation, AiConversationDC>
|
|
{
|
|
public override AiConversationDC MergeWithDC(AiConversation pEntity, AiConversationDC pDataContract)
|
|
{
|
|
pDataContract.Oid = pEntity.Oid;
|
|
pDataContract.Version = pEntity.Version;
|
|
pDataContract.Notice = pEntity.Notice;
|
|
pDataContract.Displayname = pEntity.Displayname;
|
|
pDataContract.Created = pEntity.Created;
|
|
pDataContract.Updated = pEntity.Updated;
|
|
pDataContract.Context = pEntity.Context;
|
|
pDataContract.ContextBeWoObjects = pEntity.ContextBeWoObjects?.Select(x => new Tuple<long, long>(x.Oid, x.Tid)).ToList();
|
|
pDataContract.UIContext = pEntity.UIContext;
|
|
|
|
if (pEntity.Messages is IList<AiConversationMessage> list && list.Any())
|
|
pDataContract.Messages = MapperFactory.AiConversationMessage.MapToNewDCs(list);
|
|
|
|
if (pEntity.Modell is AiModel model)
|
|
pDataContract.Modell = MapperFactory.AiModel.MapToNewDC(model);
|
|
|
|
return pDataContract;
|
|
}
|
|
|
|
public override AiConversation MergeWithEntity(AiConversationDC pDataContract, AiConversation pEntity)
|
|
{
|
|
ConcurrencyCheck(pDataContract.Version, pEntity);
|
|
|
|
//pEntity.Oid = pDataContract.Oid;
|
|
//pEntity.Version = pDataContract.Version;
|
|
pEntity.Notice = pDataContract.Notice;
|
|
pEntity.Displayname = pDataContract.Displayname;
|
|
pEntity.Created = pDataContract.Created;
|
|
pEntity.Updated = pDataContract.Updated;
|
|
pEntity.Context = pDataContract.Context;
|
|
pEntity.ContextBeWoObjects = pDataContract.ContextBeWoObjects?.Select(x => new BeWoEntityReference() { Oid = x.Item1, Tid = x.Item2}).ToList();
|
|
pEntity.UIContext = pDataContract.UIContext;
|
|
|
|
MapperFactory.AiConversationMessage.MergeWithEntitys(pDataContract.Messages, pEntity.Messages);
|
|
|
|
if (pDataContract.Modell?.Oid is long oid)
|
|
pEntity.Modell = DAOFactory.GenericDAO.LoadByID<AiModel>(oid);
|
|
|
|
return pEntity;
|
|
}
|
|
|
|
protected override bool AreDCAndEntityEqual(AiConversationDC pDC, AiConversation pEntity)
|
|
{
|
|
throw new System.NotImplementedException();
|
|
}
|
|
}
|
|
}
|