SftpOpenRequestBuilder.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using System;
  2. using System.Text;
  3. using Renci.SshNet.Sftp;
  4. using Renci.SshNet.Sftp.Requests;
  5. using Renci.SshNet.Sftp.Responses;
  6. namespace Renci.SshNet.Tests.Classes.Sftp
  7. {
  8. internal class SftpOpenRequestBuilder
  9. {
  10. private uint _protocolVersion;
  11. private uint _requestId;
  12. private string _fileName;
  13. private Encoding _encoding;
  14. private Flags _flags;
  15. private Action<SftpHandleResponse> _handleAction;
  16. private Action<SftpStatusResponse> _statusAction;
  17. public SftpOpenRequestBuilder WithProtocolVersion(uint protocolVersion)
  18. {
  19. _protocolVersion = protocolVersion;
  20. return this;
  21. }
  22. public SftpOpenRequestBuilder WithRequestId(uint requestId)
  23. {
  24. _requestId = requestId;
  25. return this;
  26. }
  27. public SftpOpenRequestBuilder WithFileName(string fileName)
  28. {
  29. _fileName = fileName;
  30. return this;
  31. }
  32. public SftpOpenRequestBuilder WithEncoding(Encoding encoding)
  33. {
  34. _encoding = encoding;
  35. return this;
  36. }
  37. public SftpOpenRequestBuilder WithFlags(Flags flags)
  38. {
  39. _flags = flags;
  40. return this;
  41. }
  42. public SftpOpenRequestBuilder WithDataAction(Action<SftpHandleResponse> handleAction)
  43. {
  44. _handleAction = handleAction;
  45. return this;
  46. }
  47. public SftpOpenRequestBuilder WithStatusAction(Action<SftpStatusResponse> statusAction)
  48. {
  49. _statusAction = statusAction;
  50. return this;
  51. }
  52. public SftpOpenRequest Build()
  53. {
  54. var handleAction = _handleAction ?? ((handleResponse) => { });
  55. var statusAction = _statusAction ?? ((statusResponse) => { });
  56. return new SftpOpenRequest(_protocolVersion, _requestId, _fileName, _encoding, _flags, handleAction, statusAction);
  57. }
  58. }
  59. }