private void DownloadResult(OcrTask task, string outputFile) { if (task.Status != TaskStatus.Completed) { throw new ArgumentException("Cannot download result for not completed task"); } try { if (File.Exists(outputFile)) { File.Delete(outputFile); } if (task.DownloadUrls == null || task.DownloadUrls.Count == 0) { throw new ArgumentException("Cannot download task without download url"); } string url = task.DownloadUrls[0]; DownloadUrl(url, outputFile); } catch (WebException e) { throw new Exception(e.Message, e); } }
public static OcrTask[] GetAllTasks(XDocument xml) { var result = new List <OcrTask>(); XElement xResponse = xml.Root; foreach (XElement xTask in xResponse.Elements("task")) { OcrTask task = GetTaskInfo(xTask); result.Add(task); } return(result.ToArray()); }
//public async Task<bool> clearTaskProcess(OcrTask ocrTask) //{ // var processListKeyExsit = database.KeyExists(ocrTask.TaskName + "-process"); // var finishedListKeyExsit = database.KeyExists(ocrTask.TaskName + "-finished"); // if (processListKeyExsit) // { // database.KeyDelete(ocrTask.TaskName + "-process"); // } // if (finishedListKeyExsit) // { // database.KeyDelete(ocrTask.TaskName + "-finished"); // } // return true; //} public async Task <bool> createTaskProcess(OcrTask ocrTask) { var exsit = database.KeyExists(ocrTask.TaskName + "-process"); if (exsit) { } else { var taskList = new List <RedisValue>(); for (var i = ocrTask.Start; i < ocrTask.End; i++) { taskList.Add(new RedisValue(i.ToString())); } await database.ListRightPushAsync(ocrTask.TaskName + "-process", taskList.ToArray()); Console.WriteLine("add task-process length:" + (ocrTask.End - ocrTask.Start).ToString() + " items"); } return(true); }
/// <summary> /// Get task data from xml node "task" /// </summary> private static OcrTask GetTaskInfo(XElement xTask) { TaskId id = new TaskId(xTask.Attribute("id").Value); TaskStatus status = StatusFromString(xTask.Attribute("status").Value); var task = new OcrTask { TaskId = id, Status = status }; XAttribute xRegistrationTime = xTask.Attribute("registrationTime"); if (xRegistrationTime != null) { DateTime time; if (DateTime.TryParse(xRegistrationTime.Value, out time)) { task.RegistrationTime = time; } } XAttribute xStatusChangeTime = xTask.Attribute("statusChangeTime"); if (xStatusChangeTime != null) { DateTime time; if (DateTime.TryParse(xStatusChangeTime.Value, out time)) { task.StatusChangeTime = time; } } XAttribute xFilesCount = xTask.Attribute("filesCount"); if (xFilesCount != null) { int filesCount; if (int.TryParse(xFilesCount.Value, out filesCount)) { task.FilesCount = filesCount; } } XAttribute xCredits = xTask.Attribute("credits"); if (xCredits != null) { int credits; if (int.TryParse(xCredits.Value, out credits)) { task.Credits = credits; } } XAttribute xDescription = xTask.Attribute("description"); if (xDescription != null) { task.Description = xDescription.Value; } XAttribute xResultUrl = xTask.Attribute("resultUrl"); if (xResultUrl != null) { task.DownloadUrls = new List <string> { xResultUrl.Value }; for (int i = 2; i < 10; i++) { XAttribute xResultUrlI = xTask.Attribute("resultUrl" + i); if (xResultUrlI != null) { task.DownloadUrls.Add(xResultUrlI.Value); } else { break; } } } XAttribute xError = xTask.Attribute("error"); if (xError != null) { task.Error = xError.Value; } return(task); }