Example #1
0
        public void DownloadAssetTest()
        {
            var instance = new ProjectsApi();
            var proj     = instance.GetProject(Helper.CurrentUser.Username, "demo");


            var runApi = new Api.RunsApi();
            // energy simu
            var run     = runApi.GetRun(Helper.CurrentUser.Username, "demo", "908adb92-6339-4e34-8f01-7ddb55c52da2");
            var runInfo = new RunInfo(proj, run);


            var assets = runInfo.GetOutputAssets("grasshopper").OfType <RunAssetBase>().ToList();
            var inputs = runInfo.GetInputAssets();

            assets.AddRange(inputs);

            var task       = runInfo.DownloadRunAssetsAsync(assets, useCached: false);
            var downloaded = task.Result;
            // download cached.
            var task2            = runInfo.DownloadRunAssetsAsync(assets, useCached: true);
            var downloadedCached = task2.Result;

            var allDownloaded = downloaded.Zip(downloadedCached, (d, dc) => new { nonCached = d, Cached = dc });

            foreach (var savedAsset in allDownloaded)
            {
                var item       = savedAsset.nonCached;
                var itemCached = savedAsset.Cached;

                if (item.IsPathAsset())
                {
                    Console.WriteLine($"Is Saved {item.Name}:{item.IsSaved()} to {item.LocalPath}");
                    Console.WriteLine($"Is Saved (cached) {itemCached.Name}:{itemCached.IsSaved()} to {itemCached.LocalPath}");
                    Assert.IsTrue(item.IsSaved());
                    Assert.IsTrue(item.LocalPath == itemCached.LocalPath);
                }
                else
                {
                    var v  = string.Join(",", item.Value);
                    var v2 = string.Join(",", itemCached.Value);
                    Console.WriteLine($"Value {item.Name}: {v}");
                    Console.WriteLine($"Value(cached) {itemCached.Name}: {v2}");
                    Assert.IsTrue(!string.IsNullOrEmpty(v));
                    Assert.IsTrue(v == v2);
                }
            }
        }
Example #2
0
        private static void DownloadAssets(Project proj)
        {
            var runApi = new PollinationSDK.Api.RunsApi();

            var firstRun = runApi.ListRuns(proj.Owner.Name, proj.Name, page: 1, perPage: 1).Resources.First();
            var runInfo  = new RunInfo(proj, firstRun);

            // get all output assets to download

            var assets      = runInfo.GetOutputAssets("grasshopper").OfType <RunAssetBase>().ToList();
            var inputAssets = runInfo.GetInputAssets();

            assets = assets.Concat(inputAssets).ToList();

            var savedPath = System.IO.Path.GetTempPath();
            var task      = Task.Run(async() => await DownloadAsync(runInfo, assets, savedPath));
            var filePaths = task.GetAwaiter().GetResult();

            foreach (var item in filePaths)
            {
                Console.WriteLine($"Asset: {item.Name}\nSaved Path: {item.LocalPath}");
            }
        }