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 { 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(_Original, value)) return; _Original = value; StoreDirtyInformation(AreDifferent(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; } } }