Exemplo n.º 1
0
        /// <summary>
        /// Upload a file to service synchronously and start processing
        /// </summary>
        /// <param name="input">Byte array to process</param>
        /// <param name="settings">Language and output format</param>
        /// <returns>Id of the task. Check task status to see if you have enough units to process the task</returns>
        /// <exception cref="ProcessingErrorException">thrown when something goes wrong</exception>
        public Task ProcessImage(byte[] input, ProcessingSettings settings)
        {
            string url = String.Format("{0}/processImage?{1}", ServerUrl, settings.AsUrlParams);

            if (!String.IsNullOrEmpty(settings.Description))
            {
                url = url + "&description=" + Uri.EscapeDataString(settings.Description);
            }

            try
            {
                // Build post request
                WebRequest request = createPostRequest(url);
                writeFileToRequest(input, request);

                XDocument response = performRequest(request);
                Task      task     = ServerXml.GetTaskStatus(response);

                return(task);
            }
            catch (System.Net.WebException e)
            {
                String friendlyMessage = retrieveFriendlyMessage(e);
                if (friendlyMessage != null)
                {
                    throw new ProcessingErrorException(friendlyMessage, e);
                }
                throw new ProcessingErrorException("Cannot upload file", e);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Upload a file to service synchronously and start processing
        /// </summary>
        /// <param name="filePath">Path to an image to process</param>
        /// <param name="settings">Language and output format</param>
        /// <returns>Id of the task. Check task status to see if you have enough units to process the task</returns>
        /// <exception cref="ProcessingErrorException">thrown when something goes wrong</exception>
        public OcrSdkTask ProcessImage(string filePath, ProcessingSettings settings)
        {
            string url = String.Format("{0}/processImage?{1}", ServerUrl, settings.AsUrlParams);

            if (!String.IsNullOrEmpty(settings.Description))
            {
                url = url + "&description=" + Uri.EscapeDataString(settings.Description);
            }

            try
            {
                // Build post request
                WebRequest request = WebRequest.Create(url);
                setupPostRequest(url, request);
                writeFileToRequest(filePath, request);

                XDocument  response = performRequest(request);
                OcrSdkTask task     = ServerXml.GetTaskStatus(response);

                return(task);
            }
            catch (System.Net.WebException e)
            {
                throw new ProcessingErrorException("Cannot upload file: " + e.Message + ". Please make sure that application Id and password are correct.", e);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Get list of tasks that are no more queued on a server.
        /// The tasks can be processed, failed, or not started becuase there is
        /// not enough credits to process them.
        /// </summary>
        public Task[] ListFinishedTasks()
        {
            string     url      = String.Format("{0}/listFinishedTasks", ServerUrl);
            WebRequest request  = createGetRequest(url);
            XDocument  response = performRequest(request);

            Task[] tasks = ServerXml.GetAllTasks(response);
            return(tasks);
        }
Exemplo n.º 4
0
        /// <summary>
        /// List all tasks which status changed since given UTC timestamp
        /// </summary>
        public Task[] ListTasks(DateTime changedSince)
        {
            string url = String.Format("{0}/listTasks?fromDate={1}", ServerUrl,
                                       Uri.EscapeDataString(changedSince.ToUniversalTime().ToString("s") + "Z"));

            WebRequest request  = createGetRequest(url);
            XDocument  response = performRequest(request);

            Task[] tasks = ServerXml.GetAllTasks(response);
            return(tasks);
        }
Exemplo n.º 5
0
        public Task GetTaskStatus(TaskId task)
        {
            string url = String.Format("{0}/getTaskStatus?taskId={1}", ServerUrl,
                                       Uri.EscapeDataString(task.ToString()));

            WebRequest request    = createGetRequest(url);
            XDocument  response   = performRequest(request);
            Task       serverTask = ServerXml.GetTaskStatus(response);

            return(serverTask);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Recognize Machine-Readable Zone of an official document (Passport, ID, Visa etc)
        /// </summary>
        public Task ProcessMrz(string filePath)
        {
            string     url     = String.Format("{0}/processMRZ", ServerUrl);
            WebRequest request = createPostRequest(url);

            writeFileToRequest(filePath, request);

            XDocument response   = performRequest(request);
            Task      serverTask = ServerXml.GetTaskStatus(response);

            return(serverTask);
        }
Exemplo n.º 7
0
        public Task ProcessBusinessCard(string filePath, BusCardProcessingSettings settings)
        {
            string url = String.Format("{0}/processBusinessCard?{1}", ServerUrl, settings.AsUrlParams);

            // Build post request
            WebRequest request = createPostRequest(url);

            writeFileToRequest(filePath, request);

            XDocument response   = performRequest(request);
            Task      serverTask = ServerXml.GetTaskStatus(response);

            return(serverTask);
        }
Exemplo n.º 8
0
        public OcrSdkTask ProcessCheckmarkField(string filePath, CheckmarkFieldProcessingSettings settings)
        {
            string url = String.Format("{0}/processCheckmarkField{1}", ServerUrl, settings.AsUrlParams);

            // Build post request
            WebRequest request = createPostRequest(url);

            writeFileToRequest(filePath, request);

            XDocument  response = performRequest(request);
            OcrSdkTask task     = ServerXml.GetTaskStatus(response);

            return(task);
        }
Exemplo n.º 9
0
        public Task CaptureData(string filePath, string templateName)
        {
            string url = String.Format("{0}/captureData?template={1}", ServerUrl, templateName);

            // Build post request
            WebRequest request = createPostRequest(url);

            writeFileToRequest(filePath, request);

            XDocument response   = performRequest(request);
            Task      serverTask = ServerXml.GetTaskStatus(response);

            return(serverTask);
        }
Exemplo n.º 10
0
        /// <summary>
        /// Perform barcode recognition of a field
        /// Throws an exception if something goes wrong
        /// </summary>
        /// <returns>Id of created task</returns>
        public Task ProcessBarcodeField(string filePath, BarcodeFieldProcessingSettings settings)
        {
            string url = String.Format("{0}/processBarcodeField{1}", ServerUrl, settings.AsUrlParams);

            // Build post request
            WebRequest request = WebRequest.Create(url);

            setupPostRequest(url, request);
            writeFileToRequest(filePath, request);

            XDocument response = performRequest(request);
            Task      task     = ServerXml.GetTaskStatus(response);

            return(task);
        }
Exemplo n.º 11
0
        /// <summary>
        /// Delete task on a server. This function cannot delete tasks that are being processed.
        /// </summary>
        public Task DeleteTask(Task task)
        {
            switch (task.Status)
            {
            case TaskStatus.Deleted:
            case TaskStatus.InProgress:
            case TaskStatus.Unknown:
                throw new ArgumentException("Invalid task status: " + task.Status + ". Cannot delete");
            }

            string     url     = String.Format("{0}/deleteTask?taskId={1}", ServerUrl, Uri.EscapeDataString(task.Id.ToString()));
            WebRequest request = createGetRequest(url);

            XDocument response   = performRequest(request);
            Task      serverTask = ServerXml.GetTaskStatus(response);

            return(serverTask);
        }
Exemplo n.º 12
0
        /// <summary>
        /// Perform fields recognition of uploaded document.
        /// </summary>
        /// <param name="task">Task created by UploadAndAddFileToTask method</param>
        /// <param name="settingsPath">Path to file with xml processing settings.</param>
        public Task ProcessFields(Task task, string settingsPath)
        {
            if (!File.Exists(settingsPath))
            {
                throw new FileNotFoundException("Settings file doesn't exist.", settingsPath);
            }

            string url = String.Format("{0}/processFields?taskId={1}", ServerUrl, task.Id);

            WebRequest request = createPostRequest(url);

            writeFileToRequest(settingsPath, request);

            XDocument response = performRequest(request);
            Task      result   = ServerXml.GetTaskStatus(response);

            return(result);
        }
Exemplo n.º 13
0
        public Task StartProcessingTask(TaskId taskId, ProcessingSettings settings)
        {
            string url = String.Format("{0}/processDocument?taskId={1}&{2}", ServerUrl,
                                       Uri.EscapeDataString(taskId.ToString()),
                                       settings.AsUrlParams);

            if (!String.IsNullOrEmpty(settings.Description))
            {
                url = url + "&description=" + Uri.EscapeDataString(settings.Description);
            }

            // Build get request
            WebRequest request    = createGetRequest(url);
            XDocument  response   = performRequest(request);
            Task       serverTask = ServerXml.GetTaskStatus(response);

            return(serverTask);
        }
Exemplo n.º 14
0
        /// <summary>
        /// Upload image of a multipage document to server.
        /// </summary>
        /// <param name="filePath">Path to an image to process</param>
        /// <param name="taskToAddFile">Id of multipage document. If null, a new document is created</param>
        /// <returns>Id of document to which image was added</returns>
        public Task UploadAndAddFileToTask(string filePath, TaskId taskToAddFile)
        {
            string url = String.Format("{0}/submitImage", ServerUrl);

            if (taskToAddFile != null)
            {
                url = url + "?taskId=" + Uri.EscapeDataString(taskToAddFile.ToString());
            }

            // Build post request
            WebRequest request = createPostRequest(url);

            writeFileToRequest(filePath, request);

            XDocument response = performRequest(request);
            Task      task     = ServerXml.GetTaskStatus(response);

            return(task);
        }
Exemplo n.º 15
0
        /// <summary>
        /// Upload a file to service synchronously and start processing
        /// </summary>
        /// <param name="filePath">Path to an image to process</param>
        /// <param name="settings">Language and output format</param>
        /// <returns>Id of the task. Check task status to see if you have enough units to process the task</returns>
        /// <exception cref="ProcessingErrorException">thrown when something goes wrong</exception>
        public OcrSdkTask ProcessImage(string filePath, ProcessingSettings settings)
        {
            string url = String.Format("{0}/processImage?{1}", ServerUrl, settings.AsUrlParams);

            if (!String.IsNullOrEmpty(settings.Description))
            {
                url = url + "&description=" + Uri.EscapeDataString(settings.Description);
            }

            // Build post request
            WebRequest request = createPostRequest(url);

            writeFileToRequest(filePath, request);

            XDocument  response = performRequest(request);
            OcrSdkTask task     = ServerXml.GetTaskStatus(response);

            return(task);
        }