81 lines
3.6 KiB
C#
81 lines
3.6 KiB
C#
using BS.Shared;
|
|
using BeWo.Data.Entities;
|
|
|
|
using BS.Shared.DataContracts;
|
|
|
|
namespace BeWo.Service.DCEntityMapper
|
|
{
|
|
public class ServiceCategoryDC_ServiceCategory : AbstractIDCEntityMapper<ServiceCategory, ServiceCategoryDC>
|
|
{
|
|
public override ServiceCategoryDC MergeWithDC(ServiceCategory pEntity, ServiceCategoryDC pDataContract)
|
|
{
|
|
pDataContract.ServiceCategoryOid = pEntity.Oid;
|
|
pDataContract.ServiceCategoryVersion = pEntity.Version;
|
|
pDataContract.Percentage = pEntity.ProzentAbrechnung;
|
|
pDataContract.ProzentBudget = pEntity.ProzentBudget;
|
|
pDataContract.ProzentStundenkonto = pEntity.ProzentStundenkonto;
|
|
|
|
if (pDataContract.ProzentBudget == null)
|
|
{
|
|
pDataContract.ProzentBudget = pEntity.ProzentAbrechnung;
|
|
}
|
|
if (pDataContract.ProzentStundenkonto == null)
|
|
{
|
|
pDataContract.ProzentStundenkonto = pEntity.ProzentAbrechnung;
|
|
}
|
|
|
|
pDataContract.Name = pEntity.Name;
|
|
pDataContract.IsBillable = pEntity.IsBillable;
|
|
pDataContract.OhneHilfeplan = pEntity.OhneHilfeplan;
|
|
pDataContract.Abbreviation = pEntity.Abbreviation;
|
|
pDataContract.Position = pEntity.Position;
|
|
pDataContract.IsDefault = pEntity.IsDefault;
|
|
pDataContract.BillableAmount = pEntity.BillableAmount;
|
|
pDataContract.AccountingInterval = pEntity.AccountingInterval;
|
|
pDataContract.ActivationType = pEntity.IsActive;
|
|
pDataContract.ScopeType = pEntity.ScopeType.HasValue ? pEntity.ScopeType.Value : ScopeTypeId.Global;
|
|
pDataContract.IsSystemEntry = pEntity.SystemEntryID != null;
|
|
|
|
pDataContract.CostRatePeriods = MapperFactory.CostRatePeriodDC_CostRatePeriod.MapToNewDCs(pEntity.CostRatePeriods);
|
|
|
|
return pDataContract;
|
|
}
|
|
|
|
public override ServiceCategory MergeWithEntity(ServiceCategoryDC pDataContract, ServiceCategory pEntity)
|
|
{
|
|
ConcurrencyCheck(pDataContract.ServiceCategoryVersion, pEntity);
|
|
|
|
pEntity.Oid = pDataContract.ServiceCategoryOid;
|
|
pEntity.Name = pDataContract.Name;
|
|
pEntity.IsBillable = pDataContract.IsBillable;
|
|
pEntity.OhneHilfeplan = pDataContract.OhneHilfeplan;
|
|
pEntity.ProzentAbrechnung = pDataContract.Percentage;
|
|
pEntity.ProzentBudget = pDataContract.ProzentBudget;
|
|
pEntity.ProzentStundenkonto = pDataContract.ProzentStundenkonto;
|
|
pEntity.Abbreviation = pDataContract.Abbreviation;
|
|
pEntity.Position = pDataContract.Position;
|
|
pEntity.BillableAmount = pDataContract.BillableAmount;
|
|
pEntity.AccountingInterval = pDataContract.AccountingInterval;
|
|
pEntity.ScopeType = pDataContract.ScopeType;
|
|
pEntity.IsDefault = pDataContract.IsDefault;
|
|
|
|
MapperFactory.CostRatePeriodDC_CostRatePeriod.MergeWithEntitys(pDataContract.CostRatePeriods, pEntity.CostRatePeriods);
|
|
foreach (var costRatePeriod in pEntity.CostRatePeriods)
|
|
{
|
|
costRatePeriod.ObjectTid = TableID.ServiceCategory;
|
|
}
|
|
|
|
return pEntity;
|
|
}
|
|
|
|
protected override bool AreDCAndEntityEqual(ServiceCategoryDC pDC, ServiceCategory pEntity)
|
|
{
|
|
if (pDC.ServiceCategoryOid == null)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return pDC.ServiceCategoryOid == pEntity.Oid;
|
|
}
|
|
}
|
|
} |