public async Task AnalyticsClientTestMethod() { while (null == sessionId) { sessionId = await client.RequestRecognitionSession(modelName); } await client.UploadPhoto(new byte[] { 1, 2, 3, 4 }, sessionId); var recRes = await client.TryGetResults(sessionId, photoId); while (null == recRes) { recRes = await client.TryGetResults(sessionId, photoId); } }
private async Task RunTaskForRecognition(RecognitionTask recognitionTask) { string recognitionSessionUID = null; int pollingTimeout = int.Parse(configuration.GetSection("AnalyticsPollingTimeout").Value); while (recognitionSessionUID == null) { try { recognitionSessionUID = await analyticsClient.RequestRecognitionSession(recognitionTask.ModelName); if (recognitionSessionUID != null) { break; } } catch (Exception exception) { logger.LogError("Exception caught: {0}, {1}", exception.Message, exception.StackTrace); } Thread.Sleep(pollingTimeout); } Photo photo = photoRepository.GetPhotoById(recognitionTask.PhotoId); bool isPhotoUploaded = false; int photoUploadTryCount = int.Parse(configuration.GetSection("PhotoUploadTryCount").Value); for (int i = 0; i < photoUploadTryCount; i++) { try { await analyticsClient.UploadPhoto(photo.Image, recognitionSessionUID); isPhotoUploaded = true; break; } catch (Exception exception) { logger.LogError("Exception caught: {0}, {1}", exception.Message, exception.StackTrace); Thread.Sleep(pollingTimeout); } } if (!isPhotoUploaded) { queue.Enqueue(recognitionTask); return; } RecognitionResults recognitionResults = null; while (recognitionResults == null) { try { recognitionResults = await analyticsClient.TryGetResults(recognitionSessionUID, recognitionTask.PhotoId); if (recognitionResults != null) { break; } } catch (Exception exception) { logger.LogError("Exception caught: {0}, {1}", exception.Message, exception.StackTrace); } Thread.Sleep(pollingTimeout); } recognitionRepository.Add(recognitionResults); }