public override SyncResult OnModifyEntry(ExSearchResultEntry entry, SortedList <string, DirectoryAttribute> sourceAttributes)
        {
            SyncResult result = SyncResult.Modified;

            EhfConfigTargetConnection.ConfigObjectType syncObjectType = this.GetSyncObjectType(entry, "Modify");
            switch (syncObjectType)
            {
            case EhfConfigTargetConnection.ConfigObjectType.AcceptedDomain:
                this.domainSync.HandleModifiedDomain(entry);
                break;

            case EhfConfigTargetConnection.ConfigObjectType.PerimeterSettings:
                this.companySync.CreateOrModifyEhfCompany(entry);
                break;

            default:
                throw new InvalidOperationException("EhfConfigTargetConnection.GetSyncObjectType() returned unexpected value " + syncObjectType);
            }
            return(result);
        }
        public override SyncResult OnDeleteEntry(ExSearchResultEntry entry)
        {
            EhfConfigTargetConnection.ConfigObjectType syncObjectType = this.GetSyncObjectType(entry, "Delete");
            SyncResult result;

            switch (syncObjectType)
            {
            case EhfConfigTargetConnection.ConfigObjectType.AcceptedDomain:
                this.domainSync.HandleDeletedDomain(entry);
                result = SyncResult.Deleted;
                break;

            case EhfConfigTargetConnection.ConfigObjectType.PerimeterSettings:
                this.companySync.DeleteEhfCompany(entry);
                result = SyncResult.Deleted;
                break;

            default:
                throw new InvalidOperationException("EhfConfigTargetConnection.GetSyncObjectType() returned unexpected value " + syncObjectType);
            }
            return(result);
        }