/// <summary> /// Puts the lease on the given blob in an available state. /// </summary> /// <param name="blob">The blob with the lease.</param> internal static void SetAvailableStateAPM(CloudBlob blob) { bool shouldBreakFirst = false; try { blob.DeleteIfExists(); } catch (StorageException exception) { if (exception.RequestInformation.ExtendedErrorInformation.ErrorCode == BlobErrorCodeStrings.LeaseIdMissing) { shouldBreakFirst = true; } else { throw; } } if (shouldBreakFirst) { using (AutoResetEvent waitHandle = new AutoResetEvent(false)) { IAsyncResult result = blob.BeginBreakLease(TimeSpan.Zero, ar => waitHandle.Set(), null); waitHandle.WaitOne(); blob.EndBreakLease(result); blob.Delete(); } } CreateBlob(blob); }
/// <summary> /// Puts the lease on the given blob in an available state. /// </summary> /// <param name="blob">The blob with the lease.</param> internal static void SetAvailableState(CloudBlob blob) { bool shouldBreakFirst = false; try { blob.DeleteIfExists(); } catch (StorageException exception) { if (exception.RequestInformation.ExtendedErrorInformation.ErrorCode == BlobErrorCodeStrings.LeaseIdMissing) { shouldBreakFirst = true; } else { throw; } } if (shouldBreakFirst) { blob.BreakLease(TimeSpan.Zero); blob.Delete(); } CreateBlob(blob); }