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)
{
return new BlobRequestConditions(this) {
IfMatch = new ETag?(etag)
};
}
internal virtual void AddConditions(StringBuilder conditions)
{
if (base.IfMatch.HasValue)
conditions.Append("IfMatch").Append('=').Append(base.IfMatch)
.Append(';');
if (base.IfNoneMatch.HasValue)
conditions.Append("IfNoneMatch").Append('=').Append(base.IfNoneMatch)
.Append(';');
if (base.IfModifiedSince.HasValue)
conditions.Append("IfModifiedSince").Append('=').Append(base.IfModifiedSince)
.Append(';');
if (base.IfUnmodifiedSince.HasValue)
conditions.Append("IfUnmodifiedSince").Append('=').Append(base.IfUnmodifiedSince)
.Append(';');
if (LeaseId != null)
conditions.Append("LeaseId").Append('=').Append(LeaseId)
.Append(';');
if (base.TagConditions != null)
conditions.Append("TagConditions").Append('=').Append(base.TagConditions)
.Append(';');
}
}
}