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); }
public bool AddDataStructure(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> repo = uow.GetRepository<ResearchPlan>(); end1 = repo.Reload(end1); repo.LoadIfNot(end1.DataStructures); if (!end1.DataStructures.Contains(end2)) { end1.DataStructures.Add(end2); end2.ResearchPlans.Add(end1); uow.Commit(); result = true; } } return (result); }