public override void UpdatePersonSite(string personId, bool?isAdministrator, bool?isManager) { if (isAdministrator == null && isManager == null) { throw new ArgumentNullException("isAdministrator", "Both isAdministrator and isManager cannot be null"); } using (var transaction = new TransactionScope(_configuration)) { var ds = new PersonSiteDataStore(transaction); IList <PersonSite> prs = ds.FindSitesByPerson(personId, false); foreach (PersonSite pr in prs) { // A value of null for isAdministrator and isManager is equivalent to false. if (!isAdministrator.HasValue) { // Only modify the manager values pr.IsManager = (bool)isManager; if (!pr.IsAdministrator && !pr.IsManager) { ds.Delete(pr.Id); } else { ds.Update(pr); } } else if (!isManager.HasValue) { // Only modify the manager values pr.IsAdministrator = (bool)isAdministrator; if (!pr.IsAdministrator && !pr.IsManager) { ds.Delete(pr.Id); } else { ds.Update(pr); } } } transaction.Commit(); } }
public override void UpdatePersonSite(PersonSite personSite) { using (var transaction = new TransactionScope(_configuration)) { var prDS = new PersonSiteDataStore(transaction); prDS.Update(personSite); transaction.Commit(); } }
public override void DeletePersonFromSite(string personId, string siteId) { // Delete a record in the PersonSite table. using (var transaction = new TransactionScope(_configuration)) { var psDS = new PersonSiteDataStore(transaction); IList <PersonSite> pss = psDS.FindByPersonAndSite(personId, siteId, false); foreach (PersonSite item in pss) { item.Deleted = true; psDS.Update(item); } transaction.Commit(); } }