96 lines
4.0 KiB
C#
96 lines
4.0 KiB
C#
using System.Collections.Generic;
|
|
using BeWo.Data.Access;
|
|
using BeWo.Data.Entities;
|
|
using BS.Shared;
|
|
using BS.Shared.DataContracts;
|
|
|
|
namespace BeWo.Service.DCEntityMapper
|
|
{
|
|
public class TeamDC_Team : AbstractIDCEntityMapper<Team, TeamDC>
|
|
{
|
|
public override TeamDC MergeWithDC(Team pEntity, TeamDC pDataContract)
|
|
{
|
|
pDataContract.IsOwnChatTeam = pEntity.IsOwnChatTeam;
|
|
pDataContract.Name = pEntity.Name;
|
|
pDataContract.TeamOid = pEntity.Oid;
|
|
pDataContract.TeamVersion = pEntity.Version;
|
|
pDataContract.Notice = pEntity.Notice;
|
|
if (pEntity.Leader != null)
|
|
{
|
|
pDataContract.Leader = MapperFactory.CompactEmployeeDC_Employee.MapToNewDC(pEntity.Leader);
|
|
}
|
|
|
|
if (pEntity.Leader2 != null)
|
|
{
|
|
pDataContract.Leader2 = MapperFactory.CompactEmployeeDC_Employee.MapToNewDC(pEntity.Leader2);
|
|
}
|
|
|
|
if (pEntity.Leader3 != null)
|
|
{
|
|
pDataContract.Leader3 = MapperFactory.CompactEmployeeDC_Employee.MapToNewDC(pEntity.Leader3);
|
|
}
|
|
|
|
pDataContract.Member = MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(pEntity.MemberList);
|
|
pDataContract.OwnChatMember = MapperFactory.Person2TeamDC_Person2Team.MapToNewDCs(pEntity.OwnChatMember);
|
|
|
|
IList<VarFieldDef> defs = DAOFactory.SearchDAO.GetVarFieldDefs(TableID.Team);
|
|
pDataContract.TeamVarFields = MapperFactory.VarFieldDC_VarField.VarFieldMapToDCs(defs, pEntity.VarFieldValueList);
|
|
|
|
return pDataContract;
|
|
}
|
|
|
|
public override Team MergeWithEntity(TeamDC pDataContract, Team pEntity)
|
|
{
|
|
this.ConcurrencyCheck(pDataContract.TeamVersion, pEntity);
|
|
|
|
pEntity.Oid = pDataContract.TeamOid;
|
|
pEntity.IsOwnChatTeam = pDataContract.IsOwnChatTeam;
|
|
pEntity.Notice = pDataContract.Notice;
|
|
pEntity.Name = pDataContract.Name;
|
|
|
|
if ((pEntity.Leader == null && pDataContract.Leader != null) || (pEntity.Leader?.Oid != pDataContract.Leader?.EmployeeOid))
|
|
{
|
|
pEntity.Leader = DAOFactory.GenericDAO.LoadByID<Employee>(pDataContract.Leader.EmployeeOid);
|
|
}
|
|
else if (pDataContract.Leader == null)
|
|
{
|
|
pEntity.Leader = null;
|
|
}
|
|
|
|
if ((pEntity.Leader2 == null && pDataContract.Leader2 != null) || (pEntity.Leader2?.Oid != pDataContract.Leader2?.EmployeeOid))
|
|
{
|
|
pEntity.Leader2 = pDataContract.Leader2 == null ? null : DAOFactory.GenericDAO.LoadByID<Employee>(pDataContract.Leader2.EmployeeOid);
|
|
}
|
|
else if (pDataContract.Leader2 == null)
|
|
{
|
|
pEntity.Leader2 = null;
|
|
}
|
|
|
|
if ((pEntity.Leader3 == null && pDataContract.Leader3 != null) || (pEntity.Leader3?.Oid != pDataContract.Leader3?.EmployeeOid))
|
|
{
|
|
pEntity.Leader3 = pDataContract.Leader3 == null ? null : DAOFactory.GenericDAO.LoadByID<Employee>(pDataContract.Leader3.EmployeeOid);
|
|
}
|
|
else if (pDataContract.Leader3 == null)
|
|
{
|
|
pEntity.Leader3 = null;
|
|
}
|
|
|
|
MapperFactory.CompactEmployeeDC_Employee.MergeWithEntitys(pDataContract.Member, pEntity.MemberList);
|
|
MapperFactory.Person2TeamDC_Person2Team.MergeWithEntitys(pDataContract.OwnChatMember, pEntity.OwnChatMember);
|
|
|
|
pEntity.VarFieldValueList = MapperFactory.VarFieldDC_VarField.VarFieldMergeToEntity(pEntity.VarFieldValueList, pDataContract.TeamVarFields, pEntity);
|
|
|
|
return pEntity;
|
|
}
|
|
|
|
protected override bool AreDCAndEntityEqual(TeamDC pDC, Team pEntity)
|
|
{
|
|
if (pDC.TeamOid == null)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return pDC.TeamOid == pEntity.Oid;
|
|
}
|
|
}
|
|
} |