/// <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;
        }
Example #2
0
 /// <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);
 }
Example #3
0
 /// <remarks/>
 public void CopyFolderAsync(CopyFolderType CopyFolder1)
 {
     this.CopyFolderAsync(CopyFolder1, null);
 }
Example #4
0
 /// <remarks/>
 public System.IAsyncResult BeginCopyFolder(CopyFolderType CopyFolder1, System.AsyncCallback callback, object asyncState)
 {
     return this.BeginInvoke("CopyFolder", new object[] {
             CopyFolder1}, callback, asyncState);
 }
Example #5
0
		/// <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;
        }