Favoriten

This commit is contained in:
2026-01-23 15:32:06 +01:00
parent 238c8778f3
commit da88bfa953
9 changed files with 47 additions and 6 deletions

View File

@@ -38,6 +38,7 @@
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0">Name</Label>
@@ -93,8 +94,17 @@
IsChecked="{Binding ViewModel.IsPublic}"
IsEnabled="{Binding IsEditingMode, UpdateSourceTrigger=PropertyChanged}" />
<StackPanel
<Label Grid.Row="5" Grid.Column="0">Favorite</Label>
<dxe:CheckEdit
Grid.Row="5"
Grid.Column="2"
Margin="3"
IsChecked="{Binding ViewModel.IsFavorite}"
IsEnabled="{Binding IsEditingMode, UpdateSourceTrigger=PropertyChanged}" />
<StackPanel
Grid.Row="6"
Grid.ColumnSpan="3"
Margin="0,19,0,0"
HorizontalAlignment="Right"

View File

@@ -20,6 +20,7 @@ namespace BeWo.ViewModel
private bool _IsOwnsoftPrompt;
private string _OwnsoftRefLink;
private bool _IsSelected;
private bool _IsFavorite;
public AiPromptbausteinPromptVM(AiPromptbausteinPromptDC dc) : base(dc, dc.Oid)
{
@@ -91,6 +92,12 @@ namespace BeWo.ViewModel
get => _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;
}
}
}

View File

@@ -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);

View File

@@ -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<AiPromptbausteinFolder> SubFolders { get; set; } = new List<AiPromptbausteinFolder>();
public virtual IList<AiPromptbausteinPrompt> SubPrompts { get; set; } = new List<AiPromptbausteinPrompt>();

View File

@@ -35,5 +35,7 @@ namespace BeWo.Data.Entities
public virtual bool IsOwnsoftPrompt { get; set; }
public virtual string OwnsoftRefLink { get; set; }
public virtual IList<ApplicationUser> UserFavorites { get; set;} = new List<ApplicationUser>();
}
}

View File

@@ -24,5 +24,10 @@
<property name="ShowPromptByTenant"/>
<property name="IsOwnsoftPrompt"/>
<property name="OwnsoftRefLink"/>
<bag name="UserFavorites" table="aipromptbausteinprompt2userfavorite" generic="true" cascade="none" batch-size="250">
<key column="AiPromptbausteinPromptOid" />
<many-to-many column="ApplicationUserOid" class="BeWo.Data.Entities.ApplicationUser, BeWo.Data" />
</bag>
</class>
</hibernate-mapping>

View File

@@ -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);

View File

@@ -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<AiPromptbausteinPrompt, AiPromptbausteinPromptDC>
{
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;
}
}

View File

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