private void UpdateMailboxAssociation(MailboxAssociationFromStore association, IAssociationAdaptor associationAdaptor, ADUser masterMailbox, IExtensibleLogger logger)
        {
            if (association == null)
            {
                SetMailboxAssociation.Tracer.TraceDebug((long)this.GetHashCode(), "SetMailboxAssocaition.UpdateMailboxAssociation. Skipping null MailboxAssociationFromStore.");
                return;
            }
            bool flag = this.Instance.UpdateAssociation(association, associationAdaptor);

            associationAdaptor.SaveAssociation(association, this.ReplicateMasteredData);
            if (this.UpdateSlavedData)
            {
                associationAdaptor.ReplicateAssociation(association);
            }
            if (flag)
            {
                associationAdaptor.SaveSyncState(association);
            }
            if (this.ReplicateMasteredData)
            {
                RpcAssociationReplicator rpcAssociationReplicator = new RpcAssociationReplicator(logger, associationAdaptor.AssociationStore.ServerFullyQualifiedDomainName);
                rpcAssociationReplicator.ReplicateAssociation(associationAdaptor, new MailboxAssociation[]
                {
                    association
                });
            }
        }
Exemple #2
0
        private void SaveAssociationAfterReplicationAttempt(IAssociationAdaptor masterAdaptor, MailboxAssociation association)
        {
            Exception exceptionToLog = null;

            try
            {
                GrayException.MapAndReportGrayExceptions(delegate()
                {
                    try
                    {
                        masterAdaptor.SaveSyncState(association);
                    }
                    catch (StoragePermanentException exceptionToLog2)
                    {
                        exceptionToLog = exceptionToLog2;
                    }
                    catch (MapiPermanentException exceptionToLog3)
                    {
                        exceptionToLog = exceptionToLog3;
                    }
                    catch (StorageTransientException exceptionToLog4)
                    {
                        exceptionToLog = exceptionToLog4;
                    }
                });
            }
            catch (GrayException exceptionToLog)
            {
                GrayException exceptionToLog5;
                exceptionToLog = exceptionToLog5;
            }
            if (exceptionToLog != null)
            {
                this.LogError("SaveAssociationAfterReplicationAttempt", exceptionToLog.ToString());
            }
        }