180 lines
5.3 KiB
C#
180 lines
5.3 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;
|
|
using BS.Shared.Interface;
|
|
|
|
namespace BeWo.ViewModel
|
|
{
|
|
public class AiPromptbausteinTreeVM : AbstractDCMapperVM<AiPromptbausteinTreeDC>, IAiPromptbaustein
|
|
{
|
|
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 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));
|
|
}
|
|
|
|
public AiPromptbausteinTreeListVM Children
|
|
{
|
|
get => _Children;
|
|
set => SetProperty(ref _Children, value, nameof(Children));
|
|
}
|
|
|
|
public AiPromptbausteinTreeVM Parent { get; set; }
|
|
|
|
public bool HasChildren => Children is object && Children.Count > 0;
|
|
public FontWeight FontWeight => PromptbausteinType != AiPromptbausteinType.Prompt ? FontWeights.Bold : FontWeights.Regular;
|
|
public long? Oid => DataContract.Oid;
|
|
|
|
protected override void InitByDataContract(AiPromptbausteinTreeDC pDataContract)
|
|
{
|
|
if (pDataContract is null)
|
|
return;
|
|
|
|
_Displayname = pDataContract.Displayname;
|
|
_Content = pDataContract.Content;
|
|
_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.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;
|
|
pDataContract.ParentOid = Parent?.DataContract.Oid;
|
|
|
|
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.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;
|
|
}
|
|
}
|
|
}
|