Esempio n. 1
0
        /// <summary>
        /// Get a project by current user and name. If not found, then create a new project.
        /// </summary>
        /// <param name="user"></param>
        /// <param name="projectName"></param>
        /// <returns></returns>
        public static ProjectDto GetAProject(PrivateUserDto user, string projectName)
        {
            var api = new ProjectsApi();

            try
            {
                var d = api.GetProject(user.Username, projectName);
                return(d);
            }
            catch (ApiException e)
            {
                // Project not found
                if (e.ErrorCode == 404)
                {
                    var ifPublic = projectName == "unnamed";
                    var res      = api.CreateProject(user.Username, new PatchProjectDto(projectName, _public: ifPublic));
                    return(GetAProject(user, projectName));
                }
                throw e;
            }


            //var d = GetProjects(user).FirstOrDefault(_ => _.Name == projectName);
            //return d;
        }
Esempio n. 2
0
        public ScheduledJobInfo(string clouldProjectName, string projectOwner, string jobID)
        {
            var projApi = new ProjectsApi();

            this.Project  = projApi.GetProject(projectOwner, clouldProjectName);
            this.CloudJob = GetJob(this.Project, jobID);
            this.Recipe   = this.CloudJob.Recipe;
        }
Esempio n. 3
0
        public Project CreateProject(string projName)
        {
            var projs = api.ListProjects(owner: new List <string>()
            {
                Helper.CurrentUser.Username
            }).Resources;
            var found = projs.FirstOrDefault(_ => _.Name == this.NewProject);

            var owner         = Helper.CurrentUser.Username;
            var projectCreate = new ProjectCreate(projName);
            var response      = api.CreateProject(owner, projectCreate);
            var proj          = api.GetProject(owner, projName);

            return(proj);
        }
Esempio n. 4
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);
                }
            }
        }
Esempio n. 5
0
        //[Test]
        public void DownloadBigAssetTest()
        {
            var owner    = "studio-greenaarch";
            var projName = "puri-market-complex";
            var instance = new ProjectsApi();
            var proj     = instance.GetProject(owner, projName);


            var runApi = new Api.RunsApi();
            // energy simu
            var runId   = "4a16380d-0eae-59ea-bf03-871cb4163b7b";
            var run     = runApi.GetRun(owner, projName, runId);
            var runInfo = new RunInfo(proj, run);


            var assets = runInfo.GetOutputAssets("grasshopper").OfType <RunAssetBase>().Where(_ => _.Name == "sql").ToList();

            var task       = runInfo.DownloadRunAssetsAsync(assets, useCached: false);
            var downloaded = task.Result;


            foreach (var savedAsset in downloaded)
            {
                var item = savedAsset;

                if (item.IsPathAsset())
                {
                    Console.WriteLine($"Is Saved {item.Name}:{item.IsSaved()} to {item.LocalPath}");
                    Assert.IsTrue(item.IsSaved());
                }
                else
                {
                    var v = string.Join(",", item.Value);
                    Console.WriteLine($"Value {item.Name}: {v}");
                    Assert.IsTrue(!string.IsNullOrEmpty(v));
                }
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Get a project by current user and name. If not found, then create a new project.
        /// </summary>
        /// <param name="user"></param>
        /// <param name="projectName"></param>
        /// <returns></returns>
        public static Project GetAProject(string userName, string projectName)
        {
            var api = new ProjectsApi();

            try
            {
                var d = api.GetProject(userName, projectName);
                return(d);
            }
            catch (ApiException e)
            {
                // Project not found and person account, create a default demo project.
                if (e.ErrorCode == 404 && userName == Helper.CurrentUser.Username)
                {
                    Logger.Information($"Project {projectName} is not found in account {userName}. Now creating this project.");
                    var ifPublic = projectName == "demo";
                    var res      = api.CreateProject(userName, new ProjectCreate(projectName, _public: ifPublic));
                    return(GetAProject(userName, projectName));
                }
                Helper.Logger.Error(e, $"GetAProject: failed to get the project {userName}/{projectName}");
                throw e;
            }
        }