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 void DomainsApiTests() { using (MockContext context = MockContext.Start(this.GetType().Name)) { HttpMockServer.Initialize(this.GetType().Name, "DomainsApiTests", RecorderMode); ICustomVisionTrainingClient client = GetTrainingClient(); var domains = client.GetDomainsAsync().Result; Assert.Equal(9, domains.Count); var foodDomain = domains.FirstOrDefault(d => d.Id == FoodDomain); Assert.NotNull(foodDomain); Assert.False(foodDomain.Exportable); Assert.Contains("food", foodDomain.Name.ToLowerInvariant()); var generalDomain = client.GetDomainAsync(GeneralDomain).Result; Assert.Equal(GeneralDomain, generalDomain.Id); Assert.False(generalDomain.Exportable); Assert.Contains("general", generalDomain.Name.ToLowerInvariant()); } }