89 lines
2.0 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|