in Source/NuGetGallery.Operations/Tasks/Backups/BackupPackagesTask.cs [142:172]
private State GetStateFile(CloudBlobClient backupClient)
{
var container = backupClient.GetContainerReference("package-backups");
container.CreateIfNotExists();
var blob = container.GetBlockBlobReference("__backupstate.json");
if (blob.Exists())
{
using (var strm = new MemoryStream())
{
blob.DownloadToStream(strm);
strm.Flush();
strm.Seek(0, SeekOrigin.Begin);
using (var rdr = new StreamReader(strm, Encoding.Default, detectEncodingFromByteOrderMarks: true, bufferSize: 1024, leaveOpen: true))
{
try
{
return JsonConvert.DeserializeObject<State>(rdr.ReadToEnd());
}
catch (Exception ex)
{
Log.ErrorException(String.Format("Error parsing state file: {0}", ex.Message), ex);
return new State(); // Return an empty state and continue
}
}
}
}
else
{
return new State();
}
}