Files
BeWoPlaner/BeWo/ViewModel/CustomerTeamRelationVM.cs
2016-06-27 01:45:38 +02:00

123 lines
4.3 KiB
C#

using BeWo.Validation;
using BS.Shared.Extensions;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
namespace BeWo.ViewModel
{
public class CustomerTeamRelationVM : AbstractDCMapperVM<CustomerTeamRelationDC>
{
public static string PropertyName_Team = "Team";
public static string PropertyName_TeamString = "TeamString";
public static string PropertyName_Customer = "Customer";
public static string PropertyName_CustomerString = "CustomerString";
public static string PropertyName_Role = "Role";
public static string PropertyName_Notice = "Notice";
private CompactTeamDC _Team;
private CompactCustomerDC _Customer;
private ValueListEntryDC _Role;
private string _Notice;
public string Notice
{
get { return _Notice; }
set
{
if (base.AreDifferent(_Notice, value))
{
_Notice = value;
StoreDirtyInformation(AreDifferent(DataContract.Notice, value), PropertyName_Notice);
FirePropertyChanged(PropertyName_Notice);
}
}
}
[ValidationAttribute(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public ValueListEntryDC Role
{
get { return _Role; }
set
{
if (base.AreDifferent(_Role, value))
{
_Role = value;
StoreDirtyInformation(AreDifferent(DataContract.RelationRole, value), PropertyName_Role);
FirePropertyChanged(PropertyName_Role);
}
}
}
[ValidationAttribute(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public string TeamString
{
get { return _Team.ToStringNullCheck(); }
//Validation Workaround
set { }
}
[ValidationAttribute(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public CompactTeamDC Team
{
get { return _Team; }
set
{
if (base.AreDifferent(_Team, value))
{
_Team = value;
StoreDirtyInformation(AreDifferent(DataContract.Team, value), PropertyName_Team);
FirePropertyChanged(PropertyName_Team);
FirePropertyChanged(PropertyName_TeamString);
}
}
}
[ValidationAttribute(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public string CustomerString
{
get { return _Customer.ToStringNullCheck(); }
//Validation Workaround
set { }
}
[ValidationAttribute(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public CompactCustomerDC Customer
{
get { return _Customer; }
set
{
if (base.AreDifferent(_Customer, value))
{
_Customer = value;
StoreDirtyInformation(AreDifferent(DataContract.Customer, value), PropertyName_Customer);
FirePropertyChanged(PropertyName_Customer);
FirePropertyChanged(PropertyName_CustomerString);
}
}
}
public CustomerTeamRelationVM(CustomerTeamRelationDC pDC) : base(pDC, pDC.Team2CustomerOid == null) { }
protected override void InitByDataContract(CustomerTeamRelationDC pDataContract)
{
if (!IsNew)
{
_Team = pDataContract.Team;
_Customer = pDataContract.Customer;
_Role = pDataContract.RelationRole;
_Notice = pDataContract.Notice;
}
}
protected override CustomerTeamRelationDC MapToDataContract(CustomerTeamRelationDC pDataContract, bool doCommit)
{
pDataContract.Team = _Team;
pDataContract.Customer = _Customer;
pDataContract.RelationRole = _Role;
pDataContract.Notice = _Notice;
return DataContract;
}
}
}