private static void CheckOutputLogs(ProjectDto proj, string simuId) { var api = new SimulationsApi(); var outputs = api.GetSimulationLogs(proj.Owner.Name, proj.Name, simuId.ToString()); Console.WriteLine(outputs); }
private static void CreateSimulation(ProjectDto project) { // Get project var proj = project; //Recipe var recipeApi = new RecipesApi(); // why Recipe returns repository RepositoryAbridgedDto recipe = recipeApi.ListRecipes(owner: new[] { "ladybug-tools" }.ToList(), _public: true).Resources.First(_ => _.Name == "daylight-factor"); // create a recipeSelection var rec = new RecipeSelection(recipe.Owner.Name, recipe.Name); // Upload artifacts var dir = @"C:\Users\mingo\Downloads\Compressed\project_folder\project_folder"; //UploadDirectory(proj, dir); // create a recipe argument var arg = new Arguments() { Parameters = new List <ArgumentParameter>() { new ArgumentParameter("radiance-parameters", "-I -ab 1 -h"), new ArgumentParameter("sensor-grid-count", "10") }, Artifacts = new List <ArgumentArtifact>() { new ArgumentArtifact("input-grid", new ArtifaceSourcePath("model/grid/room.pts")), new ArgumentArtifact("model", new ArtifaceSourcePath("model/")) } }; Console.WriteLine("-------------------Arguments:-------------------------"); Console.WriteLine(arg.ToJson()); // create a new Simulation var api = new SimulationsApi(); var simu = new SubmitSimulationDto(rec, arg); var ret = api.CreateSimulation(proj.Owner.Name, proj.Name, simu); Console.WriteLine(ret.Id); Console.WriteLine(ret.Message); // check simulation status var done = CheckSimulationStatus(proj, ret.Id.ToString()).Result; var outputs = api.GetSimulationLogs(proj.Owner.Name, proj.Name, ret.Id.ToString()); //return recipes; }
private static async Task <bool> CheckSimulationStatus(ProjectDto proj, string simuId) { var api = new SimulationsApi(); var status = api.GetSimulation(proj.Owner.Name, proj.Name, simuId); var startTime = status.StartedAt.ToUniversalTime(); while (status.Status == "Running") { await Task.Delay(1000); var runseconds = Math.Round((DateTime.UtcNow - startTime).TotalSeconds); Console.WriteLine($"{status.Status}: [{runseconds} s]"); // update status status = api.GetSimulation(proj.Owner.Name, proj.Name, simuId); } var totalSeconds = Math.Round((DateTime.UtcNow - startTime).TotalSeconds); Console.WriteLine($"{status.Status}: [{totalSeconds} s]"); return(true); }
public void Init() { instance = new SimulationsApi(); }