131 lines
3.5 KiB
C#
131 lines
3.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 _Name;
|
|
private string _Prompt;
|
|
private CompactEmployeeDC _Creator;
|
|
private bool _IsPublic;
|
|
private bool _IsKategorie;
|
|
private bool _IsExpanded;
|
|
private ActivationTypeId _ActivationType;
|
|
private AiPromptbausteinTreeListVM _Children;
|
|
|
|
public AiPromptbausteinTreeVM(AiPromptbausteinTreeDC pDataContract) : base(pDataContract, pDataContract?.Oid == null) {}
|
|
|
|
public string Name
|
|
{
|
|
get => _Name;
|
|
set => SetProperty(ref _Name, value, nameof(Name), () => DataContract.Name);
|
|
}
|
|
|
|
public string Prompt
|
|
{
|
|
get => _Prompt;
|
|
set => SetProperty(ref _Prompt, value, nameof(Prompt), () => DataContract.Prompt);
|
|
}
|
|
|
|
public CompactEmployeeDC Creator
|
|
{
|
|
get => _Creator;
|
|
set => SetProperty(ref _Creator, value, nameof(Creator), () => DataContract.Creator);
|
|
}
|
|
|
|
public bool IsPublic
|
|
{
|
|
get => _IsPublic;
|
|
set => SetProperty(ref _IsPublic, value, nameof(IsPublic), () => DataContract.IsPublic);
|
|
}
|
|
|
|
public bool IsKategorie
|
|
{
|
|
get => _IsKategorie;
|
|
set => SetProperty(ref _IsKategorie, value, nameof(IsKategorie), () => DataContract.IsKategorie);
|
|
}
|
|
|
|
public bool IsExpanded
|
|
{
|
|
get => _IsExpanded;
|
|
set => SetProperty(ref _IsExpanded, value, nameof(IsExpanded), () => DataContract.IsExpanded);
|
|
}
|
|
|
|
public ActivationTypeId ActivationType
|
|
{
|
|
get => _ActivationType;
|
|
set => SetProperty(ref _ActivationType, value, nameof(ActivationType), () => DataContract.ActivationType);
|
|
}
|
|
|
|
public AiPromptbausteinTreeListVM Children
|
|
{
|
|
get => _Children;
|
|
private set => SetProperty(ref _Children, value, nameof(Children));
|
|
}
|
|
|
|
public FontWeight FontWeight => IsKategorie ? FontWeights.Bold : FontWeights.Regular;
|
|
|
|
public AiPromptbausteinTreeVM Parent { get; set; }
|
|
|
|
protected override void InitByDataContract(AiPromptbausteinTreeDC pDataContract)
|
|
{
|
|
if (pDataContract is null)
|
|
return;
|
|
|
|
_Name = pDataContract.Name;
|
|
_Prompt = pDataContract.Prompt;
|
|
_Creator = pDataContract.Creator;
|
|
_IsPublic = pDataContract.IsPublic;
|
|
_IsKategorie = pDataContract.IsKategorie;
|
|
_IsExpanded = pDataContract.IsExpanded;
|
|
_ActivationType = pDataContract.ActivationType;
|
|
_Children = new AiPromptbausteinTreeListVM(pDataContract.Children, this);
|
|
}
|
|
|
|
protected override AiPromptbausteinTreeDC MapToDataContract(AiPromptbausteinTreeDC pDataContract, bool doCommit)
|
|
{
|
|
pDataContract.Name = _Name;
|
|
pDataContract.Prompt = _Prompt;
|
|
pDataContract.Creator = _Creator;
|
|
pDataContract.IsPublic = _IsPublic;
|
|
pDataContract.IsKategorie = _IsKategorie;
|
|
pDataContract.IsExpanded = _IsExpanded;
|
|
pDataContract.ActivationType = _ActivationType;
|
|
|
|
if (_Children != null)
|
|
{
|
|
pDataContract.Children = Children.CopyToDCList(doCommit);
|
|
}
|
|
|
|
return pDataContract;
|
|
}
|
|
|
|
public AiPromptbausteinTreeVM CopyToNewViewModel()
|
|
{
|
|
var rtn = new AiPromptbausteinTreeVM(new AiPromptbausteinTreeDC());
|
|
|
|
rtn.Name = _Name;
|
|
rtn.Prompt = _Prompt;
|
|
rtn.Creator = _Creator;
|
|
rtn.IsPublic = _IsPublic;
|
|
rtn.IsKategorie = _IsKategorie;
|
|
rtn.IsExpanded = _IsExpanded;
|
|
rtn.ActivationType = _ActivationType;
|
|
|
|
return rtn;
|
|
}
|
|
}
|
|
}
|