/// <summary>
        /// Build the RopRegisterNotification request.
        /// </summary>
        /// <param name="folderId">The folder used to register notification.</param>
        /// <returns>The RopRegisterNotification request.</returns>
        private RopRegisterNotificationRequest RegisterNotificationRequest(ulong folderId)
        {
            RopRegisterNotificationRequest registerNotificationRequest = new RopRegisterNotificationRequest()
            {
                RopId = (byte)RopId.RopRegisterNotification,
                LogonId = ConstValues.LogonId,

                // Set InputHandleIndex to 0x00, which specifies the location in the Server object handle table
                // where the handle for the input Server object is stored.
                InputHandleIndex = 0,

                // Set OutputHandleIndex to 0x01, which specifies the location in the Server object handle table where the handle,
                // for the output Server object will be stored.
                OutputHandleIndex = 1,

                // The server MUST send notifications to the client when new object events occur within the scope of interest.
                NotificationTypes = (byte)NotificationTypes.NewMail,

                // This field is reserved. The field value MUST be 0x00.
                Reserved = 0x00, 
                
                // If the scope for notifications is the entire database, the value of wantWholeStore is true; otherwise, FALSE (0x00).
                WantWholeStore = 0x00,

                // Set the value of the specified folder ID. 
                FolderId = folderId,
                MessageId = 0
            };

            return registerNotificationRequest;
        }