Beispiel #1
0
        public static PublicFolderSyncJobState StartSyncHierarchy(OrganizationId organizationId, Guid mailboxGuid, string serverFqdn, bool executeReconcileFolders = false)
        {
            ArgumentValidator.ThrowIfNull("organizationId", organizationId);
            ArgumentValidator.ThrowIfEmpty("mailboxGuid", mailboxGuid);
            ArgumentValidator.ThrowIfNull("server", serverFqdn);
            PublicFolderSyncJobState publicFolderSyncJobState;

            try
            {
                using (JobQueueRpcClient jobQueueRpcClient = new JobQueueRpcClient(serverFqdn))
                {
                    PublicFolderSyncJobRpcInParameters.PublicFolderSyncAction syncAction  = executeReconcileFolders ? PublicFolderSyncJobRpcInParameters.PublicFolderSyncAction.StartSyncHierarchyWithFolderReconciliation : PublicFolderSyncJobRpcInParameters.PublicFolderSyncAction.StartSyncHierarchy;
                    PublicFolderSyncJobRpcInParameters publicFolderSyncJobRpcInParameters = new PublicFolderSyncJobRpcInParameters(organizationId, mailboxGuid, syncAction);
                    byte[] data = jobQueueRpcClient.EnqueueRequest(1, 1, publicFolderSyncJobRpcInParameters.Serialize());
                    EnqueueRequestRpcOutParameters   enqueueRequestRpcOutParameters   = new EnqueueRequestRpcOutParameters(data);
                    PublicFolderSyncJobEnqueueResult publicFolderSyncJobEnqueueResult = enqueueRequestRpcOutParameters.Result as PublicFolderSyncJobEnqueueResult;
                    if (publicFolderSyncJobEnqueueResult == null || publicFolderSyncJobEnqueueResult.PublicFolderSyncJobState == null)
                    {
                        throw new PublicFolderSyncPermanentException(ServerStrings.PublicFolderStartSyncFolderHierarchyRpcFailed);
                    }
                    publicFolderSyncJobState = publicFolderSyncJobEnqueueResult.PublicFolderSyncJobState;
                }
            }
            catch (RpcException innerException)
            {
                throw new PublicFolderSyncTransientException(ServerStrings.PublicFolderStartSyncFolderHierarchyRpcFailed, innerException);
            }
            catch (SerializationException innerException2)
            {
                throw new PublicFolderSyncPermanentException(ServerStrings.PublicFolderStartSyncFolderHierarchyRpcFailed, innerException2);
            }
            return(publicFolderSyncJobState);
        }
Beispiel #2
0
 private PublicFolderSyncJobRpcInParameters(OrganizationId organizationId, Guid contentMailboxGuid, PublicFolderSyncJobRpcInParameters.PublicFolderSyncAction syncAction, byte[] folderId)
 {
     this.OrganizationId     = organizationId;
     this.ContentMailboxGuid = contentMailboxGuid;
     this.SyncAction         = syncAction;
     this.FolderId           = folderId;
     base.SetParameterValue("ContentMailboxGuid", this.ContentMailboxGuid);
     base.SetParameterValue("OrganizationId", this.OrganizationId);
     base.SetParameterValue("PublicFolderSyncAction", this.SyncAction);
     base.SetParameterValue("PublicFolderId", this.FolderId);
 }
Beispiel #3
0
 public PublicFolderSyncJobRpcInParameters(OrganizationId organizationId, Guid contentMailboxGuid, PublicFolderSyncJobRpcInParameters.PublicFolderSyncAction syncAction) : this(organizationId, contentMailboxGuid, syncAction, null)
 {
 }