// todo: consider making this an async method. public FileSystemQueryResponse Execute(FileSystemQueryRequest request) { string responseText = null; switch (request.QueryType) { case FileSystemQueryTypeEnum.DirectoryExists: responseText = Directory.Exists(request.FolderPath).ToString(); break; } var response = new FileSystemQueryResponse(request, responseText); return(response); }
private void ProcessRequest() { //Console.WriteLine($"Waiting to receive {pipeName} request."); var request = Serializer.DeserializeWithLengthPrefix <FileSystemQueryRequest>(pipe, PrefixStyle.Base128); Console.WriteLine($"Received {pipeName} request: {request}."); var service = new FileSystemQueryService(); FileSystemQueryResponse response = null; try { response = service.Execute(request); } catch (Exception ex) { } Console.WriteLine($"Sending {pipeName} response: {response}."); Serializer.SerializeWithLengthPrefix(pipe, response, PrefixStyle.Base128); //Console.WriteLine($"Sent {pipeName} response."); }
public FileSystemQueryResponse Execute(FileSystemQueryRequest request) { FileSystemQueryResponse response = null; var pipeName = nameof(FileSystemQueryProxy); var pipe = new NamedPipeClientStream(".", pipeName, PipeDirection.InOut, PipeOptions.None); Console.WriteLine($"nprc:{pipeName} connecting to relay."); pipe.ConnectAsync(5000).Wait(); Console.WriteLine($"nprc:{pipeName} connected."); Console.WriteLine($"nprc:Sending {pipeName} request: {request}."); Serializer.SerializeWithLengthPrefix(pipe, request, PrefixStyle.Base128); //Console.WriteLine($"nprc:Sent {pipeName} request."); //Console.WriteLine($"nprc:Receiving {pipeName} response."); response = Serializer.DeserializeWithLengthPrefix <FileSystemQueryResponse>(pipe, PrefixStyle.Base128); Console.WriteLine($"nprc:Received {pipeName} response: {response}."); return(response); }
private void ProcessProxyRequest() { try { if (!_proxyPipe.IsConnected) { Console.WriteLine($"nprs:Listening for {_proxyPipeName} connection."); _proxyPipe.WaitForConnection(); Console.WriteLine($"nprs:{_proxyPipeName} connected."); } //Console.WriteLine($"nprs:Waiting to receive {_proxyPipeName} request."); var request = Serializer.DeserializeWithLengthPrefix <FileSystemQueryRequest>(_proxyPipe, PrefixStyle.Base128); Console.WriteLine($"nprs:Received {_proxyPipeName} request: {request}."); FileSystemQueryResponse response = null; if (_servicePipe != null && _servicePipe.IsConnected) { Console.WriteLine($"nprs:Forwarding {_servicePipeName} request: {request}."); Serializer.SerializeWithLengthPrefix(_servicePipe, request, PrefixStyle.Base128); //Console.WriteLine($"nprs:Forwared {_servicePipeName} request."); //Console.WriteLine($"nprs:Waiting to receive {_servicePipeName} response."); response = Serializer.DeserializeWithLengthPrefix <FileSystemQueryResponse>(_servicePipe, PrefixStyle.Base128); Console.WriteLine($"nprs:Received {_servicePipeName} response: {response}."); } //Console.WriteLine($"nprs:Returning {_proxyPipeName} response."); Serializer.SerializeWithLengthPrefix(_proxyPipe, response, PrefixStyle.Base128); Console.WriteLine($"nprs:Returned {_proxyPipeName} response."); _proxyPipe.Disconnect(); } catch (Exception ex) { } }