/// <summary>
        /// Handles the DescribeParts message from a store.
        /// </summary>
        /// <param name="header">The message header.</param>
        /// <param name="message">The DeletePartsByRange message.</param>
        protected virtual void HandleDescribeParts(IMessageHeader header, DescribeParts message)
        {
            var args = Notify(OnDescribeParts, header, message, new PartsMetadata());

            HandleDescribeParts(args);

            if (!args.Cancel)
            {
                PartsMetadata(header, args.Context);
            }
        }
        /// <summary>
        /// Gets the metadata for all list items in a growing object.
        /// </summary>
        /// <param name="uri">The URI of the parent object.</param>
        /// <returns>The message identifier.</returns>
        public long DescribeParts(string uri)
        {
            var header = CreateMessageHeader(Protocols.GrowingObject, MessageTypes.GrowingObject.DescribeParts);

            var message = new DescribeParts
            {
                Uri = uri
            };

            return(Session.SendMessage(header, message));
        }