Files
BeWoPlaner/Service/DCEntityMapper/SupportConceptApprovalPeriodDC_SupportConceptApprovalPeriod.cs

115 lines
6.1 KiB
C#

using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared;
using BS.Shared.DataContracts;
namespace BeWo.Service.DCEntityMapper
{
public class SupportConceptApprovalPeriodDC_SupportConceptApprovalPeriod : AbstractIDCEntityMapper<SupportConceptApprovalPeriod, SupportConceptApprovalPeriodDC>
{
public override SupportConceptApprovalPeriodDC MergeWithDC(SupportConceptApprovalPeriod pEntity, SupportConceptApprovalPeriodDC pDataContract)
{
pDataContract.ApprovedBEInterval = pEntity.ApprovedBEInterval;
pDataContract.IsApprovedBEShifting = pEntity.IsApprovedBEShifting;
pDataContract.IsApprovedFixedAmountShifting = pEntity.IsApprovedFixedAmountShifting;
pDataContract.MonthlyPayment = pEntity.MonthlyPayment;
pDataContract.SupportConceptApprovalPeriodOid = pEntity.Oid;
pDataContract.SupportConceptApprovalPeriodVersion = pEntity.Version;
pDataContract.StartDate = pEntity.StartDate;
pDataContract.EndDate = pEntity.EndDate;
pDataContract.ApprovedBETotal = pEntity.ApprovedBETotal;
pDataContract.ApprovedBEPerInterval = pEntity.ApprovedBEPerInterval;
pDataContract.ContactCountInterval = pEntity.ContactCountInterval;
pDataContract.ContactCountPerInterval = pEntity.ContactCountPerInterval;
pDataContract.ApprovedFixedAmount = pEntity.ApprovedFixedAmount;
pDataContract.ApprovedFixedAmountInterval = pEntity.ApprovedFixedAmountInterval;
pDataContract.Bewilligungsart = pEntity.Bewilligungsart;
pDataContract.Notice = pEntity.Notice;
pDataContract.SupportConceptApprovalPeriodEmployeeRelations = MapperFactory.SupportConceptApprovalPeriodEmployeeRelDC_SupportConceptApprovalPeriod2Employee.MapToNewDCs(pEntity.SupportConceptApprovalPeriod2Employee);
if (!pDataContract.ApprovedBEInterval.HasValue)
{
pDataContract.ApprovedBEInterval = SupportConceptApprovalInterval.Weekly;
}
if (!pDataContract.ContactCountInterval.HasValue)
{
pDataContract.ContactCountInterval = SupportConceptApprovalInterval.Weekly;
}
if (!pDataContract.ApprovedFixedAmountInterval.HasValue)
{
pDataContract.ApprovedFixedAmountInterval = SupportConceptApprovalInterval.Weekly;
}
if (pEntity.ServiceCategory != null)
{
pDataContract.ServiceCategory = MapperFactory.ServiceCategoryDC_ServiceCategory.MapToNewDC(pEntity.ServiceCategory);
}
if (pEntity.Budget != null)
{
pDataContract.BudgetDC = MapperFactory.BudgetDC_Budget.MapToNewDC(pEntity.Budget);
}
return pDataContract;
}
public override SupportConceptApprovalPeriod MergeWithEntity(SupportConceptApprovalPeriodDC pDataContract, SupportConceptApprovalPeriod pEntity)
{
ConcurrencyCheck(pDataContract.SupportConceptApprovalPeriodVersion, pEntity);
pEntity.ApprovedBEInterval = pDataContract.ApprovedBEInterval;
pEntity.ApprovedBETotal = pDataContract.ApprovedBETotal;
pEntity.ContactCountInterval = pDataContract.ContactCountInterval;
pEntity.ContactCountPerInterval = pDataContract.ContactCountPerInterval;
pEntity.ApprovedBEPerInterval = pDataContract.ApprovedBEPerInterval;
pEntity.ApprovedFixedAmount = pDataContract.ApprovedFixedAmount;
pEntity.ApprovedFixedAmountInterval = pDataContract.ApprovedFixedAmountInterval;
pEntity.EndDate = pDataContract.EndDate;
pEntity.IsApprovedBEShifting = pDataContract.IsApprovedBEShifting;
pEntity.IsApprovedFixedAmountShifting = pDataContract.IsApprovedFixedAmountShifting;
pEntity.MonthlyPayment = pDataContract.MonthlyPayment;
pEntity.Oid = pDataContract.SupportConceptApprovalPeriodOid;
pEntity.Version = pDataContract.SupportConceptApprovalPeriodVersion;
pEntity.StartDate = pDataContract.StartDate;
pEntity.Bewilligungsart = pDataContract.Bewilligungsart;
pEntity.Notice = pDataContract.Notice;
if (pDataContract.BudgetDC == null)
{
pEntity.Budget = null;
}
else if (pDataContract.BudgetDC != null && pDataContract.BudgetDC.BudgetOid.HasValue)
{
pEntity.Budget = DAOFactory.GenericDAO.LoadByID<Budget>(pDataContract.BudgetDC.BudgetOid.Value);
}
if (pDataContract.ServiceCategory == null)
{
pEntity.ServiceCategory = null;
}
else if (pEntity.ServiceCategory == null || pDataContract.ServiceCategory.ServiceCategoryOid != pEntity.ServiceCategory.Oid)
{
pEntity.ServiceCategory = DAOFactory.GenericDAO.LoadByID<ServiceCategory>(pDataContract.ServiceCategory.ServiceCategoryOid.Value);
}
MapperFactory.SupportConceptApprovalPeriodEmployeeRelDC_SupportConceptApprovalPeriod2Employee.MergeWithEntitys(pDataContract.SupportConceptApprovalPeriodEmployeeRelations, pEntity.SupportConceptApprovalPeriod2Employee);
return pEntity;
}
protected override bool AreDCAndEntityEqual(SupportConceptApprovalPeriodDC pDC, SupportConceptApprovalPeriod pEntity)
{
if (pDC.SupportConceptApprovalPeriodOid == null)
{
return false;
}
return pDC.SupportConceptApprovalPeriodOid == pEntity.Oid;
}
}
}