Esempio n. 1
0
        public void Dispose()
        {
            items.Add(null);
            nextTask.ContinueWith(task =>
            {
                task.AssertNotFailed();
                Action <string> report = Report;
                if (report != null)
                {
                    report("Finished writing all results to server");
                }
                long id;

                using (var response = httpJsonRequest.RawExecuteRequest())
                    using (var stream = response.GetResponseStream())
                        using (var streamReader = new StreamReader(stream))
                        {
                            var result = RavenJObject.Load(new JsonTextReader(streamReader));
                            id         = result.Value <long>("OperationId");
                        }

                while (true)
                {
                    var status = client.GetOperationStatus(id);
                    if (status == null)
                    {
                        break;
                    }
                    if (status.Value <bool>("Completed"))
                    {
                        break;
                    }
                    Thread.Sleep(500);
                }

                if (report != null)
                {
                    report("Done writing to server");
                }
            }).Wait();
        }