private void UpdateAssetInfoStatus(string newStatus)
        {
            if (!Settings.Default.CreateUnityAssetBundles)
            {
                return;
            }

            assetInfo.Status = newStatus;
            AssetCatalog.UpdateAssetInfo(assetInfo, Path.Combine(bundleOutputFolderPath, "bundleInfo.json"));
        }
        public static void UpdateFolders()
        {
            if (!Directory.Exists(Settings.Default.BaseDataPath))
            {
                Directory.CreateDirectory(Settings.Default.BaseDataPath);
            }

            if (Directory.GetDirectories(Settings.Default.BaseDataPath).Length == 0)
            {
                Directory.CreateDirectory(Path.Combine(Settings.Default.BaseDataPath, "Public"));
            }

            /// The data folder has subfolders to isolate different groups.  Each group has their own set of user folders, upload folder and output folders.
            /// Each level also has it's own set of "public" folders.
            foreach (var orgFolderPath in Directory.GetDirectories(Settings.Default.BaseDataPath))
            {
                ScanUploadFolder(orgFolderPath);
                if (Settings.Default.CreateUnityAssetBundles)
                {
                    AssetCatalog.UpdateCatalog(orgFolderPath);
                }
            }
        }
        public FileProcessor(string path)
        {
            zipFileToProcess = path;
            zipFileName      = Path.GetFileNameWithoutExtension(zipFileToProcess);
            assetId          = zipFileName;

            SetupFolders();

            if (Settings.Default.CreateUnityAssetBundles)
            {
                if (AssetCatalog.LoadAssetInfo(Path.Combine(bundleOutputFolderPath, "bundleInfo.json")) != null)
                {
                    assetInfo = AssetCatalog.LoadAssetInfo(Path.Combine(bundleOutputFolderPath, "bundleInfo.json"));
                    // Existing asset, just updating.
                    if (string.IsNullOrEmpty(assetInfo.Id))
                    {
                        assetInfo.Id = assetId;
                    }
                    assetInfo.Version += 1;
                    assetInfo.OwnerId  = userFolderName;
                    assetInfo.Updated  = DateTime.Now.ToString();
                    UpdateAssetInfoStatus("waiting for update");
                }
                else
                {
                    // New asset.
                    assetInfo.Id        = assetId;
                    assetInfo.OwnerId   = userFolderName;
                    assetInfo.Name      = zipFileName;
                    assetInfo.Created   = DateTime.Now.ToString();
                    assetInfo.Updated   = assetInfo.Created;
                    assetInfo.Thumbnail = zipFileName + ".png";
                    assetInfo.Bundles   = new List <AssetCatalog.LODBundle>();
                    UpdateAssetInfoStatus("waiting");
                }
            }
        }