FRCloudFilesProviderBase.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. 
  2. using System;
  3. using System.Linq;
  4. using System.Globalization;
  5. using System.Text;
  6. using System.Threading;
  7. using System.Threading.Tasks;
  8. using FastReport.Auth;
  9. using FastReport.Cloud.FastReport.Models;
  10. using System.Net;
  11. namespace FastReport.Cloud.FastReport
  12. {
  13. internal abstract class FRCloudFilesProviderBase : HttpMessages
  14. {
  15. private readonly string API_BASEPATH;
  16. public FRCloudFilesProviderBase(AuthService authService, string API_BASEPATH)
  17. : base(authService)
  18. {
  19. this.API_BASEPATH = API_BASEPATH;
  20. }
  21. protected string CreateFileURL(string folderId)
  22. {
  23. var urlBuilder_ = new StringBuilder();
  24. urlBuilder_.Append(API_BASEPATH).Append("/Folder/{id}/File");
  25. urlBuilder_.Replace("{id}", folderId);
  26. var url_ = urlBuilder_.ToString();
  27. return url_;
  28. }
  29. protected string CreateFolderURL(string folderId)
  30. {
  31. var urlBuilder_ = new StringBuilder();
  32. urlBuilder_.Append(API_BASEPATH).Append("/Folder/{id}/Folder");
  33. urlBuilder_.Replace("{id}", folderId);
  34. var url_ = urlBuilder_.ToString();
  35. return url_;
  36. }
  37. protected string RenameURL(FileVM folderOrFile)
  38. {
  39. string id = folderOrFile.Id;
  40. string url;
  41. if (folderOrFile.Type == FileType.File)
  42. url = RenameFileURL(id);
  43. else
  44. url = RenameFolderURL(id);
  45. return url;
  46. }
  47. protected string DeleteURL(FileVM folderOrFile)
  48. {
  49. string id = folderOrFile.Id;
  50. string url;
  51. if (folderOrFile.Type == FileType.File)
  52. url = DeleteFileURL(id);
  53. else
  54. url = DeleteFolderURL(id);
  55. return url;
  56. }
  57. protected string GetFoldersAndFilesURL(string folderId, SearchOptions options)
  58. {
  59. if (folderId == null)
  60. throw new ArgumentNullException(nameof(folderId));
  61. if (options == null)
  62. options = SearchOptions.Default;
  63. var urlBuilder_ = new StringBuilder(64);
  64. urlBuilder_.Append(API_BASEPATH).Append("/Folder/{id}/ListFolderAndFiles?");
  65. urlBuilder_.Replace("{id}", Uri.EscapeDataString(folderId));
  66. if (options.Skip != null)
  67. {
  68. urlBuilder_.Append("skip=").Append(options.Skip.Value).Append('&');
  69. }
  70. if (options.Take != null)
  71. {
  72. urlBuilder_.Append("take=").Append(options.Take.Value).Append('&');
  73. }
  74. if (options.OrderBy != null)
  75. {
  76. urlBuilder_.Append("orderBy=").Append(options.OrderBy.ToString()).Append('&');
  77. }
  78. if (options.Desc != null)
  79. {
  80. urlBuilder_.Append("desc=").Append(options.Desc.Value).Append('&');
  81. }
  82. if (!string.IsNullOrEmpty(options.SearchPattern))
  83. {
  84. urlBuilder_.Append("searchPattern=").Append(Uri.EscapeDataString(options.SearchPattern)).Append('&');
  85. }
  86. //if (useRegex != null)
  87. //{
  88. // urlBuilder_.Append("useRegex=").Append(Uri.EscapeDataString(useRegex)).Append('&');
  89. //}
  90. urlBuilder_.Length--;
  91. return urlBuilder_.ToString();
  92. }
  93. protected string GetFileURL(string id)
  94. {
  95. var urlBuilder_ = new StringBuilder();
  96. urlBuilder_.Append(API_BASEPATH).Append($"/File/").Append(id);
  97. var url_ = urlBuilder_.ToString();
  98. return url_;
  99. }
  100. private string RenameFileURL(string id)
  101. {
  102. var urlBuilder_ = new StringBuilder();
  103. urlBuilder_.Append(API_BASEPATH).Append("/File/{id}/Rename");
  104. urlBuilder_.Replace("{id}", id);
  105. var url_ = urlBuilder_.ToString();
  106. return url_;
  107. }
  108. private string RenameFolderURL(string id)
  109. {
  110. var urlBuilder_ = new StringBuilder();
  111. urlBuilder_.Append(API_BASEPATH).Append("/Folder/{id}/Rename");
  112. urlBuilder_.Replace("{id}", id);
  113. var url_ = urlBuilder_.ToString();
  114. return url_;
  115. }
  116. private string DeleteFileURL(string id)
  117. {
  118. var urlBuilder_ = new StringBuilder();
  119. urlBuilder_.Append(API_BASEPATH).Append("/File/")
  120. .Append(id);
  121. var url_ = urlBuilder_.ToString();
  122. return url_;
  123. }
  124. private string DeleteFolderURL(string id)
  125. {
  126. var urlBuilder_ = new StringBuilder();
  127. urlBuilder_.Append(API_BASEPATH).Append("/Folder/")
  128. .Append(id);
  129. var url_ = urlBuilder_.ToString();
  130. return url_;
  131. }
  132. }
  133. }