Files
BeWoPlaner/Service/DCEntityMapper/AiConversationDC_AiConversation.cs

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();
}
}
}