using System.Linq; using BeWo.Data.Access; using BeWo.Data.Entities; using BS.Shared; using BS.Shared.DataContracts; using System.Collections.Generic; using BS.Shared.Core; namespace BeWo.Service.DCEntityMapper { public class PreisDC_Preis : AbstractIDCEntityMapper { public override PreisDC MergeWithDC(Preis bEntity, PreisDC bDataContract) { bDataContract.PreisOid = bEntity.Oid; bDataContract.PreisIsActive = bEntity.IsActive; bDataContract.PreisNotice = bEntity.Notice; bDataContract.PreisInsTs = bEntity.InsTs; bDataContract.PreisInsUser = bEntity.InsUser; bDataContract.PreisVersion = bEntity.Version; bDataContract.PreisUdpUser = bEntity.UdpUser; bDataContract.PreisSystemEntryID = bEntity.SystemEntryID; bDataContract.Name = bEntity.Name; bDataContract.Betrag = bEntity.Betrag; bDataContract.IsSystemEntry = bEntity.SystemEntryID != null; bDataContract.DoNotCheckOverlapping = bEntity.DoNotCheckOverlapping.HasValue && bEntity.DoNotCheckOverlapping.Value; bDataContract.ActivationType = bEntity.IsActive; bDataContract.CostRatePeriods = MapperFactory.CostRatePeriodDC_CostRatePeriod.MapToNewDCs(bEntity.CostRatePeriods); return bDataContract; } public override Preis MergeWithEntity(PreisDC bDataContract, Preis bEntity) { this.ConcurrencyCheck(bDataContract.PreisVersion, bEntity); bEntity.Oid = bDataContract.PreisOid; bEntity.Notice = bDataContract.PreisNotice; bEntity.SystemEntryID = bDataContract.PreisSystemEntryID; bEntity.Name = bDataContract.Name; bEntity.Betrag = bDataContract.Betrag; bEntity.InsTs = bDataContract.PreisInsTs; bEntity.DoNotCheckOverlapping = bDataContract.DoNotCheckOverlapping; MapperFactory.CostRatePeriodDC_CostRatePeriod.MergeWithEntitys(bDataContract.CostRatePeriods, bEntity.CostRatePeriods); foreach (var costRatePeriod in bEntity.CostRatePeriods) { costRatePeriod.ObjectTid = TableID.Preis; } return bEntity; } protected override bool AreDCAndEntityEqual(PreisDC bDC, Preis bEntity) { if (bDC.PreisOid == null) { return false; } return bDC.PreisOid == bEntity.Oid; } } }