From f1d796aa96254738d787a6519415afad5ef81cde Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 30 Jul 2025 14:21:17 +0000 Subject: [PATCH 1/5] Initial plan From 0703c134c6139dde2d1e74fb09ccea93038270de Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 30 Jul 2025 14:37:30 +0000 Subject: [PATCH 2/5] Upgrade project to .NET 9 and .NET 8 with updated dependencies Co-authored-by: kirkone <15778270+kirkone@users.noreply.github.com> --- global.json | 2 +- .../CZ.Azure.FileExchange.Api.csproj | 22 +++++++++---------- .../CZ.Azure.FileExchange.csproj | 17 ++++++-------- .../Client/styles/main.scss | 2 +- 4 files changed, 20 insertions(+), 23 deletions(-) diff --git a/global.json b/global.json index e23437b..04f5d2c 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "7.0.100", + "version": "9.0.303", "rollForward": "latestMajor" } } diff --git a/src/CZ.Azure.FileExchange.Api/CZ.Azure.FileExchange.Api.csproj b/src/CZ.Azure.FileExchange.Api/CZ.Azure.FileExchange.Api.csproj index abba096..c95baff 100644 --- a/src/CZ.Azure.FileExchange.Api/CZ.Azure.FileExchange.Api.csproj +++ b/src/CZ.Azure.FileExchange.Api/CZ.Azure.FileExchange.Api.csproj @@ -1,6 +1,6 @@ - net7.0 + net8.0 v4 Exe enable @@ -8,17 +8,17 @@ 84a717a7-ef76-47be-9101-2a62e74fd7d3 - - - - - - + + + + + + - - - - + + + + diff --git a/src/CZ.Azure.FileExchange/CZ.Azure.FileExchange.csproj b/src/CZ.Azure.FileExchange/CZ.Azure.FileExchange.csproj index 31c09cb..e68555b 100644 --- a/src/CZ.Azure.FileExchange/CZ.Azure.FileExchange.csproj +++ b/src/CZ.Azure.FileExchange/CZ.Azure.FileExchange.csproj @@ -1,35 +1,32 @@ - net7.0 + net9.0 enable enable - - - - + + + + - + compressed expanded - verbose - High - + --> \ No newline at end of file diff --git a/src/CZ.Azure.FileExchange/Client/styles/main.scss b/src/CZ.Azure.FileExchange/Client/styles/main.scss index d429f3b..1922a49 100644 --- a/src/CZ.Azure.FileExchange/Client/styles/main.scss +++ b/src/CZ.Azure.FileExchange/Client/styles/main.scss @@ -2,7 +2,7 @@ // Structuring your Sass Projects // https://itnext.io/structuring-your-sass-projects-c8d41fa55ed4 -@use './vendors/cssgg'; +// @use './vendors/cssgg'; @use './abstracts/variables'; @use './abstracts/mixins'; From 1c2c7f4e48863bd6fb539d7e72ca8c53b744ded3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 30 Jul 2025 14:46:20 +0000 Subject: [PATCH 3/5] Apply .NET 9 features and improve code quality Co-authored-by: kirkone <15778270+kirkone@users.noreply.github.com> --- src/CZ.Azure.FileExchange.Api/AddMetadata.cs | 27 +++++++------ .../CZ.Azure.FileExchange.csproj | 4 +- .../Pages/Download.razor.cs | 39 +++++++++++++++---- .../Pages/Index.razor.cs | 8 ++-- 4 files changed, 52 insertions(+), 26 deletions(-) diff --git a/src/CZ.Azure.FileExchange.Api/AddMetadata.cs b/src/CZ.Azure.FileExchange.Api/AddMetadata.cs index ba89fc8..44b9281 100644 --- a/src/CZ.Azure.FileExchange.Api/AddMetadata.cs +++ b/src/CZ.Azure.FileExchange.Api/AddMetadata.cs @@ -35,7 +35,7 @@ public async Task Run( var events = EventGridEvent.ParseMany(eventsRaw); var relevantChangeTierEvents = events.Where(e => e.EventType == BlobChanged && - e.Data.ToObjectFromJson().api == SetBlobTier + e.Data.ToObjectFromJson()?.api == SetBlobTier ); var relevantValidationEvents = events.Where(e => @@ -47,13 +47,16 @@ public async Task Run( foreach (var tierChangedEvent in relevantChangeTierEvents) { var data = tierChangedEvent.Data.ToObjectFromJson(); + if (data?.url == null) continue; + var blobUri = new Uri(data.url); var containerName = blobUri.Segments.Skip(1).First()[..^1]; var containerClient = blobService.GetBlobContainerClient(containerName); var blobClient = containerClient.GetBlobClient(blobUri.Segments.Last()); - await blobClient.SetMetadataAsync(new Dictionary() { + await blobClient.SetMetadataAsync(new Dictionary + { // That is important to change the 'x-ms-last-access-time' - { "lastTimeRetrieved", tierChangedEvent.EventTime.ToString(CultureInfo.CurrentCulture)} + ["lastTimeRetrieved"] = tierChangedEvent.EventTime.ToString(CultureInfo.CurrentCulture) }); } } @@ -92,20 +95,20 @@ private static string GetEnvironmentVariable(string name) => public class BlobTierChangeEvent { - public string api { get; set; } - public string requestId { get; set; } - public string eTag { get; set; } - public string contentType { get; set; } + public required string api { get; set; } + public required string requestId { get; set; } + public required string eTag { get; set; } + public required string contentType { get; set; } public int contentLength { get; set; } - public string blobType { get; set; } - public string url { get; set; } - public string sequencer { get; set; } - public Storagediagnostics storageDiagnostics { get; set; } + public required string blobType { get; set; } + public required string url { get; set; } + public required string sequencer { get; set; } + public required Storagediagnostics storageDiagnostics { get; set; } } public class Storagediagnostics { - public string batchId { get; set; } + public required string batchId { get; set; } } } diff --git a/src/CZ.Azure.FileExchange/CZ.Azure.FileExchange.csproj b/src/CZ.Azure.FileExchange/CZ.Azure.FileExchange.csproj index e68555b..374ddab 100644 --- a/src/CZ.Azure.FileExchange/CZ.Azure.FileExchange.csproj +++ b/src/CZ.Azure.FileExchange/CZ.Azure.FileExchange.csproj @@ -7,13 +7,13 @@ - + - + + + - --> \ No newline at end of file diff --git a/src/CZ.Azure.FileExchange/Client/styles/main.css.map b/src/CZ.Azure.FileExchange/Client/styles/main.css.map new file mode 100644 index 0000000..00a5276 --- /dev/null +++ b/src/CZ.Azure.FileExchange/Client/styles/main.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["vendors/_cssgg.scss","abstracts/_variables.scss","base/_reset.scss","base/_base.scss","base/_typography.scss","layout/_header.scss","layout/_navigation.scss","layout/_main.scss","components/_blazor-error.scss","components/_blazor-splash.scss","components/_button.scss","abstracts/_mixins.scss","components/_input-text.scss","pages/_index.scss","pages/_download.scss"],"names":[],"mappings":"AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGA;AAAA;EAEA;EACA;EACA;EACA;;;AAGA;EACA,YACA;EAMA;EACA;EACA;EACA;EACA;;;AAGA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACA;EAGA;EACA;EACA;;;AAGD;AAAA;EAEC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACnMR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACjCH;AAAA;AAAA;EAGG;EACA;EACA;EACA;EACA;;;ACJJ;AAAA;EAEI;EACA;;;AAGJ;EACI,aCTG;EDUH;EACA;EACA;EACA,YFdS;;;AIEb;EACI;;AAEA;EACI;EACA,aJSM;EIRN;EACA;EACA;EACA;EACA;;;ACVR;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA,aLMM;EKLN;EACA;EACA;;AAEA;EACI,QLOE;;;AMvBd;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;;ACRP;EACG;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;;AAKR;EACI;EACA;EACA;;AAEA;EACI;;;ACxBR;AAII;EACI;EACA;EACA,aROM;EQNN;EACA;EACA;EACA,QRUM;;;AQNd;ACdA;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;ECTA;EACA;EACA;EACA;EACA;EACA;EDMA;EACA;EACA;EACA,aTDU;ESEV;EACA;EACA;EAEA;;AAEA;EACI;;AAEJ;EACI;;AAGJ;EACI;EACA;;;AE9BR;EACI;EACA;EACA;;;AAGJ;EDNI;EACA;EACA;EACA;EACA;EACA;ECGA;EACA;EACA;EACA;;AAEA;EACI;EACA,kBXfU;;;AYChB;EFDE;EACA;EACA;EACA;EACA;EACA;EEFA;;AAEA;EACE;EACA,aZMQ;;AYHV;EACE;EACA;EACA;EACA;;AAEA;EACE,kBZZY;;AYed;EACE;;AAMN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EFrCF;EACA;EACA;EACA;EACA;EACA;EEmCE;;AAEA;EACE;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACI;;AAKR;EACE;EACA;EACA;;AAEA;EACE;;AAGE;EACE;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAIJ;EFrHF;EACA;EACA;EACA;EACA;EACA;EEkHI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;;;AC3JZ;EACI;EHFA;EACA;EACA;EACA;EACA;EACA;EGAA;;AAGJ;EACI;EACA;EACA;;AAEA;EHbA;EACA;EACA;EACA;EACA;EACA;EGUI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAIJ;EACI;EACA;;AAEA;EACI;EACA,ObhCO;;AakCP;EACI","file":"main.css"} \ No newline at end of file diff --git a/src/CZ.Azure.FileExchange/Client/styles/main.scss b/src/CZ.Azure.FileExchange/Client/styles/main.scss index 1922a49..d429f3b 100644 --- a/src/CZ.Azure.FileExchange/Client/styles/main.scss +++ b/src/CZ.Azure.FileExchange/Client/styles/main.scss @@ -2,7 +2,7 @@ // Structuring your Sass Projects // https://itnext.io/structuring-your-sass-projects-c8d41fa55ed4 -// @use './vendors/cssgg'; +@use './vendors/cssgg'; @use './abstracts/variables'; @use './abstracts/mixins'; From 45cb13c6e59bc37fa6d630a13951e09be66cf071 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 30 Jul 2025 15:37:20 +0000 Subject: [PATCH 5/5] Fix Azure Static Web Apps CI/CD Action by updating deprecated actions Co-authored-by: kirkone <15778270+kirkone@users.noreply.github.com> --- .github/workflows/main.yml | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 24d07ec..8f4f9c1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,7 +14,7 @@ jobs: if: (github.event_name == 'pull_request' && github.event.action != 'closed') runs-on: windows-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: true - name: Publish Frontend @@ -28,16 +28,12 @@ jobs: Compress-Archive temp/api/** temp/api.zip; Remove-Item -Recurse -Force temp/frontend Remove-Item -Recurse -Force temp/api - - name: Add Artifact App - uses: actions/upload-artifact@v3 + Copy-Item ./build/deploy.ps1 temp/deploy.ps1 + - name: Add Artifact + uses: actions/upload-artifact@v4 with: name: artifact path: temp/ - - name: Add Artifact script - uses: actions/upload-artifact@v3 - with: - name: artifact - path: ./build/deploy.ps1 deploy_job: if: (github.event_name == 'pull_request' && github.event.action != 'closed') runs-on: ubuntu-latest @@ -51,7 +47,7 @@ jobs: pull-requests: write name: Deploy Job steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: true - name: compile bicep @@ -97,7 +93,7 @@ jobs: runs-on: ubuntu-latest name: Close Pull Request Job steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: true - name: Get PR title