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); }
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); }
public PublicFolderSyncJobRpcInParameters(OrganizationId organizationId, Guid contentMailboxGuid, PublicFolderSyncJobRpcInParameters.PublicFolderSyncAction syncAction) : this(organizationId, contentMailboxGuid, syncAction, null) { }