Files
BeWoPlaner/BeWo/ViewModel/DienstInfoVM.cs

260 lines
8.0 KiB
C#

using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using BeWo.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
namespace BeWo.ViewModel
{
public class DienstInfoVM : AbstractDCMapperVM<DienstInfoDC>
{
private long? _DienstOid;
private string _DienstNotice;
private long? _DienstVersion;
private string _DienstName;
private string _Kurz;
private SolidColorBrush _Farbe;
private string _FarbeString;
private DateTime _StartDT;
private DateTime _EndeDT;
private double _Dauer;
private int _Pause;
private WohnheimDC _Wohnheim;
public DienstInfoVM(DienstInfoDC dienstDC) : base(dienstDC, dienstDC.Oid == null)
{
Dauer = dienstDC.Dauer;
}
public long? DienstOid
{
get { return _DienstOid; }
set
{
if (AreDifferent(_DienstOid, value))
{
_DienstOid = value;
StoreDirtyInformation(AreDifferent(DataContract.Oid, value), nameof(_DienstOid));
FirePropertyChanged(nameof(_DienstOid));
}
}
}
public string DienstNotice
{
get { return _DienstNotice; }
set
{
if (AreDifferent(_DienstNotice, value))
{
_DienstNotice = value;
StoreDirtyInformation(AreDifferent(DataContract.Notice, value), nameof(_DienstNotice));
FirePropertyChanged(nameof(_DienstNotice));
}
}
}
public long? DienstVersion
{
get { return _DienstVersion; }
set
{
if (AreDifferent(_DienstVersion, value))
{
_DienstVersion = value;
StoreDirtyInformation(AreDifferent(DataContract.Version, value), nameof(_DienstVersion));
FirePropertyChanged(nameof(_DienstVersion));
}
}
}
public string DienstName
{
get { return _DienstName; }
set
{
if (AreDifferent(_DienstName, value))
{
_DienstName = value;
StoreDirtyInformation(AreDifferent(DataContract.DienstName, value), nameof(_DienstName));
FirePropertyChanged(nameof(_DienstName));
}
}
}
public string Kurz
{
get { return _Kurz; }
set
{
if (AreDifferent(_Kurz, value))
{
_Kurz = value;
StoreDirtyInformation(AreDifferent(DataContract.Kurz, value), nameof(_Kurz));
FirePropertyChanged(nameof(_Kurz));
}
}
}
public SolidColorBrush Farbe
{
get { return _Farbe; }
set
{
if (AreDifferent(_Farbe, value))
{
_Farbe = value;
_FarbeString = value.ToStringNullCheck();
StoreDirtyInformation(AreDifferent(DataContract.Farbe, value), nameof(_Farbe));
FirePropertyChanged(nameof(_Farbe));
}
}
}
public string Start
{
get { return _StartDT.ToString("HH:mm"); }
set
{
if (AreDifferent(Start, value))
{
var s = value.Split(':');
var dt = new DateTime(2000, 1, 1).AddHours(int.Parse(s[0])).AddMinutes(int.Parse(s[1]));
_StartDT = dt;
StoreDirtyInformation(AreDifferent(DataContract.Start, dt), nameof(_StartDT));
FirePropertyChanged(nameof(_StartDT));
}
}
}
public DateTime StartDT
{
get { return _StartDT; }
set
{
if (AreDifferent(_StartDT, value))
{
_StartDT = value;
StoreDirtyInformation(AreDifferent(DataContract.Start, value), nameof(_StartDT));
FirePropertyChanged(nameof(_StartDT));
}
}
}
public string Ende
{
get { return _EndeDT.ToString("HH:mm"); }
set
{
if (AreDifferent(Start, value))
{
var s = value.Split(':');
var dt = new DateTime(2000, 1, 1).AddHours(int.Parse(s[0])).AddMinutes(int.Parse(s[1]));
_EndeDT = dt;
StoreDirtyInformation(AreDifferent(DataContract.Ende, dt), nameof(_EndeDT));
FirePropertyChanged(nameof(_EndeDT));
}
}
}
public DateTime EndeDT
{
get { return _EndeDT; }
set
{
if (AreDifferent(_EndeDT, value))
{
_EndeDT = value;
StoreDirtyInformation(AreDifferent(DataContract.Ende, value), nameof(_EndeDT));
FirePropertyChanged(nameof(_EndeDT));
}
}
}
public double Dauer
{
get { return _Dauer; }
set
{
if (AreDifferent(_Dauer, value))
{
_Dauer = value;
StoreDirtyInformation(AreDifferent(DataContract.Dauer, value), nameof(_Dauer));
FirePropertyChanged(nameof(_Dauer));
}
}
}
public int Pause
{
get { return _Pause; }
set
{
if (AreDifferent(_Pause, value))
{
_Pause = value;
StoreDirtyInformation(AreDifferent(DataContract.Pause, value), nameof(_Pause));
FirePropertyChanged(nameof(_Pause));
}
}
}
public WohnheimDC Wohnheim
{
get { return _Wohnheim; }
set
{
if (AreDifferent(_Wohnheim, value))
{
_Wohnheim = value;
StoreDirtyInformation(AreDifferent(DataContract.Wohnheim, value), nameof(_Wohnheim));
FirePropertyChanged(nameof(_Wohnheim));
}
}
}
protected override void InitByDataContract(DienstInfoDC bDataContract)
{
_DienstOid = bDataContract.Oid;
_DienstNotice = bDataContract.Notice;
_DienstVersion = bDataContract.Version;
_DienstName = bDataContract.DienstName;
_Kurz = bDataContract.Kurz;
_StartDT = bDataContract.Start;
_EndeDT = bDataContract.Ende;
_Pause = bDataContract.Pause;
_Wohnheim = bDataContract.Wohnheim;
_Dauer = bDataContract.Dauer;
if (!string.IsNullOrEmpty(bDataContract.Farbe))
{
_Farbe = new SolidColorBrush(ColorExtensions.FromHexStringDefault(bDataContract.Farbe, Colors.Transparent));
}
}
protected override DienstInfoDC MapToDataContract(DienstInfoDC bDataContract, bool doCommit)
{
bDataContract.Oid = _DienstOid;
bDataContract.Notice = _DienstNotice;
bDataContract.Version = _DienstVersion;
bDataContract.DienstName = _DienstName;
bDataContract.Kurz = _Kurz;
bDataContract.Farbe = _FarbeString;
bDataContract.Pause = _Pause;
bDataContract.Start = _StartDT;
bDataContract.Ende = _EndeDT;
bDataContract.Wohnheim = _Wohnheim;
bDataContract.Dauer = _Dauer;
return bDataContract;
}
}
}