public void GetTopics() { var randomText = new RandomText(); var request = new TopicRequest(); for (int i = 1; i <= 200; i++) { request.Documents.Add(new TopicDocument() { Id = i.ToString(), Text = randomText.Next() }); } var client = new TopicClient(apiKey); var opeationUrl = client.StartTopicProcessing(request); TopicResponse response = null; var startTime = DateTime.Now; var timeoutTime = startTime.AddMinutes(30); var doneProcessing = false; while (!doneProcessing) { response = client.GetTopicResponse(opeationUrl); if (response.Status == TopicOperationStatus.Cancelled) { Assert.Fail("Operation Cancelled"); } else if (response.Status == TopicOperationStatus.Failed) { Assert.Fail("Operation Failed"); } else if (response.Status == TopicOperationStatus.Succeeded) { doneProcessing = true; } else { if (DateTime.Now >= timeoutTime) { Assert.Fail("Operation Timeout"); } else { Thread.Sleep(60000); } } } Assert.IsTrue(response.OperationProcessingResult.TopicAssignments.Count > 0); Assert.IsTrue(response.OperationProcessingResult.Topics.Count > 0); }
static void Main(string[] args) { var apiKey = "YOUR-TEXT-ANALYTICS-API-SUBSCRIPTION-KEY"; var randomText = new RandomText(); var request = new TopicRequest(); for (int i = 1; i <= 200; i++) { request.Documents.Add(new TopicDocument() { Id = i.ToString(), Text = randomText.Next() }); } var client = new TopicClient(apiKey); var operationUrl = client.StartTopicProcessing(request); TopicResponse response = null; var doneProcessing = false; while (!doneProcessing) { response = client.GetTopicResponse(operationUrl); switch (response.Status) { case TopicOperationStatus.Cancelled: Console.WriteLine("Status: Operation Cancelled"); doneProcessing = true; break; case TopicOperationStatus.Failed: Console.WriteLine("Status: Operation Failed"); doneProcessing = true; break; case TopicOperationStatus.NotStarted: Console.WriteLine("Status: Operation Not Started"); Thread.Sleep(60000); break; case TopicOperationStatus.Running: Console.WriteLine("Status: Operation Running"); Thread.Sleep(60000); break; case TopicOperationStatus.Succeeded: Console.WriteLine("Status: Operation Succeeded"); doneProcessing = true; break; } } foreach (var topic in response.OperationProcessingResult.Topics) { Console.WriteLine("{0} | {1}", topic.KeyPhrase, topic.Score); } Console.WriteLine("Press any key to exit..."); Console.ReadLine(); }