コード例 #1
0
        private CountFilesResponse DoCount(FileSystemRequest request)
        {
            var cancellableOperation = new CancellableOperation <string, CountFilesResult>(
                fileExplorerService.CountFilesInDirectory, request.Path, request.SourceToken, CountOperationsGroup);

            requestPool.Add(cancellableOperation);

            cancellableOperation.CancelAfter(requestConfiguration.ExecutionTimeout);
            cancellableOperation.Operation.Wait();

            var result   = cancellableOperation.Operation.Result;
            var response = CreateCountFilesResponse(result, cancellableOperation.Cancelled);

            countFilesCacheRepository.Add(request.Path, response);

            return(response);
        }
コード例 #2
0
        private IEnumerable <FileSystemItem> DoGetDrives(FileSystemRequest request)
        {
            var cancellableOperation = new CancellableOperation <string, IEnumerable <FileSystemItem> >(
                fileExplorerService.GetDrives, request.SourceToken, EploreFilesOperationsGroup);

            cancellableOperation.CancelAfter(requestConfiguration.ExecutionTimeout);
            cancellableOperation.Operation.Wait();

            var result = cancellableOperation.Operation.Result;

            if (result.Any())
            {
                fileSystemItemsCacheRepository.Add("DrivesListCache", result.ToArray());
            }

            return(result);
        }