private void AddFiles(FileListResponse response, FileListOptions options) { foreach (var file in response.files) { if (responseFiles.Count >= maxFilesTotal) { break; } var newFile = ResponseFile.FromFile(file); var res = responseUsers.Where(x => x.id == file.user); if (res.Count() > 0) { newFile.linkedUser = res.First(); if (file.username == "") { newFile.username = res.First().name; } } responseFiles.Add(newFile); } slackFiles.Items.Refresh(); PopulateFilterByFileType(); SetStatus($"Page received. (Received: {response.paging.page} Available: {response.paging.pages})"); SetProgress((response.paging.page) / ((double)maxFilesTotal / maxFilesPerPage) * 100.0, $"Receiving {response.paging.page} / {Math.Ceiling((double)maxFilesTotal / (double)maxFilesPerPage)}"); if (responseFiles.Count < maxFilesTotal && response.paging.page < response.paging.pages) { SetStatus($"Delaying next request by {apiCallDelay}ms..."); Task.Delay(apiCallDelay).ContinueWith(t => { options.page = response.paging.page + 1; GetFilesFromSlack(options); }); } }
private void SendFileList(SimpleSocketSession <SocketData> session, FileListRequest request) { string path = request.Path; List <RemoteFile> files = new List <RemoteFile>(); if (string.IsNullOrEmpty(path)) { files = DriveInfo.GetDrives().Select(p => p.RootDirectory).Select(p => new RemoteFile(p, false)).ToList(); } else { foreach (var dir in new DirectoryInfo(path).EnumerateFileSystemInfos()) { var file = new RemoteFile(dir, true); files.Add(file); } } var data = new FileListResponse() { Files = files.OrderByDescending(p => p.IsDir).ToList(), Path = path }; SocketData resp = new SocketData(Response, SocketDataAction.FileListResponse, data); Send(session, resp); }
public int Download(string id, out FileListResponse fileListResponse) { if (UserInfo.UserName == "") { fileListResponse = null; return(-1); } var client = new RestClient(ServerAddress.Address + "/api/storage/file?download=true&id=" + id); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer " + UserInfo.Token); request.AddHeader("Content-Type", "application/json"); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content); fileListResponse = JsonConvert.DeserializeObject <FileListResponse>(response.Content); if (fileListResponse != null) { if (fileListResponse.data.amount == 1) { return(fileListResponse.status); } else { return(-20001); } } else { return(-20000); } }
public async Task <IActionResult> GetFileList(string source, string share, string folder) { if (string.IsNullOrEmpty(source) || string.IsNullOrEmpty(share) || string.IsNullOrEmpty(folder)) { return(BadRequest()); } FileListResponse response = await _service.ListFiles(source, share, folder); return(Ok(response)); }
public override Task <FileListResponse> GetFileList(FileListRequest request, ServerCallContext context) { var bubu = _testGoogleDrive.GetFileList(); var fileListResponse = new FileListResponse(); foreach (var item in bubu) { fileListResponse.FileList.Add(new FileData() { FileName = item.Name, Id = item.Id }); } return(Task.FromResult(fileListResponse)); }
private void HandleFileListResponse(object sender, FileListResponse fileListResponse) { _eventLog.Add(new ServerEvent { EventType = EventType.ReceivedFileList, LocalIpAddress = MyInfo.LocalIpAddress, LocalPortNumber = MyInfo.PortNumber, RemoteServerIpAddress = fileListResponse.RemoteServerInfo.SessionIpAddress, RemoteServerPortNumber = fileListResponse.RemoteServerInfo.PortNumber, RemoteFolder = fileListResponse.RemoteServerInfo.TransferFolder, RemoteServerFileList = fileListResponse.FileInfoList, }); EventOccurred?.Invoke(this, _eventLog.Last()); SuccessfullyProcessedRequest?.Invoke(this, fileListResponse); }
public void GetFileList(string folder, out int status, out List <Response.FileListResponse.File> fileList) { if (UserInfo.UserName == "") { fileList = null; status = -1; return; } fileList = new List <Response.FileListResponse.File>(); int offset = 0; int currentAmount; do { var client = new RestClient(ServerAddress.Address + "/api/storage/file?offset=" + offset + "&amount=100&folder=" + folder); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer " + UserInfo.Token); request.AddHeader("Content-Type", "application/json"); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content); FileListResponse fileListResponse = JsonConvert.DeserializeObject <FileListResponse>(response.Content); if (fileListResponse != null) { currentAmount = fileListResponse.data.amount; if (currentAmount != 0) { fileList.AddRange(fileListResponse.data.files); } offset = offset + currentAmount; // 下一次请求用 } else { status = -20000; return; } } while (currentAmount != 0); status = 0; }
public GDriveFolderView(FileListResponse files = null) { InitializeComponent(); BindingContext = new GDriveFolderViewModel(files); Helpers.NavigationHelper.OnBackButtonPressed += BackButtonPressed; }
public static void ClassInitialize(TestContext context) { OkBaseResponse = JsonLoader.LoadJson <BaseResponse>(@"Data/base.json"); OkFileInfoResponse = JsonLoader.LoadJson <FileInfoResponse>(@"Files/Data/file_info.json"); OkFileListResponse = JsonLoader.LoadJson <FileListResponse>(@"Files/Data/file_list.json"); }
async void HandleFileListRequest(object sender, FileListRequest fileListRequest) { MyInfo.TransferFolder = fileListRequest.TransferFolderPath; _eventLog.Add(new ServerEvent { EventType = EventType.ReceivedFileListRequest, RemoteServerIpAddress = fileListRequest.RemoteServerInfo.SessionIpAddress, RemoteServerPortNumber = fileListRequest.RemoteServerInfo.PortNumber, LocalFolder = MyInfo.TransferFolder }); EventOccurred?.Invoke(this, _eventLog.Last()); if (!Directory.Exists(MyInfo.TransferFolder)) { var foldesDoesNotExist = new Request(RequestType.RequestedFolderDoesNotExist) { LocalServerInfo = MyInfo, RemoteServerInfo = fileListRequest.RemoteServerInfo, Status = RequestStatus.InProgress, Direction = TransferDirection.Outbound }; await _requestHandler.SendRequestAsync(foldesDoesNotExist); return; } var fileInfoList = new FileInfoList(MyInfo.TransferFolder); if (fileInfoList.Count == 0) { var folderIsEmpty = new Request(RequestType.RequestedFolderIsEmpty) { LocalServerInfo = MyInfo, RemoteServerInfo = fileListRequest.RemoteServerInfo, Status = RequestStatus.InProgress, Direction = TransferDirection.Outbound }; await _requestHandler.SendRequestAsync(folderIsEmpty); return; } var fileListResponse = new FileListResponse { LocalServerInfo = MyInfo, RemoteServerInfo = fileListRequest.RemoteServerInfo, FileInfoList = fileInfoList, Status = RequestStatus.InProgress, Direction = TransferDirection.Outbound }; var sendRequest = await _requestHandler.SendRequestAsync(fileListResponse); if (sendRequest.Failure) { return; } SuccessfullyProcessedRequest?.Invoke(this, fileListRequest); }