Commit db47b4f
refactor: DocumentConversionService 重命名為 DocumentConverter 靜態類別、HostFactory 參數封裝、SonarCloud 程式碼品質修復、測試覆蓋率大幅擴展
1. DocumentConversionService → DocumentConverter 重構
- DocumentConversionService.cs 重命名為 DocumentConverter.cs
- 改為純靜態方法設計,移除實例化需求
- ExtensionSessionBridge.cs:移除 DocumentConversionService 依賴注入,改用 DocumentConverter 靜態呼叫
- ConvertDocumentTool.cs:所有轉換方法改為 DocumentConverter 靜態呼叫
- HostFactory.cs:移除 DocumentConversionService 服務註冊
2. HostFactory 參數封裝優化
- 新增 HostConfigBundle record 封裝所有配置物件(ServerConfig、TransportConfig、SessionConfig、AuthConfig、TrackingConfig、OriginConfig、ExtensionConfig)
- CreateStdioHost、CreateHttpHost、CreateWebSocketHost 方法簽章簡化,改接收單一 bundle 參數
- 減少方法參數數量,提升程式碼可讀性
3. SonarCloud 程式碼品質修復
- Extension.cs:使用 ObjectDisposedException.ThrowIf() 替代手動 if + throw
- Extension.cs:OperationCanceledException、TimeoutException catch 區塊傳遞 exception 至 LogWarning
- ExtensionConfig.cs:ValidateTempDirectory 使用 LINQ Any() 替代 foreach 迴圈
- ExtensionManager.cs:新增靜態 JsonOptions 快取 JsonSerializerOptions 避免重複建立
- ExtensionManager.cs:processCleanupManager?.Dispose() 簡化條件式呼叫
- ExtensionManager.cs:TimeoutException、OperationCanceledException catch 區塊傳遞 exception 至 LogWarning/LogDebug
- ExtensionSessionBridge.cs:_pendingModifications.AddOrUpdate lambda 參數 `_` 改為 `key` 消除未使用參數警告
- ExtensionSessionBridge.cs:ObjectDisposedException、OperationCanceledException catch 區塊傳遞 exception 至 LogDebug
- FileTransport.cs:DirectoryNotFoundException catch 區塊傳遞 exception 至 LogWarning
- ProcessCleanupManager.cs:CreateJobObject、SetInformationJobObject、AssignProcessToJobObject 加入 SuppressMessage 抑制 SYSLIB1054 警告
4. 測試覆蓋率擴展
- 新增 DocumentConverterTests.cs(約 1100 行):完整覆蓋 GetMimeType、IsFormatSupported、ConvertToBytes、IsWordDocument、IsExcelDocument、IsPowerPointDocument、IsPdfDocument、IsPdfConvertibleFormat、IsImageFormat、ConvertWordDocument、ConvertExcelDocument、ConvertPowerPointDocument、ConvertPdfDocument、ConvertPdfToImages、ConvertToPdfFromSpecialFormat 等所有靜態方法
- 刪除 DocumentConversionServiceTests.cs(配合類別重命名)
- ExtensionMetadataTests.cs:新增 VerifyChecksum_NullData_NonZeroChecksum_ReturnsFalse、VerifyChecksum_EmptyData_NonZeroChecksum_ReturnsFalse、CreateCommand_ReturnsValidCommandMetadata、CreateCommand_WithoutPayload_ReturnsValidCommandMetadata、CreateCommand_GeneratesUniqueCommandIds
- ExtensionManagerTests.cs:新增靜態 TestJsonOptions 快取 JsonSerializerOptions
- GenerateBarcodeHandlerTests.cs(新增約 470 行):
- Execute_CreatesOutputDirectoryIfNotExists 目錄自動建立測試
- QRCODE、Code39Standard、Code39Extended、EAN8、EAN13、UPC-A、UPC-E、ISBN、ISSN 條碼類型測試
- Codabar、ITF14、Interleaved2of5、Standard2of5、DataMatrix、PDF417、AztecCode 條碼類型測試
- MaxiCode、PatchCode、DataLogic2of5、Pharmacode、OPC、IATA2of5 條碼類型測試
- BMP、GIF、EMF、SVG 輸出格式測試
- RecognizeBarcodeHandlerTests.cs(新增約 470 行):
- CreateEmptyImage 輔助方法
- all、AllSupportedTypes、QRCODE 解碼類型別名測試
- Code39Standard、Code39Extended、EAN8、EAN13、UPC-A、UPC-E 辨識測試
- Codabar、Code93、ITF14、DataMatrix、PDF417、Aztec 辨識測試
- MaxiCode、MicroQR、DotCode、PostNet 辨識測試
- HighPerformance、HighQuality 精度模式測試
- MultipleBarcodes、NoBarcode、EmptyImage 邊界測試
- SetPdfPropertiesHandlerTests.cs(新增約 120 行):
- Execute_ReturnsSuccessMessage 結果訊息驗證
- Execute_WithAllEmptyValues_DoesNotFail、Execute_WithAllNullValues_DoesNotFail 邊界測試
- 特殊字元(<, >, &, ', ")、Unicode、超長文字、換行符號屬性值測試
- CreationDate、ModDate 日期格式測試
- GetPdfSignaturesHandlerTests.cs(新增約 130 行):
- CreatePdfWithMultipleSignatureFields 輔助方法
- Execute_WithSignatureField_ReturnsSignatureInfo 簽章資訊測試
- Execute_WithMultipleSignatureFields_ReturnsAllSignatures 多簽章測試
- Execute_WithUnsignedField_ReturnsInvalidSignature 未簽署欄位測試
- 空文檔、多頁簽章欄位測試
- ProcessCleanupManagerTests.cs:配合 SuppressMessage 屬性調整
5. 文檔更新
- docs/extensions.html:新增「實際範例:aspose-mcp-preview」章節
- docs/extensions.html:新增 aspose-mcp-preview 功能展示 GIF、安裝配置範例、命令列選項表格
- docs/extensions.html:更新最佳實踐(優先使用 stdin 傳輸模式、mmap 用於最佳效能)
- docs/extensions.html:相關資源新增 aspose-mcp-preview GitHub 連結
- 新增 docs/images/aspose-mcp-preview-demo.gif 示範影像1 parent 3bcdc3a commit db47b4f
File tree
20 files changed
+2624
-458
lines changed- Core
- Conversion
- Extension
- Transport
- Tests
- Core
- Conversion
- Extension
- Handlers
- BarCode
- Generate
- Recognize
- Pdf
- Properties
- Signature
- Tools/Conversion
- docs
- images
20 files changed
+2624
-458
lines changedLines changed: 7 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
71 | | - | |
| 71 | + | |
72 | 72 | | |
73 | | - | |
| 73 | + | |
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
| |||
340 | 340 | | |
341 | 341 | | |
342 | 342 | | |
343 | | - | |
| 343 | + | |
344 | 344 | | |
345 | 345 | | |
346 | 346 | | |
| |||
379 | 379 | | |
380 | 380 | | |
381 | 381 | | |
382 | | - | |
| 382 | + | |
383 | 383 | | |
384 | 384 | | |
385 | 385 | | |
| |||
955 | 955 | | |
956 | 956 | | |
957 | 957 | | |
958 | | - | |
| 958 | + | |
959 | 959 | | |
960 | 960 | | |
961 | 961 | | |
| |||
967 | 967 | | |
968 | 968 | | |
969 | 969 | | |
970 | | - | |
| 970 | + | |
971 | 971 | | |
972 | 972 | | |
973 | 973 | | |
| |||
978 | 978 | | |
979 | 979 | | |
980 | 980 | | |
981 | | - | |
| 981 | + | |
982 | 982 | | |
983 | 983 | | |
984 | 984 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
424 | 424 | | |
425 | 425 | | |
426 | 426 | | |
427 | | - | |
428 | | - | |
| 427 | + | |
429 | 428 | | |
430 | 429 | | |
431 | 430 | | |
| |||
1123 | 1122 | | |
1124 | 1123 | | |
1125 | 1124 | | |
1126 | | - | |
| 1125 | + | |
1127 | 1126 | | |
1128 | | - | |
| 1127 | + | |
1129 | 1128 | | |
1130 | 1129 | | |
1131 | 1130 | | |
| |||
1854 | 1853 | | |
1855 | 1854 | | |
1856 | 1855 | | |
1857 | | - | |
| 1856 | + | |
1858 | 1857 | | |
1859 | | - | |
| 1858 | + | |
1860 | 1859 | | |
1861 | 1860 | | |
1862 | 1861 | | |
| |||
1875 | 1874 | | |
1876 | 1875 | | |
1877 | 1876 | | |
1878 | | - | |
| 1877 | + | |
1879 | 1878 | | |
1880 | | - | |
| 1879 | + | |
1881 | 1880 | | |
1882 | 1881 | | |
1883 | 1882 | | |
| |||
2049 | 2048 | | |
2050 | 2049 | | |
2051 | 2050 | | |
2052 | | - | |
| 2051 | + | |
2053 | 2052 | | |
2054 | | - | |
| 2053 | + | |
2055 | 2054 | | |
2056 | 2055 | | |
2057 | 2056 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
617 | 617 | | |
618 | 618 | | |
619 | 619 | | |
620 | | - | |
621 | | - | |
622 | | - | |
623 | | - | |
624 | | - | |
625 | | - | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
626 | 626 | | |
627 | 627 | | |
628 | 628 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
14 | 22 | | |
15 | 23 | | |
16 | 24 | | |
| |||
162 | 170 | | |
163 | 171 | | |
164 | 172 | | |
165 | | - | |
166 | | - | |
| 173 | + | |
167 | 174 | | |
168 | 175 | | |
169 | 176 | | |
| |||
191 | 198 | | |
192 | 199 | | |
193 | 200 | | |
194 | | - | |
| 201 | + | |
195 | 202 | | |
196 | | - | |
| 203 | + | |
197 | 204 | | |
198 | 205 | | |
199 | 206 | | |
| |||
205 | 212 | | |
206 | 213 | | |
207 | 214 | | |
208 | | - | |
| 215 | + | |
209 | 216 | | |
210 | | - | |
| 217 | + | |
211 | 218 | | |
212 | 219 | | |
213 | 220 | | |
| |||
220 | 227 | | |
221 | 228 | | |
222 | 229 | | |
223 | | - | |
| 230 | + | |
224 | 231 | | |
225 | | - | |
| 232 | + | |
226 | 233 | | |
227 | 234 | | |
228 | 235 | | |
| |||
460 | 467 | | |
461 | 468 | | |
462 | 469 | | |
463 | | - | |
464 | | - | |
465 | | - | |
466 | | - | |
| 470 | + | |
467 | 471 | | |
468 | 472 | | |
469 | 473 | | |
| |||
587 | 591 | | |
588 | 592 | | |
589 | 593 | | |
590 | | - | |
| 594 | + | |
591 | 595 | | |
592 | 596 | | |
593 | 597 | | |
| |||
1080 | 1084 | | |
1081 | 1085 | | |
1082 | 1086 | | |
1083 | | - | |
| 1087 | + | |
1084 | 1088 | | |
1085 | | - | |
| 1089 | + | |
1086 | 1090 | | |
1087 | 1091 | | |
1088 | 1092 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | 83 | | |
89 | 84 | | |
90 | 85 | | |
| |||
154 | 149 | | |
155 | 150 | | |
156 | 151 | | |
157 | | - | |
158 | 152 | | |
159 | 153 | | |
160 | 154 | | |
161 | 155 | | |
162 | 156 | | |
163 | | - | |
164 | 157 | | |
165 | 158 | | |
166 | 159 | | |
167 | 160 | | |
168 | 161 | | |
169 | | - | |
170 | 162 | | |
171 | 163 | | |
172 | 164 | | |
| |||
347 | 339 | | |
348 | 340 | | |
349 | 341 | | |
350 | | - | |
| 342 | + | |
351 | 343 | | |
352 | 344 | | |
353 | 345 | | |
354 | | - | |
| 346 | + | |
355 | 347 | | |
356 | 348 | | |
357 | 349 | | |
358 | 350 | | |
359 | | - | |
| 351 | + | |
360 | 352 | | |
361 | 353 | | |
362 | 354 | | |
| |||
366 | 358 | | |
367 | 359 | | |
368 | 360 | | |
369 | | - | |
| 361 | + | |
370 | 362 | | |
371 | 363 | | |
372 | 364 | | |
| |||
419 | 411 | | |
420 | 412 | | |
421 | 413 | | |
422 | | - | |
| 414 | + | |
423 | 415 | | |
424 | | - | |
| 416 | + | |
425 | 417 | | |
426 | 418 | | |
427 | 419 | | |
| |||
514 | 506 | | |
515 | 507 | | |
516 | 508 | | |
517 | | - | |
| 509 | + | |
518 | 510 | | |
519 | | - | |
| 511 | + | |
520 | 512 | | |
521 | 513 | | |
522 | 514 | | |
| |||
579 | 571 | | |
580 | 572 | | |
581 | 573 | | |
582 | | - | |
| 574 | + | |
583 | 575 | | |
584 | 576 | | |
585 | 577 | | |
| |||
788 | 780 | | |
789 | 781 | | |
790 | 782 | | |
791 | | - | |
| 783 | + | |
792 | 784 | | |
793 | 785 | | |
794 | 786 | | |
| |||
1281 | 1273 | | |
1282 | 1274 | | |
1283 | 1275 | | |
1284 | | - | |
| 1276 | + | |
1285 | 1277 | | |
1286 | 1278 | | |
1287 | 1279 | | |
| |||
1292 | 1284 | | |
1293 | 1285 | | |
1294 | 1286 | | |
1295 | | - | |
| 1287 | + | |
1296 | 1288 | | |
1297 | | - | |
| 1289 | + | |
1298 | 1290 | | |
1299 | 1291 | | |
1300 | 1292 | | |
1301 | 1293 | | |
1302 | | - | |
| 1294 | + | |
1303 | 1295 | | |
1304 | | - | |
| 1296 | + | |
1305 | 1297 | | |
1306 | 1298 | | |
1307 | 1299 | | |
| |||
1390 | 1382 | | |
1391 | 1383 | | |
1392 | 1384 | | |
1393 | | - | |
| 1385 | + | |
1394 | 1386 | | |
1395 | 1387 | | |
1396 | 1388 | | |
| |||
0 commit comments