-
Notifications
You must be signed in to change notification settings - Fork 6
Files and Attachments
Nathan Smith edited this page Nov 15, 2025
·
1 revision
Quickfire treats attachments as first-class data so producers can drag quotes/forms into proposals, link Epic docs, and open anything on disk instantly.
- Drag/drop anywhere you see
DropzoneContainer(renewals, proposals, clients) and the app auto-hashes, stores, and thumbnails the file - Pin quotes/forms to proposals with quick stacks in
Domain/Proposals/Components/Attachments.razor - Flip between local, network, or Azure Blob storage without code changes (handled via
AttachmentService+ system settings) - Launch Explorer/Word/Browser directly using
StringHelper.BuildWindowsPath(Ctrl+Click copies paths your team shares) - Import/export Epic attachments via
AttachmentEpicListGridandEpicAttachmentImportService
| Concern | Files |
|---|---|
| UI grids + quick stacks |
src/Quickfire.Blazor/Domain/Attachments/Components/AttachmentListGrid.razor, AttachmentIcons.razor, AttachmentPreview.razor
|
| Drop zones |
Domain/Attachments/Components/DropzoneContainer.razor + CSS for focus states |
| Service layer |
Domain/Attachments/Services/AttachmentService.cs, AttachmentUploaderApi.cs, EpicAttachmentImportService.cs
|
| Helpers |
Domain/Shared/Helpers/StringHelpers.cs (hashing, paths, thumbnails), Domain/Utilities/Services/PolicyXmlImportService.cs
|
| Storage selection | Profile → System Settings toggles (local path vs. Azure) feed StateService.GetSystemSettingsAsync()
|
- Files live under
wwwroot/<client>/<YYYY>/<hash>for local/dev and can be redirected to UNC paths for production - Hashing (
GenerateFiveCharacterHash) keeps filenames short butStringHelper.RemoveHashedFileNamereconstructs friendly names in grids - Azure Blob support hooks into
AttachmentService.UploadToAzureAsynconce credentials exist in IntegrationKeyValues
- Reuse the
AttachmentGroupIdassociated with renewals/policies so attachments show up everywhere automatically - When adding new UI around attachments, use the helper components (icons/list grid) so keyboard + drag/drop behavior stays consistent
- Reference reference/Binding-Events for the proper
@bind/ValueChangedcombos on Fluent/Sf controls used inside attachment dialogs
Related docs: features/Proposals-and-Proposler for how attachments feed Proposler, and features/Renewals-and-Submissions for renewal-specific attachment handling.
Quickfire Wiki • Generated from Qf-Docs/wiki • Last updated: 2025-11-14.
See the main repo for README + issues.
- Home
- Getting Started
- System Architecture
- Release Notes
- Features
- Agents & AI
- Reference
- Guides
- Integrations
- Archive