public RemoveAssociatedDataType ( |
||
end1 | ||
end2 | IEnumerable |
|
return | bool |
public bool RemoveAssociatedDataType(Unit end1, IEnumerable<DataType> end2)
{
Contract.Requires(end1 != null && end1.Id >= 0);
Contract.Requires(Contract.ForAll(end2, (DataType e) => e != null));
Contract.Requires(Contract.ForAll(end2, (DataType e) => e.Id >= 0));
bool result = false;
using (IUnitOfWork uow = this.GetUnitOfWork())
{
IRepository<Unit> repo = uow.GetRepository<Unit>();
IRepository<DataType> dtRepo = uow.GetRepository<DataType>();
//end1 = repo.Reload(end1);
repo.LoadIfNot(end1.AssociatedDataTypes);
foreach (var e2 in end2)
{
//var e2Loaded = dtRepo.Reload(e2);
//dtRepo.LoadIfNot(e2Loaded.ApplicableUnits);
if (end1.AssociatedDataTypes.Contains(e2) || e2.ApplicableUnits.Contains(end1))
{
end1.AssociatedDataTypes.Remove(e2);
e2.ApplicableUnits.Remove(end1);
}
}
uow.Commit();
result = true;
}
return (result);
}
UnitManager::RemoveAssociatedDataType ( |
private List<DataType> updataAssociatedDataType(Unit unit, long[] newDataTypeIds) { if (unit != null) { DataTypeManager dataTypeManger = new DataTypeManager(); UnitManager unitManager = new UnitManager(); unit = unitManager.Repo.Get(unit.Id); List<DataType> existingDataTypes = unit.AssociatedDataTypes.ToList(); List<DataType> newDataTypes = newDataTypeIds == null ? new List<DataType>() : dataTypeManger.Repo.Query().Where(p => newDataTypeIds.Contains(p.Id)).ToList(); List<DataType> tobeAddedDataTypes = newDataTypes.Except(existingDataTypes).ToList(); if (tobeAddedDataTypes != null && tobeAddedDataTypes.Count > 0) unitManager.AddAssociatedDataType(unit, tobeAddedDataTypes); unit = unitManager.Repo.Get(unit.Id); existingDataTypes = unit.AssociatedDataTypes.ToList(); List<DataType> toBeRemoved = existingDataTypes.Except(newDataTypes).ToList(); if (toBeRemoved != null && toBeRemoved.Count() > 0) unitManager.RemoveAssociatedDataType(unit, toBeRemoved); unit = unitManager.Repo.Get(unit.Id); return unit.AssociatedDataTypes.ToList(); } return null; }