/// <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 OcrSdkTask[] ListFinishedTasks()
        {
            string     url      = String.Format("{0}/listFinishedTasks", ServerUrl);
            WebRequest request  = createGetRequest(url);
            XDocument  response = performRequest(request);

            OcrSdkTask[] tasks = ServerXml.GetAllTasks(response);
            return(tasks);
        }
        /// <summary>
        /// List all tasks which status changed since given UTC timestamp
        /// </summary>
        public OcrSdkTask[] 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);

            OcrSdkTask[] tasks = ServerXml.GetAllTasks(response);
            return(tasks);
        }