260 lines
8.0 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|