/// <summary> /// Copy one folder into another one. /// </summary> /// <param name="request">Request of CopyFolder operation.</param> /// <returns>Response of CopyFolder operation.</returns> public CopyFolderResponseType CopyFolder(CopyFolderType request) { // Send the request and get the response. CopyFolderResponseType response = this.exchangeServiceBinding.CopyFolder(request); Site.Assert.IsNotNull(response, "If the operation is successful, the response should not be null."); if (ResponseClassType.Success == response.ResponseMessages.Items[0].ResponseClass) { this.VerifyCopyFolderResponse(this.exchangeServiceBinding.IsSchemaValidated); this.VerifyAllRelatedRequirements(this.exchangeServiceBinding.IsSchemaValidated, response); } // Verify transport type related requirement. this.VerifyTransportType(); // Verify soap version. this.VerifySoapVersion(); return response; }
/// <remarks/> public void CopyFolderAsync(CopyFolderType CopyFolder1, object userState) { if ((this.CopyFolderOperationCompleted == null)) { this.CopyFolderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCopyFolderOperationCompleted); } this.InvokeAsync("CopyFolder", new object[] { CopyFolder1}, this.CopyFolderOperationCompleted, userState); }
/// <remarks/> public void CopyFolderAsync(CopyFolderType CopyFolder1) { this.CopyFolderAsync(CopyFolder1, null); }
/// <remarks/> public System.IAsyncResult BeginCopyFolder(CopyFolderType CopyFolder1, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CopyFolder", new object[] { CopyFolder1}, callback, asyncState); }
/// <remarks/> public void CopyFolderAsync(CopyFolderType CopyFolder1, object userState) { if ((CopyFolderOperationCompleted == null)) { CopyFolderOperationCompleted = new SendOrPostCallback(OnCopyFolderOperationCompleted); } InvokeAsync("CopyFolder", new object[] { CopyFolder1 }, CopyFolderOperationCompleted, userState); }
/// <summary> /// Generate the request message for operation "CopyFolder". /// </summary> /// <param name="toFolderId">A target folder for operations that copy folders.</param> /// <param name="folderIds">An array of folder identifier of the folders need to be copied.</param> /// <returns>Copy folder request instance that will send to server.</returns> protected CopyFolderType GetCopyFolderRequest(string toFolderId, params BaseFolderIdType[] folderIds) { Site.Assert.IsNotNull(folderIds, "Folders id should not be null!"); Site.Assert.AreNotEqual<int>(0, folderIds.Length, "Folders id should contains at least one id!"); // CopyFolder request. CopyFolderType copyFolderRequest = new CopyFolderType(); int folderCount = folderIds.Length; // Identify the folders to be copied. copyFolderRequest.FolderIds = new BaseFolderIdType[folderCount]; for (int folderIdIndex = 0; folderIdIndex < folderCount; folderIdIndex++) { copyFolderRequest.FolderIds[folderIdIndex] = folderIds[folderIdIndex]; } // Identify the destination folder. copyFolderRequest.ToFolderId = new TargetFolderIdType(); DistinguishedFolderIdType distinguishedFolderId = new DistinguishedFolderIdType(); DistinguishedFolderIdNameType distinguishedFolderIdName = new DistinguishedFolderIdNameType(); bool isSuccess = Enum.TryParse<DistinguishedFolderIdNameType>(toFolderId, true, out distinguishedFolderIdName); if (isSuccess) { distinguishedFolderId.Id = distinguishedFolderIdName; copyFolderRequest.ToFolderId.Item = distinguishedFolderId; } else { FolderIdType id = new FolderIdType(); id.Id = toFolderId; copyFolderRequest.ToFolderId.Item = id; } return copyFolderRequest; }