コード例 #1
0
        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();
            }
        }
コード例 #2
0
 public override void UpdatePersonSite(PersonSite personSite)
 {
     using (var transaction = new TransactionScope(_configuration))
     {
         var prDS = new PersonSiteDataStore(transaction);
         prDS.Update(personSite);
         transaction.Commit();
     }
 }
コード例 #3
0
        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();
            }
        }