using System.Collections.Generic; using System.Linq; using BS.Shared.DataContracts; namespace BeWo.ViewModel { public class AssessmentSheetCategoryVM : AbstractDCMapperVM { public static string PropertyName_Description = "Description"; public static string PropertyName_Position = "Position"; public static string PropertyName_Values = "Values"; private string _Description; private int _Position; private List _Values; public AssessmentSheetCategoryVM(AssessmentSheetCategoryDC pDC) : base(pDC, pDC.AssessmentSheetCategoryOid == null) { } public string Description { get { return this._Description; } set { if (this.AreDifferent(this._Description, value)) { this._Description = value; this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Description, value), PropertyName_Description); this.FirePropertyChanged(PropertyName_Description); } } } public int Position { get { return this._Position; } set { if (this.AreDifferent(this._Position, value)) { this._Position = value; this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Position, value), PropertyName_Position); this.FirePropertyChanged(PropertyName_Position); } } } public List Values { get { return this._Values; } set { if (this.AreDifferent(this._Values, value)) { this._Values = value; this.StoreDirtyInformation(this.AreDifferent(this.DataContract.PossibleValues, value), PropertyName_Values); this.FirePropertyChanged(PropertyName_Values); } } } public string ValuesString { get { return this._Values != null ? string.Join(" | ", this.Values.Select(v => v.Description).ToArray()) : string.Empty; } } public static int Compare(AssessmentSheetCategoryVM x, AssessmentSheetCategoryVM y) { if (x.Position.Equals(y.Position)) { return Comparer.Default.Compare(x.Description, y.Description); } return x.Position.CompareTo(y.Position); } public static int Compare(AssessmentSheetCategoryDC x, AssessmentSheetCategoryDC y) { if (x.Position.Equals(y.Position)) { return Comparer.Default.Compare(x.Description, y.Description); } return x.Position.CompareTo(y.Position); } protected override void InitByDataContract(AssessmentSheetCategoryDC pDataContract) { this._Description = pDataContract.Description; this._Values = pDataContract.PossibleValues; this._Position = pDataContract.Position; } protected override AssessmentSheetCategoryDC MapToDataContract(AssessmentSheetCategoryDC pDataContract, bool doCommit) { pDataContract.Description = this._Description; pDataContract.PossibleValues = this._Values; pDataContract.Position = this._Position; return pDataContract; } } }