CoreUpload Quick Start
======================

1. Open a terminal in the `DemoApp` folder.
2. Run `dotnet restore`.
3. Run `dotnet run`.
4. Open the local URL shown by ASP.NET Core.

Using Blazor? See `05-Blazor-Component.txt` and the runnable `BlazorDemo\` app.

Package notes
-------------

- `DemoApp\NuGet.Config` points to the local `packages` folder first.
- The bundled `packages\CoreUpload.<version>.nupkg` is what the demo restores against, so you run exactly the build in this download.
- Loose manual-use files are included under `files\`.
- The demo site includes working upload, chunking, image, queue, and security samples.

Minimal integration
-------------------

1. Add `@addTagHelper *, CoreUpload` to `_ViewImports.cshtml`.
2. Register CoreUpload in `Program.cs`:

   builder.Services.AddCoreUpload();
   app.UseCoreUpload();
   app.MapCoreUploadEndpoints();

3. Add a Tag Helper to a Razor page:

   <core-upload asp-multiple="true" asp-auto-upload="true"></core-upload>

IMPORTANT - SAVING FILES
------------------------
Uploads are temporary until an IUploadEventHandler (or your endpoint code)
saves them. See 04-Saving-Uploaded-Files.txt - the demo app ships a working
handler (SaveUploadsToDisk.cs) that copies every upload to wwwroot/uploads.

Package layout
--------------

- coreupload\ contains the loose obfuscated CoreUpload.dll, coreupload.js, coreupload.css, and CoreUpload.xml files for manual deployment.
- files\ mirrors the ASP.NET Core static web assets layout under wwwroot\_content\CoreUpload\.
- packages\ contains the rebuilt CoreUpload NuGet package that uses the same obfuscated runtime files.
- packages-cache\ is the local NuGet restore cache used by DemoApp so it always restores from the bundled package.

Runtime note
------------

- The included CoreUpload package and loose files use the obfuscated CoreUpload.dll and coreupload.js from src\obfuscated.
