using System; using BeWo.Validation; using BS.Shared.DataContracts; using BS.Shared.DataContracts.Compact; using BS.Shared.Extensions; namespace BeWo.ViewModel { public class OrganisationPersonRelationVM : AbstractDCMapperVM { public static string PropertyName_Organisation = "Organisation"; public static string PropertyName_OrganisationString = "OrganisationString"; public static string PropertyName_Person = "Person"; public static string PropertyName_PersonString = "PersonString"; public static string PropertyName_Notice = "Notice"; public static string PropertyName_RolleInOrganisation = "Rolle In Organisation"; private CompactOrganisationDC _Organisation; private CompactPersonDC _Person; private string _Notice; private ValueListEntryDC _RolleInOrganisation; public OrganisationPersonRelationVM(OrganisationPersonRelationDC pDC) : base(pDC, pDC.Organisation2PersonOid == null) { } [Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)] public CompactOrganisationDC Organisation { get { return _Organisation; } set { if(AreDifferent(_Organisation, value)) { _Organisation = value; StoreDirtyInformation(AreDifferent(DataContract.Organisation, value), PropertyName_Organisation); FirePropertyChanged(PropertyName_Organisation); FirePropertyChanged(PropertyName_OrganisationString); } } } [Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)] public string OrganisationString { get { return _Organisation.ToStringNullCheck(); } set { } } [Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)] public CompactPersonDC Person { get { return _Person; } set { if(AreDifferent(_Person, value)) { _Person = value; StoreDirtyInformation(AreDifferent(DataContract.Person, value), PropertyName_Person); FirePropertyChanged(PropertyName_Person); FirePropertyChanged(PropertyName_PersonString); } } } [Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)] public string PersonString { get { return _Person.ToStringNullCheck(); } set { } } public String Notice { get { return _Notice; } set { if (AreDifferent(_Notice, value)) { _Notice = value; StoreDirtyInformation(AreDifferent(DataContract.Notice, value), PropertyName_Notice); FirePropertyChanged(PropertyName_Notice); } } } public ValueListEntryDC RolleInOrganisation { get { return this._RolleInOrganisation; } } protected override void InitByDataContract(OrganisationPersonRelationDC pDataContract) { if(!IsNew) { _Person = pDataContract.Person; _Organisation = pDataContract.Organisation; _Notice = pDataContract.Notice; _RolleInOrganisation = pDataContract.RolleInOrganisation; } } protected override OrganisationPersonRelationDC MapToDataContract(OrganisationPersonRelationDC pDataContract, bool doCommit) { pDataContract.Person = _Person; pDataContract.Organisation = _Organisation; pDataContract.Notice = _Notice; return pDataContract; } } }