/// <summary> /// Creates a request for the SyncFolderHierarchy operation. /// </summary> /// <param name="folder">A default folder name.</param> /// <param name="defaultShapeNames">Standard sets of properties to return.</param> /// <param name="isSyncFolderIdPresent">A Boolean value indicates whether the SyncFolderId element present in the request.</param> /// <param name="isSyncStatePresent">A Boolean value indicates whether the SyncState element present in the request.</param> /// <returns>An instance of SyncFolderHierarchyType used by the SyncFolderHierarchy operation.</returns> public static SyncFolderHierarchyType CreateSyncFolderHierarchyRequest( DistinguishedFolderIdNameType folder, DefaultShapeNamesType defaultShapeNames, bool isSyncFolderIdPresent, bool isSyncStatePresent) { // Create an instance of SyncFolderHierarchyType SyncFolderHierarchyType request = new SyncFolderHierarchyType(); request.FolderShape = new FolderResponseShapeType(); request.FolderShape.BaseShape = defaultShapeNames; // Set the value of SyncFolderId if this element is present in the request. if (isSyncFolderIdPresent) { request.SyncFolderId = new TargetFolderIdType(); DistinguishedFolderIdType distinguishedFolderId = new DistinguishedFolderIdType(); distinguishedFolderId.Id = folder; request.SyncFolderId.Item = distinguishedFolderId; } // Set the value of SyncState element if this element is present in the request. if (isSyncStatePresent) { request.SyncState = string.Empty; } return(request); }
/// <summary> /// Create a request without optional elements for SyncFolderHierarchy operation. /// </summary> /// <returns>An instance of SyncFolderHierarchyType used by the SyncFolderHierarchy operation.</returns> public static SyncFolderHierarchyType CreateSyncFolderHierarchyRequest() { // Only FolderShape is required element. SyncFolderHierarchyType request = new SyncFolderHierarchyType(); request.FolderShape = new FolderResponseShapeType(); request.FolderShape.BaseShape = DefaultShapeNamesType.IdOnly; return(request); }
/// <summary> /// Gets synchronization information that enables folders to be synchronized /// between a client and a server. /// </summary> /// <param name="request">A request to the SyncFolderHierarchy operation.</param> /// <returns>A response from the SyncFolderHierarchy operation.</returns> public SyncFolderHierarchyResponseType SyncFolderHierarchy(SyncFolderHierarchyType request) { if (request == null) { throw new ArgumentException("The SyncFolderHierarchy request should not be null."); } SyncFolderHierarchyResponseType response = this.exchangeServiceBinding.SyncFolderHierarchy(request); Site.Assert.IsNotNull(response, "If the operation is successful, the response should not be null."); this.VerifySoapVersion(); this.VerifyTransportType(); this.VerifySyncFolderHierarchyResponse(response, this.exchangeServiceBinding.IsSchemaValidated); return(response); }
/// <remarks/> public void SyncFolderHierarchyAsync(SyncFolderHierarchyType SyncFolderHierarchy1, object userState) { if ((this.SyncFolderHierarchyOperationCompleted == null)) { this.SyncFolderHierarchyOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSyncFolderHierarchyOperationCompleted); } this.InvokeAsync("SyncFolderHierarchy", new object[] { SyncFolderHierarchy1}, this.SyncFolderHierarchyOperationCompleted, userState); }
/// <remarks/> public void SyncFolderHierarchyAsync(SyncFolderHierarchyType SyncFolderHierarchy1) { this.SyncFolderHierarchyAsync(SyncFolderHierarchy1, null); }
/// <remarks/> public System.IAsyncResult BeginSyncFolderHierarchy(SyncFolderHierarchyType SyncFolderHierarchy1, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("SyncFolderHierarchy", new object[] { SyncFolderHierarchy1}, callback, asyncState); }
public void MSOXWSSYNC_S03_TC02_SyncFolderHierarchy_WithAllOptionalElements() { #region Step 1. Client invokes SyncFolderHierarchy operation to server to get initial syncState. // Add inbox folder and search folder into list this.FolderIdNameType.Add(DistinguishedFolderIdNameType.inbox); this.FolderIdNameType.Add(DistinguishedFolderIdNameType.searchfolders); // Get the initial syncState SyncFolderHierarchyResponseMessageType[] responseMessage = new SyncFolderHierarchyResponseMessageType[this.FolderIdNameType.Count]; SyncFolderHierarchyResponseType[] response = new SyncFolderHierarchyResponseType[this.FolderIdNameType.Count]; for (int i = 0; i < this.FolderIdNameType.Count; i++) { SyncFolderHierarchyType request = TestSuiteHelper.CreateSyncFolderHierarchyRequest(this.FolderIdNameType[i], DefaultShapeNamesType.Default, true, true); response[i] = this.SYNCAdapter.SyncFolderHierarchy(request); responseMessage[i] = TestSuiteHelper.EnsureResponse <SyncFolderHierarchyResponseMessageType>(response[i]); } #endregion #region Step 2. Client invokes CreateSubFolder to create folders. // Generate the created folder name string firstLevelFolderName = Common.GenerateResourceName(this.Site, "FirstLevelFolder"); string secondLevelFolderName = Common.GenerateResourceName(this.Site, "SecondLevelFolder"); // Create folders under inbox, calendar, contacts, tasks and search folder this.CreateMultipleFolders( Common.GetConfigurationPropertyValue("User1Name", this.Site), Common.GetConfigurationPropertyValue("User1Password", this.Site), Common.GetConfigurationPropertyValue("Domain", this.Site), this.FolderIdNameType, firstLevelFolderName, secondLevelFolderName, TestSuiteBase.SearchText); #endregion #region Step 3. Client invokes SyncFolderHierarchy operation to sync the operation result in Step 2. // Call SyncFolderHierarchy operation to sync the create folder operation result for (int i = 0; i < this.FolderIdNameType.Count; i++) { responseMessage[i] = this.GetSyncFolderHierarchyResponseMessage(responseMessage[i], this.FolderIdNameType[i]); } #endregion #region Step 4. Client invokes FindAndUpdateFolderName to change the folder's name. // Generate a new folder name string newFolderName = Common.GenerateResourceName(this.Site, "NewFolderName"); // Update the specific folder's name to a new one this.UpdateMultipleFolders( Common.GetConfigurationPropertyValue("User1Name", this.Site), Common.GetConfigurationPropertyValue("User1Password", this.Site), Common.GetConfigurationPropertyValue("Domain", this.Site), this.FolderIdNameType, firstLevelFolderName, secondLevelFolderName, newFolderName); #endregion #region Step 5. Client invokes SyncFolderHierarchy operation with previous syncState to sync the operation result in Step 4. // Call SyncFolderHierarchy operation to sync the update folder operation result for (int i = 0; i < this.FolderIdNameType.Count; i++) { responseMessage[i] = this.GetSyncFolderHierarchyResponseMessage(responseMessage[i], this.FolderIdNameType[i]); } #endregion #region Step 6. Client invokes FindAndDeleteSubFolder to delete the folder that created in step 2. // Delete the sub folder that created in step 2 this.DeleteMultipleFolders( Common.GetConfigurationPropertyValue("User1Name", this.Site), Common.GetConfigurationPropertyValue("User1Password", this.Site), Common.GetConfigurationPropertyValue("Domain", this.Site), this.FolderIdNameType, newFolderName); #endregion #region Step 7. Client invokes SyncFolderHierarchy operation with previous syncState to sync the operation result of Step 6. // Call SyncFolderHierarchy operation to sync the delete folder operation result for (int i = 0; i < this.FolderIdNameType.Count; i++) { responseMessage[i] = this.GetSyncFolderHierarchyResponseMessage(responseMessage[i], this.FolderIdNameType[i]); } #endregion }