/// <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); } }
/// <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); } }
/// <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); }
/// <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); }
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); }
/// <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); }
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); }
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); }
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); }
/// <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); }
/// <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); }
/// <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); }
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); }
/// <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); }
/// <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); }