/// <summary> /// Gets an estimate of the number of items in the specific folder. /// </summary> /// <param name="syncKey">The latest SyncKey.</param> /// <param name="collectionId">The CollectionId of the folder.</param> /// <returns>The response of GetItemEstimate command.</returns> protected GetItemEstimateResponse CallGetItemEstimateCommand(string syncKey, string collectionId) { List <Request.ItemsChoiceType10> itemsElementName = new List <Request.ItemsChoiceType10>() { Request.ItemsChoiceType10.SyncKey, Request.ItemsChoiceType10.CollectionId, }; List <object> items = new List <object>() { syncKey, collectionId, }; if (Common.GetConfigurationPropertyValue("ActiveSyncProtocolVersion", this.Site) != "12.1") { itemsElementName.Add(Request.ItemsChoiceType10.ConversationMode); items.Add(true); } // Create GetItemEstimate command request. Request.GetItemEstimateCollection collection = new Request.GetItemEstimateCollection { ItemsElementName = itemsElementName.ToArray(), Items = items.ToArray() }; GetItemEstimateRequest getItemEstimateRequest = Common.CreateGetItemEstimateRequest(new Request.GetItemEstimateCollection[] { collection }); GetItemEstimateResponse getItemEstimateResponse = this.CONAdapter.GetItemEstimate(getItemEstimateRequest); return(getItemEstimateResponse); }
/// <summary> /// Gets an estimated number of items in a collection or folder on the server that has to be synchronized. /// </summary> /// <param name="request">A GetItemEstimateRequest object that contains the request information.</param> /// <returns>GetItemEstimate command response</returns> public GetItemEstimateResponse GetItemEstimate(GetItemEstimateRequest request) { GetItemEstimateResponse response = this.activeSyncClient.GetItemEstimate(request); this.VerifyTransportRequirements(); this.VerifyWBXMLCapture(CommandName.GetItemEstimate, response); this.VerifyGetItemEstimateCommand(response); return(response); }
/// <summary> /// Gets an estimate of the number of items in a collection or folder on the server that have to be synchronized. /// </summary> /// <param name="getItemEstimateRequest">A GetItemEstimateRequest object that contains the request information.</param> /// <returns>GetItemEstimate command response.</returns> public GetItemEstimateResponse GetItemEstimate(GetItemEstimateRequest getItemEstimateRequest) { GetItemEstimateResponse getItemEstimateResponse = this.activeSyncClient.GetItemEstimate(getItemEstimateRequest); Site.Assert.IsNotNull(getItemEstimateResponse, "The GetItemEstimate response returned from server should not be null."); // Verify related requirements. this.VerifyCommonRequirements(); return(getItemEstimateResponse); }
internal int GetCountOfItemsToSync(string folderId, EasSyncOptions options) { GetItemEstimateRequest getItemEstimateRequest = EasRequestGenerator.CreateEstimateRequest(options.SyncKey, folderId, options.RecentOnly); GetItemEstimateResponse itemEstimate = this.GetItemEstimate(getItemEstimateRequest); if (itemEstimate.Estimate == null) { return(0); } return(itemEstimate.Estimate.Value); }
/// <summary> /// Gets an estimate of the number of items in the specific folder. /// </summary> /// <param name="syncKey">The latest SyncKey.</param> /// <param name="collectionId">The CollectionId of the folder.</param> /// <returns>The response of GetItemEstimate command.</returns> protected GetItemEstimateResponse CallGetItemEstimateCommand(string syncKey, string collectionId) { // Create GetItemEstimate command request. Request.GetItemEstimateCollection collection = new Request.GetItemEstimateCollection { CollectionId = collectionId, SyncKey = syncKey }; if (Common.GetConfigurationPropertyValue("ActiveSyncProtocolVersion", this.Site) != "12.1") { collection.ConversationMode = true; collection.ConversationModeSpecified = true; } GetItemEstimateRequest getItemEstimateRequest = Common.CreateGetItemEstimateRequest(new Request.GetItemEstimateCollection[] { collection }); GetItemEstimateResponse getItemEstimateResponse = this.CONAdapter.GetItemEstimate(getItemEstimateRequest); return(getItemEstimateResponse); }
GetItemEstimateResponse IEasConnection.GetItemEstimate(GetItemEstimateRequest getItemEstimateRequest) { GetItemEstimateCommand getItemEstimateCommand = new GetItemEstimateCommand(this.EasConnectionSettings); return(getItemEstimateCommand.Execute(getItemEstimateRequest)); }
private GetItemEstimateResponse GetItemEstimate(GetItemEstimateRequest getItemEstimateRequest) { return(EasConnectionWrapper.WrapException <GetItemEstimateResponse>(() => this.wrappedObject.GetItemEstimate(getItemEstimateRequest), (ConnectionsTransientException e) => new EasCountFailedTransientException(e.Message, e), (ConnectionsPermanentException e) => new EasCountFailedPermanentException(e.Message, e))); }
/// <summary> /// Creates a GetItemEstimateRequest using the specified GetItemEstimateCollection array /// </summary> /// <param name="collections">Specified GetItemEstimateCollection array</param> /// <returns>A GetItemEstimateRequest instance</returns> public static GetItemEstimateRequest CreateGetItemEstimateRequest(Request.GetItemEstimateCollection[] collections) { GetItemEstimateRequest request = new GetItemEstimateRequest(); Request.GetItemEstimate requestData = new Request.GetItemEstimate { Collections = collections }; request.RequestData = requestData; return request; }
/// <summary> /// Creates an empty GetItemEstimateRequest instance /// </summary> /// <returns>An empty GetItemEstimateRequest instance</returns> public static GetItemEstimateRequest CreateGetItemEstimateRequest() { GetItemEstimateRequest request = new GetItemEstimateRequest(); Request.GetItemEstimate requestData = new Request.GetItemEstimate(); request.RequestData = requestData; return request; }
GetItemEstimateResponse IEasConnection.GetItemEstimate(GetItemEstimateRequest getItemEstimateRequest) { return(this.innerConnection.GetItemEstimate(getItemEstimateRequest)); }
public void MSASCMD_S07_TC09_GetItemEstimate_Status2() { Site.Assume.AreNotEqual<string>("12.1", Common.GetConfigurationPropertyValue("ActiveSyncProtocolVersion", this.Site), "The Options element is not supported when the MS-ASProtocolVersion header is set to 12.1. MS-ASProtocolVersion header value is determined using Common PTFConfig property named ActiveSyncProtocolVersion."); this.Sync(TestSuiteBase.CreateEmptySyncRequest(this.User1Information.ContactsCollectionId)); #region Call method GetItemEstimate with two collection ids, one is invalid CollectionId, to get an estimate of the number of items in Contacts folder on server. GetItemEstimateRequest getItemEstimateRequest = new GetItemEstimateRequest { RequestData = new Request.GetItemEstimate { Collections = new Request.GetItemEstimateCollection[] { new Request.GetItemEstimateCollection { CollectionId = this.User1Information.ContactsCollectionId, SyncKey = this.LastSyncKey, Options = new Request.Options[] { new Request.Options { Items = new object[] { "Contacts" }, ItemsElementName = new Request.ItemsChoiceType1[] { Request.ItemsChoiceType1.Class } } } }, new Request.GetItemEstimateCollection { CollectionId = Common.GenerateResourceName(Site, "InvalidCollectionId"), SyncKey = this.LastSyncKey, Options = new Request.Options[] { new Request.Options { Items = new object[] { "Email" }, ItemsElementName = new Request.ItemsChoiceType1[] { Request.ItemsChoiceType1.Class } } } } } } }; GetItemEstimateResponse getItemEstimateResponse = CMDAdapter.GetItemEstimate(getItemEstimateRequest); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4135"); // Verify MS-ASCMD requirement: MS-ASCMD_R4135 // When the Status value is 2, it means one of the specified CollectionIds is invalid. Site.CaptureRequirementIfAreEqual<int>( 2, int.Parse(getItemEstimateResponse.ResponseData.Response[1].Status), 4135, @"[In Status(GetItemEstimate)] [When the scope is] Item, [the meaning of the status value] 2 [is] A collection was invalid or one of the specified collection IDs was invalid."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4136"); // Verify MS-ASCMD requirement: MS-ASCMD_R4136 // When the Status value is 2, it means one or more of the specified folders does not exist or an incorrect folder is requested.. Site.CaptureRequirementIfAreEqual<int>( 2, int.Parse(getItemEstimateResponse.ResponseData.Response[1].Status), 4136, @"[In Status(GetItemEstimate)] [When the scope is Item], [the cause of the status value 2 is] One or more of the specified folders does not exist or an incorrect folder was requested."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4130"); // Verify MS-ASCMD requirement: MS-ASCMD_R4130 bool isVerifyR4130 = int.Parse(getItemEstimateResponse.ResponseData.Response[0].Status) == 1 && int.Parse(getItemEstimateResponse.ResponseData.Response[1].Status) != 1; Site.CaptureRequirementIfIsTrue( isVerifyR4130, 4130, @"[In Status(GetItemEstimate)] However, if the failure occurs at the Collection (section 2.2.3.29.1) level, a Status value is returned per Collection as a child of the Response element."); #endregion }
/// <summary> /// Gets an estimate of the number of items in a collection or folder on the server that have to be synchronized. /// </summary> /// <param name="getItemEstimateRequest">A GetItemEstimateRequest object that contains the request information.</param> /// <returns>GetItemEstimate command response.</returns> public GetItemEstimateResponse GetItemEstimate(GetItemEstimateRequest getItemEstimateRequest) { GetItemEstimateResponse getItemEstimateResponse = this.activeSyncClient.GetItemEstimate(getItemEstimateRequest); Site.Assert.IsNotNull(getItemEstimateResponse, "The GetItemEstimate response returned from server should not be null."); // Verify related requirements. this.VerifyCommonRequirements(); return getItemEstimateResponse; }