chap 5: Umsetzung — 11 Abschnitte + module-components/zip-stream/race-condition diagrams
This commit is contained in:
@@ -1,29 +1,39 @@
|
||||
classDiagram
|
||||
class DocumentsPage {
|
||||
+OnGetAsync()
|
||||
+OnGetDownloadAsync()
|
||||
+OnGetZipAsync()
|
||||
}
|
||||
class DocumentsService {
|
||||
+ListDocumentsAsync(orgId, search, type, token)
|
||||
+GetDownloadUrlAsync(orgId, key)
|
||||
+GetZipStreamAsync(orgId, keys)
|
||||
+ResolveCustomerPrefixAsync(orgId, orgName)
|
||||
}
|
||||
class S3DocumentsClient {
|
||||
-IAmazonS3 _s3
|
||||
+ListObjectsAsync(prefix, delimiter, token)
|
||||
+GetObjectMetadataAsync(key)
|
||||
+GetPresignedUrlAsync(key)
|
||||
}
|
||||
class OrgSlug {
|
||||
+Slugify(name) string
|
||||
}
|
||||
class S3Settings {
|
||||
+BucketName string
|
||||
+ServiceUrl string
|
||||
}
|
||||
DocumentsPage --> DocumentsService
|
||||
DocumentsService --> S3DocumentsClient
|
||||
DocumentsService --> OrgSlug
|
||||
S3DocumentsClient --> S3Settings
|
||||
flowchart TB
|
||||
subgraph Pages["Pages"]
|
||||
P1["Documents.cshtml<br/>+ .cshtml.cs<br/><i>Liste, Suche, Filter, Seiten</i>"]
|
||||
P2["Document/Download.cshtml.cs<br/><i>Einzel- und ZIP-Download</i>"]
|
||||
P3["Document/Share.cshtml.cs<br/><i>OpenGraph-Vorschau</i>"]
|
||||
end
|
||||
|
||||
subgraph Services["Services"]
|
||||
S["DocumentsService<br/><i>Auflisten, Filtern, Aufloesen<br/>des Kundenordners</i>"]
|
||||
C["S3DocumentsClient<br/><i>Kapselung von IAmazonS3</i>"]
|
||||
end
|
||||
|
||||
subgraph Model["Model/Documents"]
|
||||
M1["DocumentType<br/><i>Enum + Ableitung<br/>aus Ordnername</i>"]
|
||||
M2["DocumentName<br/><i>Anzeigename,<br/>.url-Erkennung</i>"]
|
||||
M3["DocumentKey /<br/>RelativePath<br/><i>validierte Pfade</i>"]
|
||||
M4["OrgSlug<br/><i>Normalisierung des<br/>Firmennamens</i>"]
|
||||
M5["DocumentViewModel"]
|
||||
end
|
||||
|
||||
EXT["IAmazonS3<br/>(AWS SDK)"]
|
||||
CFG["S3Settings<br/><i>keyed service</i>"]
|
||||
|
||||
P1 --> S
|
||||
P2 --> S
|
||||
P3 --> S
|
||||
S --> C
|
||||
S --> M1
|
||||
S --> M2
|
||||
S --> M4
|
||||
S --> M5
|
||||
P2 --> M3
|
||||
C --> EXT
|
||||
C --> CFG
|
||||
|
||||
style S fill:#dae8fc,stroke:#6c8ebf
|
||||
style C fill:#dae8fc,stroke:#6c8ebf
|
||||
style EXT fill:#f5f5f5,stroke:#999
|
||||
style CFG fill:#f5f5f5,stroke:#999
|
||||
|
||||
Reference in New Issue
Block a user