/// <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; }
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; }
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); }
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); } } }
//[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)); } } }
/// <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; } }