protected override object DoJob() { foreach (var dir in _aclProcess.Client.EnumerateDirectory(_fullPath)) { _aclProcess.ProcessDirectoryEntry(dir); } return(null); }
protected override object DoJob() { OperationResponse resp = new OperationResponse(); var fileStatus = Core.ListStatusAsync(FullPath, listAfter, null, listSize, UserGroupRepresentation.ObjectID, Selection.Minimal, _aclProcess.Client, new RequestOptions(new ExponentialRetryPolicy()), resp).GetAwaiter().GetResult(); if (!resp.IsSuccessful) { throw _aclProcess.Client.GetExceptionFromResponse(resp, "Error getting listStatus for path " + FullPath + " after " + listAfter); } foreach (var dir in fileStatus) { _aclProcess.ProcessDirectoryEntry(dir); } //TODO: USe continuationtoken for future if (fileStatus.Count >= listSize) { _aclProcess.Queue.Add(new EnumerateDirectoryChangeAclJob(_aclProcess, FullPath, fileStatus[fileStatus.Count - 1].Name)); } return(null); }
protected override object DoJob() { OperationResponse resp = new OperationResponse(); var getListStatusResult = Core.ListStatusAsync <DirectoryEntryListResult <DirectoryEntry> >(FullPath, listAfter, null, listSize, UserGroupRepresentation.ObjectID, Selection.Minimal, null, _aclProcess.Client, new RequestOptions(new ExponentialRetryPolicy()), resp).GetAwaiter().GetResult(); if (!resp.IsSuccessful) { throw _aclProcess.Client.GetExceptionFromResponse(resp, "Error getting listStatus for path " + FullPath + " after " + listAfter); } var directoriyEntries = Core.GetDirectoryEntryListWithFullPath(FullPath, getListStatusResult, resp); if (!resp.IsSuccessful) { throw _aclProcess.Client.GetExceptionFromResponse(resp, "Error getting listStatus for path " + FullPath + " after " + listAfter); } var continuationToken = getListStatusResult.FileStatuses.ContinuationToken; foreach (var dir in directoriyEntries) { if (dir.Attribute != null && dir.Attribute.Contains(DirectoryEntryAttributeType.Link)) { _aclProcess.AddLinkPath(dir.FullName); } else { _aclProcess.ProcessDirectoryEntry(dir); } } if (!string.IsNullOrEmpty(continuationToken)) { _aclProcess.Queue.Add(new EnumerateDirectoryChangeAclJob(_aclProcess, FullPath, continuationToken)); } return(null); }