Пример #1
0
        /// <summary>
        /// Saves image data to image data folder file. This function increments image reference counter.
        /// </summary>
        /// <param name="ImageHash">Image data SHA256 hash.</param>
        /// <param name="Data">Binary image data to save.</param>
        /// <returns>true if the function succeeds, false otherwise.</returns>
        public static async Task <bool> SaveImageDataAsync(byte[] ImageHash, byte[] Data)
        {
            bool res = false;

            int newRefCnt = imageManager.AddImageReference(ImageHash);

            if (newRefCnt == 1)
            {
                // Save data to file only if this is the first reference of the image.
                string fileName = GetImageFileName(ImageHash);
                res = await SaveImageDataAsync(fileName, Data);
            }
            else
            {
                res = true;
            }

            if (!res)
            {
                imageManager.RemoveImageReference(ImageHash);
            }

            return(res);
        }