using System.Collections.Generic; using System.Linq; using BeWo.Data.Access; using BeWo.Data.Entities; using BeWo.Service.ServiceImplementations; using BS.Shared; using BS.Shared.Core; using BS.Shared.DataContracts; using BS.Shared.DataContracts.Feature.AI; namespace BeWo.Service.DCEntityMapper { public class AiPromptroutineDC_AiPromptroutine : BeWoDataContract_BeWoEntityBase { public override AiPromptroutineDC MergeWithDC(AiPromptroutine pEntity, AiPromptroutineDC pDataContract) { base.MergeWithDC(pEntity, pDataContract); pDataContract.Title = pEntity.Title; pDataContract.Description = pEntity.Description; pDataContract.ParentFolderOid = pEntity.ParentFolderOid; pDataContract.IsPublic = pEntity.IsPublic; pDataContract.Position = pEntity.Position; pDataContract.IsFavorite = pEntity.IsFavorite; pDataContract.ActionType = pEntity.ActionType; pDataContract.CanEdit = pEntity.CanEdit; pDataContract.Steps = MapperFactory.AiPromptroutineStep.MapToNewDCs(pEntity.Steps); if (pEntity.CreatorOid is long oid) pDataContract.Creator = new EmployeeServiceImp().GetActiveCompactEmployeeWithOid(oid); return pDataContract; } public override AiPromptroutine MergeWithEntity(AiPromptroutineDC pDataContract, AiPromptroutine pEntity) { base.MergeWithEntity(pDataContract, pEntity); pEntity.Title = pDataContract.Title; pEntity.Description = pDataContract.Description; pEntity.ParentFolderOid = pDataContract.ParentFolderOid; pEntity.CreatorOid = pDataContract.Creator.EmployeeOid; pEntity.IsPublic = pDataContract.IsPublic; pEntity.Position = pDataContract.Position; pEntity.IsFavorite = pDataContract.IsFavorite; pEntity.ActionType = pDataContract.ActionType; pEntity.CanEdit = pDataContract.CanEdit; pEntity.Steps = DAOFactory.GenericDAO.LoadByIDs(pDataContract.Steps.Select(x => x.Oid.Value)); if (pDataContract.ParentFolderOid is long oid && oid >= 0) pEntity.ParentFolderOid = pDataContract.ParentFolderOid; return pEntity; } } }