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

62 lines
2.3 KiB
C#

using BeWo.Data.Entities;
using BS.Shared.Core;
using BS.Shared.DataContracts;
namespace BeWo.Service.DCEntityMapper
{
public class ResourceBookingDC_ResourceBooking : AbstractIDCEntityMapper<ResourceBooking, ResourceBookingDC>
{
public override ResourceBookingDC MergeWithDC(ResourceBooking pEntity, ResourceBookingDC pDataContract)
{
pDataContract.ResourceBookingOid = pEntity.Oid;
pDataContract.ResourceBookingVersion = pEntity.Version;
pDataContract.Notice = pEntity.Notice;
if (pEntity.Start != null && pEntity.End != null)
{
pDataContract.Duration = new DateTimeSpan { StartDateTime = pEntity.Start.Value, EndDateTime = pEntity.End.Value };
}
pDataContract.IsDeleted = pEntity.IsDeleted;
pDataContract.SequencePosition = pEntity.SequencePosition;
if (pEntity.Employee != null)
{
pDataContract.Employee = MapperFactory.CompactEmployeeDC_Employee.MapToNewDC(pEntity.Employee);
}
return pDataContract;
}
public override ResourceBooking MergeWithEntity(ResourceBookingDC pDataContract, ResourceBooking pEntity)
{
this.ConcurrencyCheck(pDataContract.ResourceBookingVersion, pEntity);
pEntity.Oid = pDataContract.ResourceBookingOid;
if (pDataContract.Duration != null)
{
pEntity.Start = pDataContract.Duration.StartDateTime;
pEntity.End = pDataContract.Duration.EndDateTime;
}
pEntity.Notice = pDataContract.Notice;
pEntity.SequencePosition = pDataContract.SequencePosition;
pEntity.IsDeleted = pDataContract.IsDeleted;
if (pDataContract.Employee != null)
{
pEntity.Employee = MapperFactory.CompactEmployeeDC_Employee.MapToNewEntity(pDataContract.Employee);
}
return pEntity;
}
protected override bool AreDCAndEntityEqual(ResourceBookingDC pDC, ResourceBooking pEntity)
{
if (pDC.ResourceBookingOid == null)
{
return false;
}
return pDC.ResourceBookingOid == pEntity.Oid;
}
}
}