Click or drag to resize

IFolderCreateLockNullAsync Method (String, TimeSpan, String, Boolean, IDictionaryString, String, CancellationToken)

IT Hit WebDAV Classes Reference
Locks name for later use.

Namespace:  ITHit.WebDAV.Client
Assembly:  ITHit.WebDAV.Client (in ITHit.WebDAV.Client.dll) Version: 6.0.4052-Beta
Syntax
Task<LockInfo> CreateLockNullAsync(
	string newItemName,
	TimeSpan timeout,
	string lockToken,
	bool deep,
	IDictionary<string, string> headers = null,
	CancellationToken cancellationToken = null
)

Parameters

newItemName
Type: SystemString
Name of new item.
timeout
Type: SystemTimeSpan
TimeOut after which lock expires.
lockToken
Type: SystemString
Lock token for the lock.
deep
Type: SystemBoolean
Whether to lock entire subtree.
headers (Optional)
Type: System.Collections.GenericIDictionaryString, String
Request headers.
cancellationToken (Optional)
Type: System.ThreadingCancellationToken
Propagates notification that operations should be canceled.

Return Value

Type: TaskLockInfo
Instance of LockInfo with information about created lock.
Exceptions
ExceptionCondition
MethodNotAllowedExceptionItem with specified name already exists.
NotFoundExceptionThis folder doesn't exist on the server.(Server in fact returns Conflict)
LockedExceptionThis folder is locked and no or invalid lock token was specified.
ForbiddenExceptionThe client, for reasons the server chooses not to specify, cannot apply the lock.
WebDavHttpExceptionServer returned unknown error.
WebDavExceptionUnexpected error occurred.
Remarks
Locks name for later use creating a lock-null item with a specified name. Later lock-null item could be converted to a file calling CreateFileAsync(String) or converted to a folder calling CreateFolderAsync(String). Lock-null items cannot be deleted using [!:IHierarchyItem.DeleteAsync()] method, call [!:IHierarchyItem.UnlockAsync(string)] instead.
Examples
string license = "<?xml version='1.0' encoding='utf...
WebDavSession session = new WebDavSession(license);
session.Credentials = new NetworkCredential("User1", "pwd");
IFolder folder = await session.GetFolderAsync(new Uri("https://server:8080/Sales"));
LockInfo lockInfo = await folder.CreateLockNullAsync("file1.gif",
    TimeSpan.FromMinutes(5), "locktoken", false); // reserve name for future use
Uri RemoteStorageUri = new Uri("https://server:8080/Sales/file1.gif");
LockUriTokenPair[] lockTokens = new LockUriTokenPair[] { new LockUriTokenPair(RemoteStorageUri, lockInfo.LockToken.LockToken) };
IFile file = await folder.CreateFileAsync("file1.gif", lockTokens); // convert lock-null to resource
await file.UnlockAsync(lockTokens);
See Also