using System; using BeWo.Validation; using BS.Shared.DataContracts; using BS.Shared.DataContracts.Compact; using DevExpress.Xpf.Core; namespace BeWo.ViewModel { public class NewsItemVM : AbstractDCMapperVM { public static string PropertyName_PublishDate = "PublishDate"; public static string PropertyName_Text = "Text"; public static string PropertyName_Title = "Title"; public static string PropertyName_Team = "Team"; private DateTime? _PublishDate; private string _Text; private string _Title; private CompactTeamDC _Team; public NewsItemVM(NewsItemDC pDC) : base(pDC, !pDC.NewsItemOid.HasValue) { } [Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)] public DateTime? PublishDate { get { return this._PublishDate; } set { if (this.AreDifferent(this._PublishDate, value)) { this._PublishDate = value; this.StoreDirtyInformation(this.AreDifferent(this.DataContract.PublishDate, value), PropertyName_PublishDate); this.FirePropertyChanged(PropertyName_PublishDate); } } } [ValidationAttribute(ValidationRule = ValidationRules.NotNullOrStringEmpty)] public string Text { get { return this._Text; } set { if (this.AreDifferent(this._Text, value)) { this._Text = value; this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Text, value), PropertyName_Text); this.FirePropertyChanged(PropertyName_Text); } } } [ValidationAttribute(ValidationRule = ValidationRules.NotNullOrStringEmpty)] public string Title { get { return this._Title; } set { if (this.AreDifferent(this._Title, value)) { this._Title = value; this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Title, value), PropertyName_Title); this.FirePropertyChanged(PropertyName_Title); } } } public CompactTeamDC Team { get { return this._Team; } set { if (this.AreDifferent(this._Team, value)) { this._Team = value; this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Team, value), PropertyName_Team); this.FirePropertyChanged(PropertyName_Team); } } } protected override void InitByDataContract(NewsItemDC pDataContract) { this._PublishDate = pDataContract.PublishDate; this._Text = pDataContract.Text; this._Title = pDataContract.Title; this._Team = pDataContract.Team; } protected override NewsItemDC MapToDataContract(NewsItemDC pDataContract, bool doCommit) { pDataContract.PublishDate = this._PublishDate; pDataContract.Text = this._Text; pDataContract.Title = this._Title; pDataContract.Team = _Team; return pDataContract; } } }