/// <summary>
        /// Gets all the text items in a slide from a 3rd party storage
        /// </summary>
        /// <param name="slideNumber"></param>
        /// <param name="withEmpty">Set this to true to include items for shapes without text</param>
        /// <param name="storageType"></param>
        /// <param name="storageName">Name of the storage</param>
        /// <param name="folderName">In case of Amazon S3 storage the folder's path starts with Amazon S3 Bucket name.</param>
        /// <returns>A list containing all the text items in a slide</returns>
        public List <TextItem> GetAllTextItems(int slideNumber, bool withEmpty,
                                               StorageType storageType, string storageName, string folderName)
        {
            //build URI to get all text items in a slide
            StringBuilder strURI = new StringBuilder(Product.BaseProductUri + "/slides/" + FileName
                                                     + "/slides/" + slideNumber + "/textItems?withEmpty=" + withEmpty +
                                                     (string.IsNullOrEmpty(folderName) ? "" : "&folder=" + folderName));

            switch (storageType)
            {
            case StorageType.AmazonS3:
                strURI.Append("&storage=" + storageName);
                break;
            }
            string signedURI = Utils.Sign(strURI.ToString());

            Stream responseStream = Utils.ProcessCommand(signedURI, "GET");

            StreamReader reader  = new StreamReader(responseStream);
            string       strJSON = reader.ReadToEnd();

            //Parse the json string to JObject
            JObject parsedJSON = JObject.Parse(strJSON);

            //Deserializes the JSON to a object.
            TextItemsResponse textItemsResponse = JsonConvert.DeserializeObject <TextItemsResponse>(parsedJSON.ToString());

            return(textItemsResponse.TextItems.Items);
        }
        /// <summary>
        /// Gets all the text items in a slide
        /// </summary>
        /// <param name="slideNumber"></param>
        /// /// <param name="withEmpty">Set this to true to include items for shapes without text</param>
        /// <returns>A list containing all the text items in a slide</returns>
        public List <TextItem> GetAllTextItems(int slideNumber, bool withEmpty)
        {
            //build URI to get all text items in a slide
            string strURI    = Product.BaseProductUri + "/slides/" + FileName + "/slides/" + slideNumber + "/textItems?withEmpty=" + withEmpty;
            string signedURI = Utils.Sign(strURI);

            Stream responseStream = Utils.ProcessCommand(signedURI, "GET");

            StreamReader reader  = new StreamReader(responseStream);
            string       strJSON = reader.ReadToEnd();

            //Parse the json string to JObject
            JObject parsedJSON = JObject.Parse(strJSON);

            //Deserializes the JSON to a object.
            TextItemsResponse textItemsResponse = JsonConvert.DeserializeObject <TextItemsResponse>(parsedJSON.ToString());

            return(textItemsResponse.TextItems.Items);
        }