protected override object DoJob()
 {
     foreach (var dir in _aclProcess.Client.EnumerateDirectory(_fullPath))
     {
         _aclProcess.ProcessDirectoryEntry(dir);
     }
     return(null);
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }