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); } }