public bool RemoveDataStructure(ResearchPlan end1, DataStructureEntity end2)
{
Contract.Requires(end1 != null && end1.Id >= 0);
Contract.Requires(end2 != null && end2.Id >= 0);
bool result = false;
using (IUnitOfWork uow = this.GetUnitOfWork())
{
IRepository<ResearchPlan> end1Repo = uow.GetRepository<ResearchPlan>();
IRepository<DataStructureEntity> end2Repo = uow.GetRepository<DataStructureEntity>();
end1 = end1Repo.Reload(end1);
end1Repo.LoadIfNot(end1.DataStructures);
end2 = end2Repo.Reload(end2);
end2Repo.LoadIfNot(end2.ResearchPlans);
if (end1.DataStructures.Contains(end2) || end2.ResearchPlans.Contains(end1))
{
end1.DataStructures.Remove(end2);
end2.ResearchPlans.Remove(end1);
uow.Commit();
result = true;
}
}
return (result);
}