Files
BeWoPlaner/Service/DCEntityMapper/AiPromptbausteinPromptDC_AiPromptbausteinPrompt.cs
2026-01-23 16:28:47 +01:00

68 lines
2.5 KiB
C#

using System.Collections.Generic;
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Data.Security;
using BeWo.Service.ServiceImplementations;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts.Feature.AI;
namespace BeWo.Service.DCEntityMapper
{
public class AiPromptbausteinPromptDC_AiPromptbausteinPrompt : BeWoDataContract_BeWoEntityBase<AiPromptbausteinPrompt, AiPromptbausteinPromptDC>
{
public ApplicationUser CurrentApplicationUser => UserRightHelper.GetLoggedInUserWithOid();
public override AiPromptbausteinPromptDC MergeWithDC(AiPromptbausteinPrompt pEntity, AiPromptbausteinPromptDC pDataContract)
{
base.MergeWithDC(pEntity, pDataContract);
pDataContract.Title = pEntity.Title;
pDataContract.Description = pEntity.Description;
pDataContract.ParentFolderOid = pEntity.ParentFolderOid;
pDataContract.Creator = new EmployeeServiceImp().GetActiveCompactEmployeeWithOid(pEntity.CreatorOid);
pDataContract.IsPublic = pEntity.IsPublic;
pDataContract.Position = pEntity.Position;
pDataContract.Prompt = pEntity.Prompt;
pDataContract.ShowPrompt = pEntity.ShowPrompt;
pDataContract.ShowPromptByTenant = pEntity.ShowPromptByTenant;
pDataContract.IsOwnsoftPrompt = pEntity.IsOwnsoftPrompt;
pDataContract.OwnsoftRefLink = pEntity.OwnsoftRefLink;
pDataContract.IsFavorite = pEntity.UserFavorites.Contains(CurrentApplicationUser);
return pDataContract;
}
public override AiPromptbausteinPrompt MergeWithEntity(AiPromptbausteinPromptDC pDataContract, AiPromptbausteinPrompt pEntity)
{
base.MergeWithDC(pEntity, pDataContract);
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.Prompt = pDataContract.Prompt;
pEntity.ShowPrompt = pDataContract.ShowPrompt;
pEntity.ShowPromptByTenant = pDataContract.ShowPromptByTenant;
//pEntity.IsOwnsoftPrompt = pDataContract.IsOwnsoftPrompt;
//pEntity.OwnsoftRefLink = pDataContract.OwnsoftRefLink;
var user = CurrentApplicationUser;
if (pDataContract.IsFavorite && !pEntity.UserFavorites.Contains(user))
{
pEntity.UserFavorites.Add(user);
}
else if(!pDataContract.IsFavorite && pEntity.UserFavorites.Contains(user))
{
pEntity.UserFavorites.Remove(user);
}
return pEntity;
}
}
}