예제 #1
0
        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());
        }
예제 #2
0
        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());
            }
        }