Files
BeWoPlaner/BeWo/ViewModel/AiConversationMessageVM.cs

74 lines
1.6 KiB
C#
Raw Permalink Normal View History

2025-03-19 16:30:27 +01:00
using System;
using BS.Shared;
using BS.Shared.DataContracts.Feature.AI;
2025-03-28 10:05:29 +01:00
using Newtonsoft.Json;
2025-03-19 16:30:27 +01:00
namespace BeWo.ViewModel
{
public class AiConversationMessageVM : AbstractDCMapperVM<AiConversationMessageDC>
{
2025-04-22 14:05:51 +02:00
private bool _IsChecked;
private string _Message;
2025-03-19 16:30:27 +01:00
public AiConversationMessageVM(AiConversationMessageDC dc) : base(dc, dc.Oid is null)
{
}
2025-07-09 15:30:54 +02:00
public event EventHandler IsCheckedChanged;
2025-04-22 14:05:51 +02:00
public bool IsChecked
{
get { return _IsChecked; }
set
{
if (!AreDifferent(IsChecked, value))
return;
_IsChecked = value;
FirePropertyChanged(nameof(IsChecked));
2025-07-09 15:30:54 +02:00
IsCheckedChanged?.Invoke(this, EventArgs.Empty);
2025-04-22 14:05:51 +02:00
}
}
public string Message
2025-03-19 16:30:27 +01:00
{
get { return _Message; }
2025-03-19 16:30:27 +01:00
set
{
if (!AreDifferent(Message, value))
2025-03-19 16:30:27 +01:00
return;
_Message = value;
StoreDirtyInformation(AreDifferent(DataContract.Message, value), nameof(Message));
FirePropertyChanged(nameof(Message));
2025-03-19 16:30:27 +01:00
}
}
2025-04-08 10:22:22 +02:00
public AiConversationMessageRole Role => DataContract.Role;
public string ModelName => DataContract.ModelName;
public int Duration => DataContract.Duration ?? 0;
public string DurationSec => ((double)Duration / 1000).ToString("0.#");
public DateTime Created => DataContract.Created;
2025-04-08 10:22:22 +02:00
2025-03-19 16:30:27 +01:00
protected override void InitByDataContract(AiConversationMessageDC pDataContract)
{
_Message = pDataContract.Message;
2025-03-19 16:30:27 +01:00
}
protected override AiConversationMessageDC MapToDataContract(AiConversationMessageDC pDataContract, bool doCommit)
{
pDataContract.Message = _Message;
2025-03-19 16:30:27 +01:00
return pDataContract;
}
2025-07-09 15:30:54 +02:00
public void SetIsChecked(bool value)
{
_IsChecked = value;
FirePropertyChanged(nameof(IsChecked));
}
2025-03-19 16:30:27 +01:00
}
}