public static async Task <ProjectIteration[]> GetProjectIterations(ICustomVisionTrainingClient trainingClient, string predictionResourceId, Guid[] projects) { var result = new List <ProjectIteration>(); foreach (var project in projects) { var iterations = await trainingClient.GetIterationsAsync(project); var projectEntity = await trainingClient.GetProjectAsync(project); var domain = await trainingClient.GetDomainAsync(projectEntity.Settings.DomainId); var iteration = iterations.Where(i => i.Status == "Completed").OrderByDescending(i => i.TrainedAt.Value).FirstOrDefault(); if (iteration != null) { if (string.IsNullOrEmpty(iteration.PublishName)) { await trainingClient.PublishIterationAsync(project, iteration.Id, publishName : iteration.Id.ToString(), predictionId : predictionResourceId); iteration = await trainingClient.GetIterationAsync(project, iteration.Id); } result.Add(new ProjectIteration() { Project = project, Iteration = iteration.Id, ProjectName = projectEntity.Name, PublishedName = iteration.PublishName, IsObjectDetection = domain.Type == "ObjectDetection" }); } } return(result.ToArray()); }
public async void GetIterations() { var updatedName = "New Iteration Name"; using (MockContext context = MockContext.Start(this.GetType())) { HttpMockServer.Initialize(this.GetType(), "GetIterations", RecorderMode); using (var project = CreateTrainedImageClassificationProject()) { ICustomVisionTrainingClient client = BaseTests.GetTrainingClient(); var iterations = await client.GetIterationsAsync(project.ProjectId); Assert.Equal(1, iterations.Count); Assert.NotEmpty(iterations[0].Name); Assert.NotEqual(Guid.Empty, iterations[0].DomainId); Assert.NotEqual(Guid.Empty, iterations[0].Id); Assert.Equal(project.ProjectId, iterations[0].ProjectId); Assert.Equal("Completed", iterations[0].Status); Assert.False(iterations[0].Exportable); var iteration = await client.GetIterationAsync(project.ProjectId, iterations[0].Id); Assert.Equal(iteration.Name, iterations[0].Name); Assert.Equal(iteration.Id, iterations[0].Id); Assert.Equal(TrainingType.Regular, iteration.TrainingType); Assert.Equal(0, iteration.ReservedBudgetInHours); Assert.NotEmpty(iteration.PublishName); Assert.Equal(1, iteration.TrainingTimeInMinutes); Assert.Equal(BaseTests.PredictionResourceId, iteration.OriginalPublishResourceId); var updatedIteration = await client.UpdateIterationAsync(project.ProjectId, iteration.Id, new Iteration() { Name = updatedName }); Assert.Equal(updatedName, updatedIteration.Name); } } }
public async void GetIterations() { var updatedName = "New Iteration Name"; using (MockContext context = MockContext.Start(this.GetType().Name)) { HttpMockServer.Initialize(this.GetType().Name, "GetIterations", RecorderMode); var projectId = CreateTrainedImageClassificationProject(); ICustomVisionTrainingClient client = GetTrainingClient(); var iterations = await client.GetIterationsAsync(projectId); Assert.Equal(1, iterations.Count); Assert.NotEmpty(iterations[0].Name); Assert.NotEqual(Guid.Empty, iterations[0].DomainId); Assert.NotEqual(Guid.Empty, iterations[0].Id); Assert.Equal(projectId, iterations[0].ProjectId); Assert.True(iterations[0].IsDefault); Assert.Equal("Completed", iterations[0].Status); Assert.False(iterations[0].Exportable); var iteration = await client.GetIterationAsync(projectId, iterations[0].Id); Assert.Equal(iteration.Name, iterations[0].Name); Assert.Equal(iteration.Id, iterations[0].Id); Assert.True(iterations[0].IsDefault); var updatedIteration = await client.UpdateIterationAsync(projectId, iteration.Id, new Iteration() { Name = updatedName, IsDefault = !iterations[0].IsDefault, }); Assert.Equal(updatedName, updatedIteration.Name); Assert.Equal(!iteration.IsDefault, updatedIteration.IsDefault); await client.DeleteProjectAsync(projectId); } }