68 lines
2.5 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|