Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
        GetItemEstimateResponse IEasConnection.GetItemEstimate(GetItemEstimateRequest getItemEstimateRequest)
        {
            GetItemEstimateCommand getItemEstimateCommand = new GetItemEstimateCommand(this.EasConnectionSettings);

            return(getItemEstimateCommand.Execute(getItemEstimateRequest));
        }
Ejemplo n.º 7
0
 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)));
 }
Ejemplo n.º 8
0
 /// <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;
 }
Ejemplo n.º 9
0
 /// <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;
 }
Ejemplo n.º 10
0
 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
        }
Ejemplo n.º 12
0
        /// <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;
        }