Files
BeWoPlaner/Service/DCEntityMapper/FollowUpDC_FollowUp.cs
2016-06-27 01:45:38 +02:00

72 lines
2.7 KiB
C#

using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared.DataContracts;
namespace BeWo.Service.DCEntityMapper
{
public class FollowUpDC_FollowUp : AbstractIDCEntityMapper<FollowUp, FollowUpDC>
{
public override FollowUpDC MergeWithDC(FollowUp pEntity, FollowUpDC pDataContract)
{
pDataContract.FollowUpOid = pEntity.Oid;
pDataContract.FollowUpVersion = pEntity.Version;
pDataContract.InsertedBy = pEntity.InsUser;
pDataContract.InsertedOn = pEntity.InsTs;
pDataContract.Description = pEntity.Notice;
pDataContract.ExpirationDate = pEntity.ExpirationDate;
pDataContract.IsHandled = pEntity.IsHandled;
if (pEntity.Employee != null)
{
pDataContract.Employee = MapperFactory.EmployeeDC_Employee.MapToNewDC(pEntity.Employee);
}
if (pEntity.Responsible != null)
{
pDataContract.Responsible = MapperFactory.EmployeeDC_Employee.MapToNewDC(pEntity.Responsible);
}
return pDataContract;
}
public override FollowUp MergeWithEntity(FollowUpDC pDataContract, FollowUp pEntity)
{
this.ConcurrencyCheck(pDataContract.FollowUpVersion, pEntity);
pEntity.Oid = pDataContract.FollowUpOid;
pEntity.Notice = pDataContract.Description;
pEntity.ExpirationDate = pDataContract.ExpirationDate;
pEntity.IsHandled = pDataContract.IsHandled;
if (pEntity.Employee == null || pDataContract.Employee.EmployeeOid != pEntity.Employee.Oid)
{
pEntity.Employee = DAOFactory.GenericDAO.LoadByID<Employee>(pDataContract.Employee.EmployeeOid.Value);
}
else
{
this.ConcurrencyCheck(pDataContract.Employee.EmployeeVersion, pEntity.Employee);
}
if (pEntity.Responsible == null || pDataContract.Responsible.EmployeeOid != pEntity.Responsible.Oid)
{
pEntity.Responsible = DAOFactory.GenericDAO.LoadByID<Employee>(pDataContract.Responsible.EmployeeOid.Value);
}
else
{
this.ConcurrencyCheck(pDataContract.Responsible.EmployeeVersion, pEntity.Responsible);
}
return pEntity;
}
protected override bool AreDCAndEntityEqual(FollowUpDC pDC, FollowUp pEntity)
{
if (pDC.FollowUpOid == null)
{
return false;
}
return pDC.FollowUpOid == pEntity.Oid;
}
}
}