Ejemplo n.º 1
0
        public async void CheckRetrieveStatus()
        {
            var retrieveResult = await _metadataClient.Retrieve();

            var status = "InProgress";
            CheckRetrieveStatusResponseResult checkRetrieveStatusResult = null;

            while (status != "Succeeded")
            {
                checkRetrieveStatusResult = await _metadataClient.CheckRetrieveStatus(retrieveResult.Id);

                Assert.IsNotNull(checkRetrieveStatusResult);

                status = checkRetrieveStatusResult.Status;
            }

            if (checkRetrieveStatusResult != null)
            {
                Assert.AreEqual("Succeeded", checkRetrieveStatusResult.Status);
                Assert.AreEqual(true, checkRetrieveStatusResult.Success);
                Assert.IsNotNull(checkRetrieveStatusResult.ZipFile);

                var toBytes  = Convert.FromBase64String(checkRetrieveStatusResult.ZipFile);
                var fileName = checkRetrieveStatusResult.Id + ".zip";

                using (var fs = new FileStream(fileName, FileMode.Create))
                {
                    fs.Write(toBytes, 0, toBytes.Length);
                }

                var extractPath = checkRetrieveStatusResult.Id;

                ZipFile.ExtractToDirectory(fileName, extractPath);

                File.Delete(fileName);
                Directory.Delete(extractPath, true);
            }
        }