Beispiel #1
0
        /// <summary>
        /// This ROP deletes all messages and subfolders from a folder.
        /// </summary>
        /// <param name="handle">The handle to operate.</param>
        /// <param name="wantAsynchronous">This value specifies whether the operation is to be executed asynchronously with status reported via RopProgress.</param>
        /// <param name="needVerify">Whether need to verify the response.</param>
        /// <returns>The response of this ROP.</returns>
        private RopEmptyFolderResponse RopEmptyFolder(uint handle, byte wantAsynchronous, bool needVerify)
        {
            this.rawDataValue      = null;
            this.responseValue     = null;
            this.responseSOHsValue = null;

            RopEmptyFolderRequest emptyFolderRequest = new RopEmptyFolderRequest()
            {
                RopId                = (byte)RopId.RopEmptyFolder,
                LogonId              = LogonId,
                InputHandleIndex     = (byte)HandleIndex.FirstIndex,
                WantAsynchronous     = wantAsynchronous,
                WantDeleteAssociated = Convert.ToByte(true),
            };

            this.responseSOHsValue = this.ProcessSingleRop(emptyFolderRequest, handle, ref this.responseValue, ref this.rawDataValue, RopResponseType.SuccessResponse);
            RopEmptyFolderResponse emptyFolderResponse = (RopEmptyFolderResponse)this.responseValue;

            if (needVerify)
            {
                Site.Assert.AreEqual((uint)RopResponseType.SuccessResponse, emptyFolderResponse.ReturnValue, string.Format("RopEmptyFolder Failed! Error: 0x{0:X8}", emptyFolderResponse.ReturnValue));
            }

            return(emptyFolderResponse);
        }
        /// <summary>
        /// Soft deletes all messages and subfolders from a folder without deleting the folder itself.
        /// </summary>
        /// <param name="ropEmptyFolderRequest">RopEmptyFolderRequest object.</param>
        /// <param name="insideObjHandle">Server object handle in EmptyFolderRequest.</param>
        /// <param name="responseSOHTable">Server objects handles in RopEmptyFolderResponse.</param>
        /// <returns>RopEmptyFolderResponse object.</returns>
        public RopEmptyFolderResponse EmptyFolder(RopEmptyFolderRequest ropEmptyFolderRequest, uint insideObjHandle, ref List <List <uint> > responseSOHTable)
        {
            object temp = new object();

            this.ExcuteRopCall((ISerializable)ropEmptyFolderRequest, insideObjHandle, ref temp, ref responseSOHTable, ref this.rawData);
            RopEmptyFolderResponse ropEmptyFolderResponse = (RopEmptyFolderResponse)temp;

            #region Capture Code
            // The ReturnValue equal to 0x00000000 indicate ROP operation success
            if (0x00000000 == ropEmptyFolderResponse.ReturnValue)
            {
                this.VerifyRopEmptyFolder(ropEmptyFolderResponse);
            }
            #endregion

            return(ropEmptyFolderResponse);
        }