diff --git a/BeWo/View/Detail/AI/AiPromptbausteinPromptView.xaml b/BeWo/View/Detail/AI/AiPromptbausteinPromptView.xaml
index 1536a8086..022daee22 100644
--- a/BeWo/View/Detail/AI/AiPromptbausteinPromptView.xaml
+++ b/BeWo/View/Detail/AI/AiPromptbausteinPromptView.xaml
@@ -38,6 +38,7 @@
+
@@ -93,8 +94,17 @@
IsChecked="{Binding ViewModel.IsPublic}"
IsEnabled="{Binding IsEditingMode, UpdateSourceTrigger=PropertyChanged}" />
- Favorite
+
+
+
+ _OwnsoftRefLink;
set => SetProperty(ref _OwnsoftRefLink, value, nameof(OwnsoftRefLink), () => DataContract.OwnsoftRefLink);
}
+
+ public bool IsFavorite
+ {
+ get => _IsFavorite;
+ set => SetProperty(ref _IsFavorite, value, nameof(IsFavorite), () => DataContract.IsFavorite);
+ }
public bool CanEdit
{
@@ -122,6 +129,7 @@ namespace BeWo.ViewModel
_ShowPromptByTenant = pDataContract.ShowPromptByTenant;
_IsOwnsoftPrompt = pDataContract.IsOwnsoftPrompt;
_OwnsoftRefLink = pDataContract.OwnsoftRefLink;
+ _IsFavorite = pDataContract.IsFavorite;
}
protected override AiPromptbausteinPromptDC MapToDataContract(AiPromptbausteinPromptDC pDataContract, bool doCommit)
@@ -137,6 +145,7 @@ namespace BeWo.ViewModel
pDataContract.ShowPromptByTenant = _ShowPromptByTenant;
pDataContract.IsOwnsoftPrompt = _IsOwnsoftPrompt;
pDataContract.OwnsoftRefLink = _OwnsoftRefLink;
+ pDataContract.IsFavorite = _IsFavorite;
return pDataContract;
}
@@ -154,6 +163,7 @@ namespace BeWo.ViewModel
ShowPromptByTenant = pDataContract.ShowPromptByTenant;
IsOwnsoftPrompt = pDataContract.IsOwnsoftPrompt;
OwnsoftRefLink = pDataContract.OwnsoftRefLink;
+ IsFavorite = pDataContract.IsFavorite;
}
}
}
diff --git a/BeWo/ViewModel/View/Administration/AiPromptbausteinComplexTreeViewModel.cs b/BeWo/ViewModel/View/Administration/AiPromptbausteinComplexTreeViewModel.cs
index 56f1b52bc..c7193a2ec 100644
--- a/BeWo/ViewModel/View/Administration/AiPromptbausteinComplexTreeViewModel.cs
+++ b/BeWo/ViewModel/View/Administration/AiPromptbausteinComplexTreeViewModel.cs
@@ -254,7 +254,7 @@ namespace BeWo.ViewModel.View.Administration
void OpenEditFolderDialog()
{
var sel_folder = SelectedFolder;
- var sel_dc = sel_folder.CommitToDataContract();
+ var sel_dc = sel_folder.CopyToEmptyDataContract();
var edit_vm = new AiPromptbausteinFolderVM(sel_dc);
var vm = new AiPromptbausteinFolderViewModel(edit_vm, false);
@@ -336,7 +336,7 @@ namespace BeWo.ViewModel.View.Administration
void OpenEditPromptDialog()
{
var sel_prompt = SelectedPrompt;
- var sel_dc = sel_prompt.CommitToDataContract();
+ var sel_dc = sel_prompt.CopyToEmptyDataContract();
var edit_vm = new AiPromptbausteinPromptVM(sel_dc);
var vm = new AiPromptbausteinPromptViewModel(edit_vm, false);
diff --git a/Data/Entities/AiPromptbausteinFolder.cs b/Data/Entities/AiPromptbausteinFolder.cs
index 865cd693b..aba17b7bf 100644
--- a/Data/Entities/AiPromptbausteinFolder.cs
+++ b/Data/Entities/AiPromptbausteinFolder.cs
@@ -25,10 +25,10 @@ namespace BeWo.Data.Entities
public virtual int Position { get; set; }
- public virtual bool IsExpanded { get; set; }
-
public virtual AiActionType ActionType { get; set; }
+ public virtual bool IsFavorite { get; set; }
+
public virtual IList SubFolders { get; set; } = new List();
public virtual IList SubPrompts { get; set; } = new List();
diff --git a/Data/Entities/AiPromptbausteinPrompt.cs b/Data/Entities/AiPromptbausteinPrompt.cs
index f9821dfb4..5c2169dc0 100644
--- a/Data/Entities/AiPromptbausteinPrompt.cs
+++ b/Data/Entities/AiPromptbausteinPrompt.cs
@@ -35,5 +35,7 @@ namespace BeWo.Data.Entities
public virtual bool IsOwnsoftPrompt { get; set; }
public virtual string OwnsoftRefLink { get; set; }
+
+ public virtual IList UserFavorites { get; set;} = new List();
}
}
diff --git a/Data/Mappings/AiPromptbausteinPrompt.hbm.xml b/Data/Mappings/AiPromptbausteinPrompt.hbm.xml
index 8684c1562..130812ff8 100644
--- a/Data/Mappings/AiPromptbausteinPrompt.hbm.xml
+++ b/Data/Mappings/AiPromptbausteinPrompt.hbm.xml
@@ -24,5 +24,10 @@
+
+
+
+
+
diff --git a/Service/DCEntityMapper/AiPromptbausteinFolderDC_AiPromptbausteinFolder.cs b/Service/DCEntityMapper/AiPromptbausteinFolderDC_AiPromptbausteinFolder.cs
index f34008740..171a8e641 100644
--- a/Service/DCEntityMapper/AiPromptbausteinFolderDC_AiPromptbausteinFolder.cs
+++ b/Service/DCEntityMapper/AiPromptbausteinFolderDC_AiPromptbausteinFolder.cs
@@ -22,7 +22,6 @@ namespace BeWo.Service.DCEntityMapper
pDataContract.ParentFolderOid = pEntity.ParentFolderOid;
pDataContract.IsPublic = pEntity.IsPublic;
pDataContract.Position = pEntity.Position;
- pDataContract.IsExpanded = pEntity.IsExpanded;
pDataContract.ActionType = pEntity.ActionType;
pDataContract.SubFolders = MapperFactory.AiPromptbausteinFolder.MapToNewDCs(pEntity.SubFolders);
pDataContract.SubPrompts = MapperFactory.AiPromptbausteinPrompt.MapToNewDCs(pEntity.SubPrompts);
diff --git a/Service/DCEntityMapper/AiPromptbausteinPromptDC_AiPromptbausteinPrompt.cs b/Service/DCEntityMapper/AiPromptbausteinPromptDC_AiPromptbausteinPrompt.cs
index e989fb94b..e91284730 100644
--- a/Service/DCEntityMapper/AiPromptbausteinPromptDC_AiPromptbausteinPrompt.cs
+++ b/Service/DCEntityMapper/AiPromptbausteinPromptDC_AiPromptbausteinPrompt.cs
@@ -3,6 +3,7 @@ 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;
@@ -12,6 +13,8 @@ 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);
@@ -27,6 +30,7 @@ namespace BeWo.Service.DCEntityMapper
pDataContract.ShowPromptByTenant = pEntity.ShowPromptByTenant;
pDataContract.IsOwnsoftPrompt = pEntity.IsOwnsoftPrompt;
pDataContract.OwnsoftRefLink = pEntity.OwnsoftRefLink;
+ pDataContract.IsFavorite = pEntity.UserFavorites.Contains(CurrentApplicationUser);
return pDataContract;
}
@@ -47,6 +51,16 @@ namespace BeWo.Service.DCEntityMapper
//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;
}
}
diff --git a/Shared/DataContracts/AiPromptbausteinPromptDC.cs b/Shared/DataContracts/AiPromptbausteinPromptDC.cs
index e95c534c4..5d2d4eb4e 100644
--- a/Shared/DataContracts/AiPromptbausteinPromptDC.cs
+++ b/Shared/DataContracts/AiPromptbausteinPromptDC.cs
@@ -19,6 +19,7 @@ namespace BS.Shared.DataContracts
[DataMember] public bool ShowPromptByTenant { get; set; }
[DataMember] public bool IsOwnsoftPrompt { get; set; }
[DataMember] public string OwnsoftRefLink { get; set; }
+ [DataMember] public bool IsFavorite { get; set; }
[DataMember] public bool CanEdit { get; set; }
}