Exemplo n.º 1
0
 private bool ProcessResponse(MailboxAssociationEwsBinding ewsBinding, UpdateMailboxAssociationResponseType response, MailboxAssociation association, IMailboxLocator mailboxLocator)
 {
     if (response != null && response.ResponseMessages != null && response.ResponseMessages.Items != null && response.ResponseMessages.Items.Length > 0)
     {
         foreach (ResponseMessageType responseMessageType in response.ResponseMessages.Items)
         {
             if (responseMessageType.ResponseClass == ResponseClassType.Success)
             {
                 InProcessAssociationReplicator.Tracer.TraceDebug <MailboxAssociation>((long)this.GetHashCode(), "ReplicateAssociation succeeded. Association {0}", association);
                 this.ProcessSuccess(association, InProcessAssociationReplicator.GetEwsVersionNumber(ewsBinding), mailboxLocator);
                 return(true);
             }
             string failureDescription = string.Format(CultureInfo.InvariantCulture, "ReplicateAssociation Failed. Association {0}. ResponseClass={1}, ResponseCode={2}, MessageText={3}", new object[]
             {
                 association,
                 responseMessageType.ResponseClass,
                 responseMessageType.ResponseCode,
                 responseMessageType.MessageText
             });
             this.ProcessFailure(association, failureDescription);
         }
     }
     else
     {
         string failureDescription2 = string.Format(CultureInfo.InvariantCulture, "ReplicateAssociation Failed with empty response. Association {0}.", new object[]
         {
             association
         });
         this.ProcessFailure(association, failureDescription2);
     }
     return(false);
 }
Exemplo n.º 2
0
        private bool ExecuteReplicationToMailbox(IAssociationAdaptor masterAdaptor, MailboxAssociation association)
        {
            bool      replicationSucceeded = false;
            Exception exception            = null;

            try
            {
                GrayException.MapAndReportGrayExceptions(delegate()
                {
                    try
                    {
                        MailboxAssociationEwsBinding.ExecuteEwsOperationWithRetry("ReplicateAssociation", delegate
                        {
                            using (MailboxAssociationEwsBinding mailboxAssociationEwsBinding = this.CreateMailboxAssociationEwsBinding(masterAdaptor.MasterLocator, association))
                            {
                                UpdateMailboxAssociationType updateMailboxAssociation = InProcessAssociationReplicator.CreateUpdateMailboxAssociationType(masterAdaptor.MasterLocator, association);
                                UpdateMailboxAssociationResponseType response         = mailboxAssociationEwsBinding.UpdateMailboxAssociation(updateMailboxAssociation);
                                replicationSucceeded = this.ProcessResponse(mailboxAssociationEwsBinding, response, association, masterAdaptor.AssociationStore.MailboxLocator);
                            }
                        });
                    }
                    catch (MailboxNotFoundException exception4)
                    {
                        replicationSucceeded = this.DeleteMailboxNotFoundAssociation(association, masterAdaptor, exception4);
                        if (!replicationSucceeded)
                        {
                            exception = exception4;
                        }
                    }
                    catch (BackEndLocatorException exception5)
                    {
                        exception = exception5;
                    }
                    catch (WebException exception6)
                    {
                        exception = exception6;
                    }
                    catch (InvalidOperationException exception7)
                    {
                        exception = exception7;
                    }
                    catch (LogonAsNetworkServiceException exception8)
                    {
                        if (!ExEnvironment.IsTest)
                        {
                            throw;
                        }
                        exception = exception8;
                    }
                });
            }
            catch (GrayException exception)
            {
                GrayException exception9;
                exception = exception9;
            }
            catch (SoapException exception2)
            {
                exception = exception2;
            }
            catch (IOException exception3)
            {
                exception = exception3;
            }
            if (exception != null)
            {
                this.ProcessFailure(association, exception.ToString());
                replicationSucceeded = false;
            }
            return(replicationSucceeded);
        }