Files
BeWoPlaner/BeWo/ViewModel/AiConversationMessageVM.cs

66 lines
1.5 KiB
C#

using System;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Feature.AI;
using Newtonsoft.Json;
namespace BeWo.ViewModel
{
public class AiConversationMessageVM : AbstractDCMapperVM<AiConversationMessageDC>
{
private bool _IsChecked;
private string _Message;
public AiConversationMessageVM(AiConversationMessageDC dc) : base(dc, dc.Oid is null)
{
}
public bool IsChecked
{
get { return _IsChecked; }
set
{
if (!AreDifferent(IsChecked, value))
return;
_IsChecked = value;
FirePropertyChanged(nameof(IsChecked));
}
}
public string Message
{
get { return _Message; }
set
{
if (!AreDifferent(Message, value))
return;
_Message = value;
StoreDirtyInformation(AreDifferent(DataContract.Message, value), nameof(Message));
FirePropertyChanged(nameof(Message));
}
}
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;
protected override void InitByDataContract(AiConversationMessageDC pDataContract)
{
_Message = pDataContract.Message;
}
protected override AiConversationMessageDC MapToDataContract(AiConversationMessageDC pDataContract, bool doCommit)
{
pDataContract.Message = _Message;
return pDataContract;
}
}
}