BlobRequestConditions
Specifies blob lease access conditions for a container or blob.
using Azure.Storage.Common;
using System.Text;
namespace Azure.Storage.Blobs.Models
{
public class BlobRequestConditions : BlobLeaseRequestConditions
{
public string LeaseId { get; set; }
public BlobRequestConditions()
{
}
private BlobRequestConditions(BlobRequestConditions deepCopySource)
: base(deepCopySource)
{
Argument.AssertNotNull(deepCopySource, "deepCopySource");
LeaseId = deepCopySource.LeaseId;
}
internal static BlobRequestConditions CloneOrDefault(BlobRequestConditions deepCopySource)
{
if (deepCopySource == null)
return null;
return new BlobRequestConditions(deepCopySource);
}
public override string ToString()
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append('[').Append(GetType().Name);
AddConditions(stringBuilder);
if (stringBuilder[stringBuilder.Length - 1] == ';')
stringBuilder[stringBuilder.Length - 1] = ']';
else
stringBuilder.Append(']');
return stringBuilder.ToString();
}
internal BlobRequestConditions WithIfMatch(ETag etag)
{
BlobRequestConditions blobRequestConditions = new BlobRequestConditions(this);
blobRequestConditions.set_IfMatch((ETag?)etag);
return blobRequestConditions;
}
internal virtual void AddConditions(StringBuilder conditions)
{
if (this.get_IfMatch().HasValue)
conditions.Append("IfMatch").Append('=').Append(this.get_IfMatch())
.Append(';');
if (this.get_IfNoneMatch().HasValue)
conditions.Append("IfNoneMatch").Append('=').Append(this.get_IfNoneMatch())
.Append(';');
if (this.get_IfModifiedSince().HasValue)
conditions.Append("IfModifiedSince").Append('=').Append(this.get_IfModifiedSince())
.Append(';');
if (this.get_IfUnmodifiedSince().HasValue)
conditions.Append("IfUnmodifiedSince").Append('=').Append(this.get_IfUnmodifiedSince())
.Append(';');
if (LeaseId != null)
conditions.Append("LeaseId").Append('=').Append(LeaseId)
.Append(';');
if (base.TagConditions != null)
conditions.Append("TagConditions").Append('=').Append(base.TagConditions)
.Append(';');
}
}
}