Files
BeWoPlaner/BeWo/ViewModel/ImageVM.cs
2024-12-03 14:43:26 +01:00

89 lines
2.0 KiB
C#

using System;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
namespace BeWo.ViewModel
{
public class ImageVM : AbstractDCMapperVM<ImageDC>
{
private string _Filename;
private string _Fullname;
private byte[] _Original;
private byte[] _MediumThumbnail;
private byte[] _SmallThumbnail;
public ImageVM() : this(new ImageDC())
{
}
public ImageVM(ImageDC dc) : base(dc, dc.Oid == null)
{
}
public string Filename
{
get { return _Filename; }
set
{
if (!AreDifferent(_Filename, value))
return;
_Filename = value;
StoreDirtyInformation(AreDifferent(DataContract.Filename, value), nameof(Filename));
FirePropertyChanged(nameof(Filename));
}
}
public string Fullname
{
get { return _Fullname; }
set
{
if (!AreDifferent(_Fullname, value))
return;
_Fullname = value;
StoreDirtyInformation(AreDifferent(DataContract.Fullname, value), nameof(Fullname));
FirePropertyChanged(nameof(Fullname));
}
}
public byte[] Original
{
get { return _Original; }
set
{
if (!AreDifferent<byte>(_Original, value))
return;
_Original = value;
StoreDirtyInformation(AreDifferent<byte>(DataContract.Original, value), nameof(Original));
FirePropertyChanged(nameof(Original));
FirePropertyChanged(nameof(BitmapImage));
}
}
public BitmapImage BitmapImage => Utils.CreateBitmapImageFromByteArray(Original);
protected override void InitByDataContract(ImageDC pDataContract)
{
_Filename = pDataContract.Filename;
_Fullname = pDataContract.Fullname;
_Original = pDataContract.Original;
_MediumThumbnail = pDataContract.MediumThumbnail;
_SmallThumbnail = pDataContract.SmallThumbnail;
}
protected override ImageDC MapToDataContract(ImageDC pDataContract, bool doCommit)
{
pDataContract.Filename = _Filename;
pDataContract.Fullname = _Fullname;
pDataContract.Original = _Original;
return pDataContract;
}
}
}