Files
BeWoPlaner/BeWo/ViewModel/AiPromptbausteinTreeVM.cs
2025-12-08 15:39:16 +01:00

185 lines
5.5 KiB
C#

using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Windows;
using BeWo.ServiceProxy;
using BeWo.Validation;
using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.DataContracts.Feature.AI;
using BS.Shared.Extensions;
namespace BeWo.ViewModel
{
public class AiPromptbausteinTreeVM : AbstractDCMapperVM<AiPromptbausteinTreeDC>
{
private string _Displayname;
private string _Content;
private ActivationTypeId _ActivationType;
private AiPromptbausteinType _PromptbausteinType;
private string _Metadata;
private AiActionType _AiActionType;
private CompactEmployeeDC _Creator;
private bool _IsOnlyForCreator;
private bool _ShowUserPrompt;
private bool _ShowUserPromptByTenant;
private int _Position;
private bool _IsExpanded;
private AiPromptbausteinTreeListVM _Children;
public AiPromptbausteinTreeVM(AiPromptbausteinTreeDC dc) : base(dc, dc.Oid)
{
}
public string Displayname
{
get => _Displayname;
set => SetProperty(ref _Displayname, value, nameof(Displayname), () => DataContract.Displayname);
}
public string Content
{
get => _Content;
set => SetProperty(ref _Content, value, nameof(Content), () => DataContract.Content);
}
public ActivationTypeId ActivationType
{
get => _ActivationType;
set => SetProperty(ref _ActivationType, value, nameof(ActivationType), () => DataContract.ActivationType);
}
public AiPromptbausteinType PromptbausteinType
{
get => _PromptbausteinType;
set => SetProperty(ref _PromptbausteinType, value, nameof(PromptbausteinType), () => DataContract.PromptbausteinType);
}
public string Metadata
{
get => _Metadata;
set => SetProperty(ref _Metadata, value, nameof(Metadata), () => DataContract.Metadata);
}
public AiActionType AiActionType
{
get => _AiActionType;
set => SetProperty(ref _AiActionType, value, nameof(AiActionType), () => DataContract.AiActionType);
}
public CompactEmployeeDC Creator
{
get => _Creator;
set => SetProperty(ref _Creator, value, nameof(Creator), () => DataContract.Creator);
}
public bool IsOnlyForCreator
{
get => _IsOnlyForCreator;
set => SetProperty(ref _IsOnlyForCreator, value, nameof(IsOnlyForCreator), () => DataContract.IsOnlyForCreator);
}
public bool ShowUserPrompt
{
get => _ShowUserPrompt;
set => SetProperty(ref _ShowUserPrompt, value, nameof(ShowUserPrompt), () => DataContract.ShowUserPrompt);
}
public bool ShowUserPromptByTenant
{
get => _ShowUserPromptByTenant;
set => SetProperty(ref _ShowUserPromptByTenant, value, nameof(ShowUserPromptByTenant), () => DataContract.ShowUserPromptByTenant);
}
public int Position
{
get => _Position;
set => SetProperty(ref _Position, value, nameof(Position), () => DataContract.Position);
}
public bool IsExpanded
{
get => _IsExpanded;
set => SetProperty(ref _IsExpanded, value, nameof(IsExpanded), () => DataContract.IsExpanded);
}
public AiPromptbausteinTreeListVM Children
{
get => _Children;
set => SetProperty(ref _Children, value, nameof(Children));
}
public FontWeight FontWeight => PromptbausteinType != AiPromptbausteinType.Prompt ? FontWeights.Bold : FontWeights.Regular;
public AiPromptbausteinTreeVM Parent { get; set; }
protected override void InitByDataContract(AiPromptbausteinTreeDC pDataContract)
{
if (pDataContract is null)
return;
_Displayname = pDataContract.Displayname;
_Content = pDataContract.Content;
_ActivationType = pDataContract.ActivationType;
_PromptbausteinType = pDataContract.PromptbausteinType;
_Metadata = pDataContract.Metadata;
_AiActionType = pDataContract.AiActionType;
_Creator = pDataContract.Creator;
_IsOnlyForCreator = pDataContract.IsOnlyForCreator;
_ShowUserPrompt = pDataContract.ShowUserPrompt;
_ShowUserPromptByTenant = pDataContract.ShowUserPromptByTenant;
_Position = pDataContract.Position;
_IsExpanded = pDataContract.IsExpanded;
_Children = new AiPromptbausteinTreeListVM(pDataContract.Children, this);
}
protected override AiPromptbausteinTreeDC MapToDataContract(AiPromptbausteinTreeDC pDataContract, bool doCommit)
{
pDataContract.Displayname = _Displayname;
pDataContract.Content = _Content;
pDataContract.ActivationType = _ActivationType;
pDataContract.PromptbausteinType = _PromptbausteinType;
pDataContract.Metadata = _Metadata;
pDataContract.AiActionType = _AiActionType;
pDataContract.Creator = _Creator;
pDataContract.IsOnlyForCreator = _IsOnlyForCreator;
pDataContract.ShowUserPrompt = _ShowUserPrompt;
pDataContract.ShowUserPromptByTenant = _ShowUserPromptByTenant;
pDataContract.Position = _Position;
pDataContract.IsExpanded = _IsExpanded;
if (_Children != null)
{
pDataContract.Children = Children.CopyToDCList(doCommit);
}
return pDataContract;
}
public AiPromptbausteinTreeVM CopyToNewViewModel()
{
var rtn = new AiPromptbausteinTreeVM(new AiPromptbausteinTreeDC());
rtn.Displayname = _Displayname;
rtn.Content = _Content;
rtn.ActivationType = _ActivationType;
rtn.PromptbausteinType = _PromptbausteinType;
rtn.Metadata = _Metadata;
rtn.AiActionType = _AiActionType;
rtn.Creator = _Creator;
rtn.IsOnlyForCreator = _IsOnlyForCreator;
rtn.ShowUserPrompt = _ShowUserPrompt;
rtn.ShowUserPromptByTenant = _ShowUserPromptByTenant;
rtn.Position = _Position;
rtn.IsExpanded = _IsExpanded;
return rtn;
}
}
}