Files
BeWoPlaner/Service/DCEntityMapper/AccountingTransactionDC_AccountingTransaction.cs
Christian 360df71632 CB
2021-10-13 14:38:51 +02:00

74 lines
3.0 KiB
C#

using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared;
using BS.Shared.DataContracts;
namespace BeWo.Service.DCEntityMapper
{
public class AccountingTransactionDC_AccountingTransaction : AbstractIDCEntityMapper<AccountingTransaction, AccountingTransactionDC>
{
public override AccountingTransactionDC MergeWithDC(AccountingTransaction pEntity, AccountingTransactionDC pDataContract)
{
pDataContract.AccountingTransactionOid = pEntity.Oid;
pDataContract.AccountingTransactionVersion = pEntity.Version;
pDataContract.Amount = pEntity.Amount;
pDataContract.InsertedOn = pEntity.InsTs;
pDataContract.InsUser = pEntity.InsUser;
var lCat = pEntity.ValueList.FirstOrDefault(entry => entry.Entry.Type == ValueListEntryType.AccountingTransactionType);
if (lCat != null)
{
pDataContract.Category = MapperFactory.ValueListEntryDC_ValueListEntry.MapToNewDC(lCat.Entry);
}
if (pEntity.CostBearer2SupportConcept != null)
{
pDataContract.SupportConceptCostBearerRelDC = MapperFactory.SupportConceptCostBearerRelDC_CostBearer2SupportConcept.MapToNewDC(pEntity.CostBearer2SupportConcept);
}
pDataContract.Notice = pEntity.Notice;
pDataContract.BookingDate = pEntity.BookingDate;
pDataContract.ValidityDate = pEntity.ValidityDate;
return pDataContract;
}
public override AccountingTransaction MergeWithEntity(AccountingTransactionDC pDataContract, AccountingTransaction pEntity)
{
this.ConcurrencyCheck(pDataContract.AccountingTransactionVersion, pEntity);
pEntity.Oid = pDataContract.AccountingTransactionOid;
pEntity.Amount = pDataContract.Amount;
pEntity.BookingDate = pDataContract.BookingDate;
pEntity.ValidityDate = pDataContract.ValidityDate;
pEntity.Notice = pDataContract.Notice;
MapperFactory.ValueListEntryDC_ValueListEntry.MapUniqueTypeValueListEntryBack2Entity(pDataContract.Category, pEntity.ValueList, ValueListEntryType.AccountingTransactionType, TableID.AccountingTransaction);
if (pDataContract.SupportConceptCostBearerRelDC != null)
{
pEntity.CostBearer2SupportConcept = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(pDataContract.SupportConceptCostBearerRelDC.CostBearer2SupportConceptOid.Value);
}
else
{
pEntity.CostBearer2SupportConcept = null;
}
return pEntity;
}
protected override bool AreDCAndEntityEqual(AccountingTransactionDC pDC, AccountingTransaction pEntity)
{
if (pDC.AccountingTransactionOid == null)
{
return false;
}
return pDC.AccountingTransactionOid == pEntity.Oid;
}
}
}