Exemplo n.º 1
0
 private void OnClassifyElements(ClassifyReturn response, Dictionary <string, object> customData)
 {
     Log.Debug("TestCompareComplyV1.OnClassifyElements()", "ClassifyElements Response: {0}", customData["json"].ToString());
     Test(response != null);
     Test(response.Document.Title == "Microsoft Word - contract_A.doc");
     classifyElementsTested = true;
 }
Exemplo n.º 2
0
        public IEnumerator TestClassifyElements()
        {
            Log.Debug("CompareComplyServiceV1IntegrationTests", "Attempting to ClassifyElements...");
            ClassifyReturn classifyElementsResponse = null;

            using (FileStream fs = File.OpenRead(contractAFilepath))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    fs.CopyTo(ms);
                    service.ClassifyElements(
                        callback: (DetailedResponse <ClassifyReturn> response, IBMError error) =>
                    {
                        Log.Debug("CompareComplyServiceV1IntegrationTests", "ClassifyElements result: {0}", response.Response);
                        classifyElementsResponse = response.Result;
                        Assert.IsNotNull(classifyElementsResponse);
                        //Assert.IsNotNull(classifyElementsResponse.ContractType);
                        Assert.IsNotNull(classifyElementsResponse.Elements);
                        Assert.IsNull(error);
                    },
                        file: ms,
                        model: "contracts",
                        fileContentType: Utility.GetMimeType(Path.GetExtension(contractAFilepath))
                        );

                    while (classifyElementsResponse == null)
                    {
                        yield return(null);
                    }
                }
            }
        }
        /// <summary>
        /// Classify the elements of a document.
        ///
        /// Uploads a file. The response includes an analysis of the document's structural and semantic elements.
        /// </summary>
        /// <param name="file">The file to classify.</param>
        /// <param name="modelId">The analysis model to be used by the service. For the `/v1/element_classification` and
        /// `/v1/comparison` methods, the default is `contracts`. For the `/v1/tables` method, the default is `tables`.
        /// These defaults apply to the standalone methods as well as to the methods' use in batch-processing requests.
        /// (optional)</param>
        /// <param name="fileContentType">The content type of file. (optional)</param>
        /// <param name="customData">Custom data object to pass data including custom request headers.</param>
        /// <returns><see cref="ClassifyReturn" />ClassifyReturn</returns>
        public ClassifyReturn ClassifyElements(System.IO.FileStream file, string modelId = null, string fileContentType = null, Dictionary <string, object> customData = null)
        {
            if (file == null)
            {
                throw new ArgumentNullException(nameof(file));
            }

            if (string.IsNullOrEmpty(VersionDate))
            {
                throw new ArgumentNullException("versionDate cannot be null.");
            }

            ClassifyReturn result = null;

            try
            {
                var formData = new MultipartFormDataContent();

                if (file != null)
                {
                    var fileContent = new ByteArrayContent((file as Stream).ReadAllBytes());
                    System.Net.Http.Headers.MediaTypeHeaderValue contentType;
                    System.Net.Http.Headers.MediaTypeHeaderValue.TryParse(fileContentType, out contentType);
                    fileContent.Headers.ContentType = contentType;
                    formData.Add(fileContent, "file", file.Name);
                }

                IClient client      = this.Client.WithAuthentication(_tokenManager.GetToken());
                var     restRequest = client.PostAsync($"{this.Endpoint}/v1/element_classification");

                restRequest.WithArgument("version", VersionDate);
                if (!string.IsNullOrEmpty(modelId))
                {
                    restRequest.WithArgument("model_id", modelId);
                }
                restRequest.WithBodyContent(formData);
                if (customData != null)
                {
                    restRequest.WithCustomData(customData);
                }

                restRequest.WithHeader("X-IBMCloud-SDK-Analytics", "service_name=compare-comply;service_version=v1;operation_id=ClassifyElements");
                result = restRequest.As <ClassifyReturn>().Result;
                if (result == null)
                {
                    result = new ClassifyReturn();
                }
                result.CustomData = restRequest.CustomData;
            }
            catch (AggregateException ae)
            {
                throw ae.Flatten();
            }

            return(result);
        }
Exemplo n.º 4
0
 private void OnClassifyElements(ClassifyReturn response, Dictionary <string, object> customData)
 {
     Log.Debug("ExampleCompareComplyV1.OnClassifyElements()", "ClassifyElements Response: {0}", customData["json"].ToString());
     classifyElementsTested = true;
 }