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 { 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; } } }