66 lines
1.5 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|