PageRenderTime 43ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/WindowsPhone/Abbyy.CloudOcrSdk/ServerXml.cs

https://github.com/tamisoft/ocrsdk.com
C# | 117 lines | 99 code | 15 blank | 3 comment | 17 complexity | 1678d45ff22c94661d3d09024c276a8d MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Xml;
  6. using System.Xml.Linq;
  7. namespace Abbyy.CloudOcrSdk
  8. {
  9. class ServerXml
  10. {
  11. public static TaskId GetTaskId(XDocument xml)
  12. {
  13. string id = xml.Root.Element("task").Attribute("id").Value;
  14. return new TaskId(id);
  15. }
  16. public static Task GetTaskStatus(XDocument xml)
  17. {
  18. return getTaskInfo( xml.Root.Element("task") );
  19. }
  20. private static TaskStatus statusFromString(string status)
  21. {
  22. switch (status.ToLower())
  23. {
  24. case "submitted":
  25. return TaskStatus.Submitted;
  26. case "queued":
  27. return TaskStatus.Queued;
  28. case "inprogress":
  29. return TaskStatus.InProgress;
  30. case "completed":
  31. return TaskStatus.Completed;
  32. case "processingfailed":
  33. return TaskStatus.ProcessingFailed;
  34. case "deleted":
  35. return TaskStatus.Deleted;
  36. case "notenoughcredits":
  37. return TaskStatus.NotEnoughCredits;
  38. default:
  39. return TaskStatus.Unknown;
  40. }
  41. }
  42. public static Task[] GetAllTasks(XDocument xml)
  43. {
  44. List<Task> result = new List<Task>();
  45. XElement xResponse = xml.Root;
  46. foreach (XElement xTask in xResponse.Elements("task"))
  47. {
  48. Task task = getTaskInfo(xTask);
  49. result.Add(task);
  50. }
  51. return result.ToArray();
  52. }
  53. /// <summary>
  54. /// Get task data from xml node "task"
  55. /// </summary>
  56. private static Task getTaskInfo(XElement xTask)
  57. {
  58. TaskId id = new TaskId(xTask.Attribute("id").Value);
  59. TaskStatus status = statusFromString(xTask.Attribute("status").Value);
  60. Task task = new Task();
  61. task.Id = id;
  62. task.Status = status;
  63. XAttribute xRegistrationTime = xTask.Attribute("registrationTime");
  64. if (xRegistrationTime != null)
  65. {
  66. DateTime time;
  67. if (DateTime.TryParse(xRegistrationTime.Value, out time))
  68. task.RegistrationTime = time;
  69. }
  70. XAttribute xStatusChangeTime = xTask.Attribute("statusChangeTime");
  71. if (xStatusChangeTime != null)
  72. {
  73. DateTime time;
  74. if (DateTime.TryParse(xStatusChangeTime.Value, out time))
  75. task.StatusChangeTime = time;
  76. }
  77. XAttribute xPagesCount = xTask.Attribute("filesCount");
  78. if (xPagesCount != null)
  79. {
  80. int pagesCount;
  81. if (Int32.TryParse(xPagesCount.Value, out pagesCount))
  82. task.PagesCount = pagesCount;
  83. }
  84. XAttribute xCredits = xTask.Attribute("credits");
  85. if (xCredits != null)
  86. {
  87. int credits;
  88. if( Int32.TryParse( xCredits.Value, out credits ))
  89. task.Credits = credits;
  90. }
  91. XAttribute xDescription = xTask.Attribute("description");
  92. if (xDescription != null)
  93. task.Description = xDescription.Value;
  94. XAttribute xResultUrl = xTask.Attribute("resultUrl");
  95. if (xResultUrl != null)
  96. {
  97. task.DownloadUrl = xResultUrl.Value;
  98. }
  99. return task;
  100. }
  101. }
  102. }