/// <summary>
        /// Serializes the object to JSON.
        /// </summary>
        /// <param name="writer">The <see cref="T: Newtonsoft.Json.JsonWriter" /> to write to.</param>
        /// <param name="obj">The object to serialize to JSON.</param>
        internal static void Serialize(JsonWriter writer, ImageStoreContent obj)
        {
            // Required properties are always serialized, optional properties are serialized when not null.
            writer.WriteStartObject();
            if (obj.StoreFiles != null)
            {
                writer.WriteEnumerableProperty(obj.StoreFiles, "StoreFiles", FileInfoConverter.Serialize);
            }

            if (obj.StoreFolders != null)
            {
                writer.WriteEnumerableProperty(obj.StoreFolders, "StoreFolders", FolderInfoConverter.Serialize);
            }

            writer.WriteEndObject();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// List all blobs under the the given relative blob path/sub blob path
        /// </summary>
        /// <param name="tag">Location (relative to RootUri)</param>
        /// <param name="isRecursive">flag list subhierarchy</param>
        /// <param name="timeout">The timeout for performing the listing operation</param>
        /// <returns>All blobs within the input blob path/sub blob path</returns>
        public ImageStoreContent ListContentWithDetails(string tag, bool isRecursive, TimeSpan timeout)
        {
            ImageStoreContent content = null;
            TimeoutHelper     helper  = timeout == TimeSpan.MaxValue ? null : new TimeoutHelper(timeout);

            try
            {
                using (XStoreFileOperations xstoreFileOperation =
                           new XStoreFileOperations(new XStoreParameters(this.providerParams.ConnectionString, this.providerParams.SecondaryConnectionString, this.providerParams.ContainerName)))
                {
                    content = xstoreFileOperation.ListXStoreFile(XStoreCommon.FormatXStoreUri(tag), isRecursive, helper);
                }
            }
            catch (Exception ex)
            {
                this.HandleException(ex);
                throw;
            }

            return(content);
        }