Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to .Net 8 #387

Merged
merged 110 commits into from
Dec 5, 2024
Merged

Upgrade to .Net 8 #387

merged 110 commits into from
Dec 5, 2024

Conversation

richardAhz
Copy link
Contributor

PR Classification

Code cleanup and modernization.

PR Summary

This pull request involves significant refactoring and modernization of the codebase, including updating assertion methods, removing outdated test files, and migrating to newer Azure SDKs.

  • Updated multiple test files to use Assert.That for better readability and consistency.
  • Removed several outdated or redundant test files related to the Exchange Set Service API.
  • Migrated from deprecated Azure SDK libraries to newer ones (Azure.Storage.Blobs, Azure.Storage.Queues, Azure.Data.Tables).
  • Upgraded project files to target .NET 8.0 and updated several package references.
  • Refactored AzureBlobStorageService.cs and related files to use BlobClient instead of CloudBlockBlob.

Updated EssWebhookService.cs to include additional using directives for Azure and UKHO namespaces. Simplified cache retrieval and updated ETag usage.

Modified UKHO.ExchangeSetService.API.csproj to add AutoMapper package and remove outdated references.

Refactored AzureTableStorageClient.cs to use Azure.Data.Tables, updating CRUD methods accordingly.

Updated IAzureTableStorageClient.cs interface to reflect changes in AzureTableStorageClient.cs.

Updated CacheTableData.cs and FssSearchResponseCache.cs to implement ITableEntity from Azure.Data.Tables.

Updated UKHO.ExchangeSetService.Common.csproj to include Azure.Data.Tables and update Azure.Identity version. Removed Microsoft.Azure.Cosmos.Table reference.

Removed Azure.Identity reference from UKHO.ExchangeSetService.FulfilmentService.csproj.

Updated global.json to change .NET SDK version from 6.0.425 to 8.0.400. This is temporary .
Migrated from the deprecated Microsoft.WindowsAzure.Storage library to the newer Azure.Storage library for handling Azure Blob Storage operations. Key changes include:

- Replaced CloudBlockBlob with BlobClient in AzureBlobStorageServiceTest.cs, AzureBlobStorageClient.cs, AzureBlobStorageService.cs, FileShareServiceCache.cs, FileSystemHelper.cs, IAzureBlobStorageClient.cs, and IFileSystemHelper.cs.
- Updated AzureMessageQueueHelper.cs to use QueueClient instead of CloudQueue.
- Added GetStorageSharedKeyCredentials method in ISalesCatalogueStorageService.cs and implemented it in SalesCatalogueStorageService.cs.
- Updated exception handling to catch RequestFailedException instead of StorageException.
- Removed WindowsAzure.Storage package and added Azure.Storage.Common package in UKHO.ExchangeSetService.Common.csproj.
Refactored `EssWebhookController.cs` to change the creation and
population of `CustomEventGridEvent` and `EnterpriseEventCacheDataRequest`
objects. The old method using `JsonConvert.PopulateObject` directly on
the request string has been replaced. Now, `CustomEventGridEvent` is
instantiated using a constructor with a `JObject` request, and
`EnterpriseEventCacheDataRequest` is created via
`EnterpriseEventCacheDataRequestFactory.CreateRequest`.

In `CustomEventGridEvent.cs`, removed inheritance from `EventGridEvent`
and added a new constructor for populating the object using
`JsonConvert.PopulateObject`. Introduced `EnterpriseEventCacheDataRequestFactory`
to encapsulate the creation logic for `EnterpriseEventCacheDataRequest`
objects from a `JObject` request.

Only one of these is necessary

Updated `UKHO.ExchangeSetService.Common.csproj` to remove the dependency
on `Microsoft.Azure.EventGrid` package, as it is no longer needed.
Replaced Microsoft.Azure.Cosmos.Table and Microsoft.WindowsAzure.Storage.Blob with Azure.Data.Tables and Azure.Storage.Blobs in EssWebhookServiceTests.cs, FileShareServiceCacheTest.cs, and AzureFileSystemHelper.cs. Updated AzureTableStorageClient.cs and IAzureTableStorageClient.cs to return ITableEntity. Removed commented-out code in EssWebhookController.cs and migrated CustomEventGridEvent functionality to EnterpriseEventCacheDataRequestFactory.cs. Added EnterpriseEventCacheDataRequestFactory.cs for creating request objects from JSON.
Modified `EssWebhookServiceTests.cs` to change the argument type for `DeleteAsync` from `TableEntity` to `ITableEntity` in two sections.  Updated `FileShareServiceCacheTest.cs` to change the return value of `ExistsAsync` method of `blobClient` from `true` to `false`.
The test method `WhenScsStorageAccountAccessKeyValueNotFound_ThenReturnKeyNotFoundException` has been updated to reflect changes in the method it tests. The call to `fakeScsStorageService.GetStorageAccountConnectionString(null, null)` has been replaced with `fakeScsStorageService.GetStorageSharedKeyCredentials()`. Additionally, the exception message checked in the assertion has been updated from "Storage account accesskey not found" to "Storage account credentials missing from config".

These changes ensure the test aligns with the updated method signature and expected exception message, correctly testing the new behavior of the `GetStorageSharedKeyCredentials` method.
Modified FileShareServiceCacheTest.cs to update the
DownloadToFileAsync method on fakeFileSystemHelper mock to
throw RequestFailedException with BlobAlreadyExists error
code. This change ensures the catch block triggers a
FulfilmentException, aligning with patterns from the
deprecated WindowsAzure.Storage package.
Removed the `BusinessUnit` parameter from the error log message in `FileShareServiceCacheTest.cs`. The updated format now includes `ProductName`, `EditionNumber`, `UpdateNumber`, `batchId`, `CorrelationId`, `Name`, `fileItem`, and `Message`.
- Added suppression for `Azure.Identity` 1.7.0 in `NVDSuppressions.xml` for CVE-2023-36414.
- Updated `Microsoft.Identity.Client` to 4.61.3 in `UKHO.ExchangeSetService.API.FunctionalTests.csproj`.
- Modified `global.json` to set .NET SDK version to 6.0.425 and commented out 8.0.400.
Updated NVDSuppressions.xml to add a new suppression entry for CVE-2024-29992, including notes, package URL regex, and vulnerability name.

Modified AuthTokenProvider.cs to replace the commented-out .WithAuthority method call with the .WithTenantId method call for acquiring an authentication token interactively.
Replaced .WithAuthority with .WithTenantId in AuthTokenProvider.cs.
This change was made in two sections of the file to directly specify
the tenant ID instead of the authority URL and tenant ID.
Added logging to trace the process of getting the BlobClient, including the file name and container name. Introduced a null check for `blobClient` with corresponding logging to indicate its state. Modified the call to `SetHttpHeadersAsync` to use the null-conditional operator, ensuring it is only called if `blobClient` is not null.
Enhanced logging and error handling in AzureBlobStorageClient.cs and AzureBlobStorageService.cs:
- Aligned `await blobClient.UploadAsync(ms);` call in `UploadFromStreamAsync`.
- Added `// rhz` comments for additional context in logging statements.
- Introduced a new logging statement before the upload process in `UploadSalesCatalogueServiceResponseToBlobAsync`.
- Replaced `UploadFromStreamAsync` call with a direct `blobClient.UploadAsync(ms);` call within a try-catch block to log errors and the failed JSON object.
Added detailed logging to capture blobClient URI and errors during HTTP header setting. Replaced null check with try-catch for better error handling. Updated log messages for upload start and failure to include "Diagnostic" for clarity and consistency.
Introduced a check to verify if the `blobClient` exists by using
the `Exists()` method before attempting to set HTTP headers.
Logs an informational message if the `blobClient` exists and
proceeds to set the headers. Skips the header-setting operation
if the `blobClient` does not exist, preventing potential runtime
errors.
Updated `EssWebhookServiceTests.cs` to use `Azure.Data.Tables` and `ITableEntity`. Refactored deserialization in `EssWebhookController.cs` to use a factory method. Simplified `RetrieveFromTableStorageAsync` in `EssWebhookService.cs` and updated `ETag` usage. Modified `UKHO.ExchangeSetService.API.csproj` to include `AutoMapper` and remove deprecated packages. Replaced `CloudBlockBlob` with `BlobClient` in `AzureFileSystemHelper.cs` and `AzureBlobStorageServiceTest.cs`. Migrated from `Microsoft.Azure.Cosmos.Table` and `Microsoft.WindowsAzure.Storage` to `Azure.Data.Tables` and `Azure.Storage.Blobs` across various files. Updated exception handling and logging to align with new SDKs. Updated interfaces and classes to reflect changes in implementation.
The project file `UKHO.ExchangeSetService.FulfilmentService.csproj` has been modified. A non-visible character (likely a Byte Order Mark) was removed or altered at the beginning of the file. Additionally, the `Azure.Identity` package reference, which was previously included with version `1.12.0`, has been removed.
Note: not sure about BOM
Switched the .NET SDK version from 6.0.425 to 8.0.400 in the
global.json file. The previous version is now commented out,
and the new version is uncommented and active. The rollForward
policy remains set to "latestFeature".
Added a new suppression entry in NVDSuppressions.xml to address a false positive vulnerability warning for Azure.Identity package. The suppression targets CVE-2023-36414 and is named CVE-2024-29992, this flags version 1.7.0 although version 1.12.0 is installed.
Updated the `global.json` file to change the active .NET SDK
version from 8.0.400 to 6.0.425. The previous version 8.0.400
has been commented out, and version 6.0.425 has been
uncommented and set as the active SDK version. The
`rollForward` setting remains unchanged at "latestFeature".
Refactored code to eliminate unnecessary logging statements and comments. Added a note indicating that a try/catch block might be redundant due to the behavior of the `Exists()` method. Made minor formatting adjustments to enhance code readability.
Updated target framework to .NET 8.0 for multiple projects:
- UKHO.ExchangeSetService.API.FunctionalTests.csproj
- UKHO.ExchangeSetService.API.UnitTests.csproj
- UKHO.ExchangeSetService.API.csproj
- UKHO.ExchangeSetService.CleanUpJob.csproj
- UKHO.ExchangeSetService.Common.UnitTests.csproj
- UKHO.ExchangeSetService.Common.csproj
- UKHO.ExchangeSetService.FulfilmentService.csproj
- UKHO.ExchangeSetService.Webjob.CleanUpJob.UnitTests.csproj
- UKHO.ExchangeSetService.Webjob.UnitTests.csproj

Changed HTTP response header method from Headers.Add to Headers.Append in BaseController.cs and EssWebhookController.cs.

Updated global.json to specify .NET SDK version 8.0.400, removing version 6.0.425.
Refactored unit tests to use `Assert.That` syntax for improved readability and consistency with NUnit's preferred style. Updated various NuGet packages to their latest versions across multiple projects, including `coverlet.msbuild`, `FakeItEasy`, `NUnit`, and `Microsoft.NET.Test.Sdk`. Replaced `Elastic.Apm.AspNetCore` with `Elastic.Apm.NetCoreAll` and updated related configurations. Modified HTTP header handling methods from `Add` to `Append` in middleware and test files. Ensured no functional changes to test logic or application code.
Replaced Assert.IsTrue/IsFalse, and Assert.AreEqual with Assert because of package update.
Added comments with //// rhz to indicate not yet sure what to do with these or if they are valid.
Added multiple suppression entries in NVDSuppressions.xml for various CVEs related to Elastic.Apm.Elasticsearch.dll and Elastic.Apm.EntityFrameworkCore.dll. Each entry includes notes, a package URL regex pattern, and the specific CVE being suppressed. CVEs for Elastic.Apm.Elasticsearch.dll include: CVE-2019-7611, CVE-2023-46674, CVE-2023-31418, CVE-2019-7617, CVE-2020-7019, CVE-2021-22144, CVE-2019-7614, CVE-2021-22135, CVE-2021-22137, CVE-2020-7021, CVE-2020-7020. CVE-2019-7617 is also suppressed for Elastic.Apm.EntityFrameworkCore.dll.
Added new suppression entries in NVDSuppressions.xml for various CVEs:
- Elastic.Apm.GrpcClient.dll: CVE-2023-33953, CVE-2023-44487, CVE-2023-4785, CVE-2023-32732
- Elastic.Apm.MongoDb.dll: CVE-2012-6619, CVE-2013-1892, CVE-2014-8180, CVE-2016-6494
Each entry includes notes with the file name and a regex pattern for the package URL.
We are not using these so should'nt need the suppression.
 Added new suppressions for `Elastic.Apm.AspNetCore.dll`, `Elastic.Apm.Extensions.Hosting.dll`, `Elastic.Apm.Extensions.Logging.dll`, and `Elastic.Apm.dll`. Updated `packageUrl` and added `cpe` entries for new suppressions, primarily addressing `CVE-2019-7617`.
Updated suppression rules in NVDSuppressions.xml:
- Updated file names for suppressed vulnerabilities to reflect different DLLs.
- Modified `packageUrl` regex patterns to match different packages.
- Added and removed several CVEs for each suppression rule.
- Added new suppression rules for DLLs: `Elastic.Apm.NetCoreAll.dll`, `Elasticsearch.Net.dll`, `MongoDB.Bson.dll`, `MongoDB.Driver.Core.dll`, and `MongoDB.Libmongocrypt.dll`.
- Included a list of CVEs for each new suppression rule.
- Updated notes section with links to Azure DevOps work items.
Updated the SdkVersion in azure-pipelines.yml from 6.0.x to 8.0.x.
In global.json, changed the sdk version to 8.0.x with rollForward
policy set to latestFeature, allowing for more flexible version
management within the 8.0 feature band.
Updated the SDK version in global.json from "8.0.x" to "8.0.400"
to ensure the project uses a precise version. This change
prevents potential issues from using any version within the
8.0.x range. The rollForward setting remains unchanged.
The rowKey variable is reset to use Config.BESSConfig.S57BusinessUnit
Uncommented the task for running functional tests with AIO enabled
and commented out the task for running functional tests with AIO
disabled in the `azure-pipelines.yml` file. The script for setting
the AIO feature configuration remains unchanged.
The changes involve the complete removal of numerous test classes and files related to the UKHO Exchange Set Service API. Specifically, the following files and their associated methods, setup, and teardown processes have been deleted:

- `AzureADB2CAuthenticationTests.cs`
- `ClearCacheVerification.cs`
- `CreateFssBatchAndFile.cs`
- `EssEndPointsScenariosWhenAioIsDisabled.cs`
- `ExchangeSetAfterSpecifiedDateTime.cs`
- `ExchangeSetByProductIdentifiers.cs`
- `ExchangeSetByProductVersion.cs`
- `ExchangeSetCancellationProduct.cs`
- `ExchangeSetForLargeFile.cs`
- `ExchangeSetFssRedirectResponse.cs`
- `ExchangeSetGenerateFilesForEssApisWithS57ExchangeSetStandardParameter.cs`
- `ExchangeSetGenerateFilesForEssApisWithS63ExchangeSetStandardParameter.cs`
- `ExchangeSetGenerateFilesForEssApisWithoutExchangeSetStandardParameter.cs`
- `ExchangeSetGenerateFilesForInValidProductVersion.cs`
- `ExchangeSetGenerateFilesForProductIdentifier.cs`
- `ExchangeSetGenerateFilesForValidProductVersion.cs`
- `ExchangeSetProductDataValidateIdentifierTests.cs`
- `ExchangeSetProductInformationTests.cs`
- `ExchangeSetTestReissues.cs`
- `InvalidAndBlankValueForExchangeSetStandardParameterTests.cs`
- `InvalidBundleInfoScenariosForLargeMediaExchangeSet.cs`
- `ValidateAuthorizationForAPIsWithExchangeSetStandardParameterTests.cs`

These removals suggest a significant refactor or deprecation of the related test cases and possibly the underlying functionalities they were testing.
The task "Swap ESS API and ESS FulfilmentService Configuration AIODisabled" using `AzureCLI@2` has been commented out. This task was responsible for swapping the ESS API and ESS FulfilmentService configuration to disable AIO (Artificial Intelligence Operations) by running a PowerShell script with specific arguments.
Removed a commented-out line setting HTTP headers in FileShareServiceCache.cs.
Cleaned up azure-pipelines.yml by removing several commented-out tasks related to Azure CLI and .NET Core CLI.
Replaced direct summation of `FileSize` properties in `salesCatalogueResponse.ResponseBody` with a call to `CommonHelper.GetFileSize`. This change improves code readability and maintainability by encapsulating the file size calculation logic within a helper method.
Standardize fileSize calculation by using CommonHelper.GetFileSize
instead of summing up the FileSize property of Products. This change
is applied in multiple methods within ProductDataService.cs and
AzureBlobStorageService.cs, improving code maintainability and
consistency.
Updated file size calculation in ProductDataService and AzureBlobStorageService to use direct sum of SalesCatalogueProductResponse. Removed CommonHelper.GetFileSize method.
@richardAhz richardAhz requested review from rockydevnet and a team as code owners December 4, 2024 14:00
The commented line `app.UseElasticApm(builder.Configuration);` in Program.cs has been removed.

In AzureWebJobsHealthCheckTest.cs, the order of parameters in the `Assert.That` method has been updated for better readability and consistency. The actual value being tested (`response.Status`) is now the first parameter in the assertion. These changes were made in three different test methods.

Additionally, a binary file named `Test.old` has been deleted.
Added suppressions for Azure.Identity versions in NVDSuppressions.xml related to CVE-2024-43591 and CVE-2023-44487. Removed ineffective test method WhenInsertOrMergeFssCacheDetail_ThenReturnTrue from FileShareServiceCacheTest.cs.
Added a new suppression entry in NVDSuppressions.xml for the CVE-2023-36415 vulnerability related to Azure.Identity.dll. The suppression includes notes with a CDATA section specifying the file name and a regex pattern for the package URL to match any version of the Azure.Identity package.
The `auto-patch-sdk.yml` file has been removed entirely. This file previously contained a scheduled job to automatically patch the .NET SDK, with a specific work item title, description, and tags, and used a secret for authentication.

In the `Deploy.yml` file, the task to use the .NET SDK (`UseDotNet@2`) has been commented out. This task was responsible for setting up the .NET SDK according to the `global.json` file in the specified working directory.
Copy link
Contributor

@HugoBurgess HugoBurgess left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good

@richardAhz richardAhz merged commit a82f5ed into main Dec 5, 2024
14 checks passed
@richardAhz richardAhz deleted the TD/Abzu-58195-Net8-Upgrade-Final branch December 5, 2024 10:35
richardAhz added a commit that referenced this pull request Dec 17, 2024
* Update NVD suppressions (#381)

* Disable XML transformation in FileTransform@2 tasks (#385)

Replaced `xmlTransformationRules` with `enableXmlTransform` set to `false` in the `FileTransform@2` task. This change disables XML transformations by default.

* Upgrade to .Net 8 (#387)

* Migrate to Azure.Data.Tables for Table Storage

Updated EssWebhookService.cs to include additional using directives for Azure and UKHO namespaces. Simplified cache retrieval and updated ETag usage.

Modified UKHO.ExchangeSetService.API.csproj to add AutoMapper package and remove outdated references.

Refactored AzureTableStorageClient.cs to use Azure.Data.Tables, updating CRUD methods accordingly.

Updated IAzureTableStorageClient.cs interface to reflect changes in AzureTableStorageClient.cs.

Updated CacheTableData.cs and FssSearchResponseCache.cs to implement ITableEntity from Azure.Data.Tables.

Updated UKHO.ExchangeSetService.Common.csproj to include Azure.Data.Tables and update Azure.Identity version. Removed Microsoft.Azure.Cosmos.Table reference.

Removed Azure.Identity reference from UKHO.ExchangeSetService.FulfilmentService.csproj.

Updated global.json to change .NET SDK version from 6.0.425 to 8.0.400. This is temporary .

* Migrate to Azure.Storage library for blob operations

Migrated from the deprecated Microsoft.WindowsAzure.Storage library to the newer Azure.Storage library for handling Azure Blob Storage operations. Key changes include:

- Replaced CloudBlockBlob with BlobClient in AzureBlobStorageServiceTest.cs, AzureBlobStorageClient.cs, AzureBlobStorageService.cs, FileShareServiceCache.cs, FileSystemHelper.cs, IAzureBlobStorageClient.cs, and IFileSystemHelper.cs.
- Updated AzureMessageQueueHelper.cs to use QueueClient instead of CloudQueue.
- Added GetStorageSharedKeyCredentials method in ISalesCatalogueStorageService.cs and implemented it in SalesCatalogueStorageService.cs.
- Updated exception handling to catch RequestFailedException instead of StorageException.
- Removed WindowsAzure.Storage package and added Azure.Storage.Common package in UKHO.ExchangeSetService.Common.csproj.

* Refactor event handling and remove EventGrid dependency

Refactored `EssWebhookController.cs` to change the creation and
population of `CustomEventGridEvent` and `EnterpriseEventCacheDataRequest`
objects. The old method using `JsonConvert.PopulateObject` directly on
the request string has been replaced. Now, `CustomEventGridEvent` is
instantiated using a constructor with a `JObject` request, and
`EnterpriseEventCacheDataRequest` is created via
`EnterpriseEventCacheDataRequestFactory.CreateRequest`.

In `CustomEventGridEvent.cs`, removed inheritance from `EventGridEvent`
and added a new constructor for populating the object using
`JsonConvert.PopulateObject`. Introduced `EnterpriseEventCacheDataRequestFactory`
to encapsulate the creation logic for `EnterpriseEventCacheDataRequest`
objects from a `JObject` request.

Only one of these is necessary

Updated `UKHO.ExchangeSetService.Common.csproj` to remove the dependency
on `Microsoft.Azure.EventGrid` package, as it is no longer needed.

* Migrate to new Azure SDK and refactor event handling

Replaced Microsoft.Azure.Cosmos.Table and Microsoft.WindowsAzure.Storage.Blob with Azure.Data.Tables and Azure.Storage.Blobs in EssWebhookServiceTests.cs, FileShareServiceCacheTest.cs, and AzureFileSystemHelper.cs. Updated AzureTableStorageClient.cs and IAzureTableStorageClient.cs to return ITableEntity. Removed commented-out code in EssWebhookController.cs and migrated CustomEventGridEvent functionality to EnterpriseEventCacheDataRequestFactory.cs. Added EnterpriseEventCacheDataRequestFactory.cs for creating request objects from JSON.

* Refactor tests and update mock return values

Modified `EssWebhookServiceTests.cs` to change the argument type for `DeleteAsync` from `TableEntity` to `ITableEntity` in two sections.  Updated `FileShareServiceCacheTest.cs` to change the return value of `ExistsAsync` method of `blobClient` from `true` to `false`.

* Update test for GetStorageSharedKeyCredentials method

The test method `WhenScsStorageAccountAccessKeyValueNotFound_ThenReturnKeyNotFoundException` has been updated to reflect changes in the method it tests. The call to `fakeScsStorageService.GetStorageAccountConnectionString(null, null)` has been replaced with `fakeScsStorageService.GetStorageSharedKeyCredentials()`. Additionally, the exception message checked in the assertion has been updated from "Storage account accesskey not found" to "Storage account credentials missing from config".

These changes ensure the test aligns with the updated method signature and expected exception message, correctly testing the new behavior of the `GetStorageSharedKeyCredentials` method.

* Update unit test to throw BlobAlreadyExists exception

Modified FileShareServiceCacheTest.cs to update the
DownloadToFileAsync method on fakeFileSystemHelper mock to
throw RequestFailedException with BlobAlreadyExists error
code. This change ensures the catch block triggers a
FulfilmentException, aligning with patterns from the
deprecated WindowsAzure.Storage package.

* Update log message format in FileShareServiceCacheTest.cs

Removed the `BusinessUnit` parameter from the error log message in `FileShareServiceCacheTest.cs`. The updated format now includes `ProductName`, `EditionNumber`, `UpdateNumber`, `batchId`, `CorrelationId`, `Name`, `fileItem`, and `Message`.

* Update dependencies and suppress CVE-2023-36414

- Added suppression for `Azure.Identity` 1.7.0 in `NVDSuppressions.xml` for CVE-2023-36414.
- Updated `Microsoft.Identity.Client` to 4.61.3 in `UKHO.ExchangeSetService.API.FunctionalTests.csproj`.
- Modified `global.json` to set .NET SDK version to 6.0.425 and commented out 8.0.400.

* Add suppression for CVE-2024-29992 and update AuthTokenProvider

Updated NVDSuppressions.xml to add a new suppression entry for CVE-2024-29992, including notes, package URL regex, and vulnerability name.

Modified AuthTokenProvider.cs to replace the commented-out .WithAuthority method call with the .WithTenantId method call for acquiring an authentication token interactively.

* Refactor AuthTokenProvider to use WithTenantId method

Replaced .WithAuthority with .WithTenantId in AuthTokenProvider.cs.
This change was made in two sections of the file to directly specify
the tenant ID instead of the authority URL and tenant ID.

* Add logging and null checks for BlobClient operations

Added logging to trace the process of getting the BlobClient, including the file name and container name. Introduced a null check for `blobClient` with corresponding logging to indicate its state. Modified the call to `SetHttpHeadersAsync` to use the null-conditional operator, ensuring it is only called if `blobClient` is not null.

* add logging for diagnostics

Enhanced logging and error handling in AzureBlobStorageClient.cs and AzureBlobStorageService.cs:
- Aligned `await blobClient.UploadAsync(ms);` call in `UploadFromStreamAsync`.
- Added `// rhz` comments for additional context in logging statements.
- Introduced a new logging statement before the upload process in `UploadSalesCatalogueServiceResponseToBlobAsync`.
- Replaced `UploadFromStreamAsync` call with a direct `blobClient.UploadAsync(ms);` call within a try-catch block to log errors and the failed JSON object.

* Enhance logging for diagnostics in AzureBlobStorageService

Added detailed logging to capture blobClient URI and errors during HTTP header setting. Replaced null check with try-catch for better error handling. Updated log messages for upload start and failure to include "Diagnostic" for clarity and consistency.

* Add existence check for blobClient before setting headers

Introduced a check to verify if the `blobClient` exists by using
the `Exists()` method before attempting to set HTTP headers.
Logs an informational message if the `blobClient` exists and
proceeds to set the headers. Skips the header-setting operation
if the `blobClient` does not exist, preventing potential runtime
errors.

* Remove Azure.Identity package and fix BOM in csproj

The project file `UKHO.ExchangeSetService.FulfilmentService.csproj` has been modified. A non-visible character (likely a Byte Order Mark) was removed or altered at the beginning of the file. Additionally, the `Azure.Identity` package reference, which was previously included with version `1.12.0`, has been removed.
Note: not sure about BOM

* Update .NET SDK version in global.json to 8.0.400

Switched the .NET SDK version from 6.0.425 to 8.0.400 in the
global.json file. The previous version is now commented out,
and the new version is uncommented and active. The rollForward
policy remains set to "latestFeature".

* Add suppression for Azure.Identity false positive

Added a new suppression entry in NVDSuppressions.xml to address a false positive vulnerability warning for Azure.Identity package. The suppression targets CVE-2023-36414 and is named CVE-2024-29992, this flags version 1.7.0 although version 1.12.0 is installed.

* Switch .NET SDK version from 8.0.400 to 6.0.425

Updated the `global.json` file to change the active .NET SDK
version from 8.0.400 to 6.0.425. The previous version 8.0.400
has been commented out, and version 6.0.425 has been
uncommented and set as the active SDK version. The
`rollForward` setting remains unchanged at "latestFeature".

* Refactor: Remove redundant logging and comments

Refactored code to eliminate unnecessary logging statements and comments. Added a note indicating that a try/catch block might be redundant due to the behavior of the `Exists()` method. Made minor formatting adjustments to enhance code readability.

* Update to .NET 8.0 and modify HTTP header methods

Updated target framework to .NET 8.0 for multiple projects:
- UKHO.ExchangeSetService.API.FunctionalTests.csproj
- UKHO.ExchangeSetService.API.UnitTests.csproj
- UKHO.ExchangeSetService.API.csproj
- UKHO.ExchangeSetService.CleanUpJob.csproj
- UKHO.ExchangeSetService.Common.UnitTests.csproj
- UKHO.ExchangeSetService.Common.csproj
- UKHO.ExchangeSetService.FulfilmentService.csproj
- UKHO.ExchangeSetService.Webjob.CleanUpJob.UnitTests.csproj
- UKHO.ExchangeSetService.Webjob.UnitTests.csproj

Changed HTTP response header method from Headers.Add to Headers.Append in BaseController.cs and EssWebhookController.cs.

Updated global.json to specify .NET SDK version 8.0.400, removing version 6.0.425.

* Refactor tests and update dependencies

Refactored unit tests to use `Assert.That` syntax for improved readability and consistency with NUnit's preferred style. Updated various NuGet packages to their latest versions across multiple projects, including `coverlet.msbuild`, `FakeItEasy`, `NUnit`, and `Microsoft.NET.Test.Sdk`. Replaced `Elastic.Apm.AspNetCore` with `Elastic.Apm.NetCoreAll` and updated related configurations. Modified HTTP header handling methods from `Add` to `Append` in middleware and test files. Ensured no functional changes to test logic or application code.

* Refactor unit tests to use Assert.That for readability

Replaced Assert.IsTrue/IsFalse, and Assert.AreEqual with Assert because of package update.
Added comments with //// rhz to indicate not yet sure what to do with these or if they are valid.

* Add CVE suppressions for Elastic APM DLLs

Added multiple suppression entries in NVDSuppressions.xml for various CVEs related to Elastic.Apm.Elasticsearch.dll and Elastic.Apm.EntityFrameworkCore.dll. Each entry includes notes, a package URL regex pattern, and the specific CVE being suppressed. CVEs for Elastic.Apm.Elasticsearch.dll include: CVE-2019-7611, CVE-2023-46674, CVE-2023-31418, CVE-2019-7617, CVE-2020-7019, CVE-2021-22144, CVE-2019-7614, CVE-2021-22135, CVE-2021-22137, CVE-2020-7021, CVE-2020-7020. CVE-2019-7617 is also suppressed for Elastic.Apm.EntityFrameworkCore.dll.

* Add CVE suppressions for Elastic.Apm.GrpcClient and MongoDb

Added new suppression entries in NVDSuppressions.xml for various CVEs:
- Elastic.Apm.GrpcClient.dll: CVE-2023-33953, CVE-2023-44487, CVE-2023-4785, CVE-2023-32732
- Elastic.Apm.MongoDb.dll: CVE-2012-6619, CVE-2013-1892, CVE-2014-8180, CVE-2016-6494
Each entry includes notes with the file name and a regex pattern for the package URL.
We are not using these so should'nt need the suppression.

* Update NVDSuppressions.xml for Elastic APM components

 Added new suppressions for `Elastic.Apm.AspNetCore.dll`, `Elastic.Apm.Extensions.Hosting.dll`, `Elastic.Apm.Extensions.Logging.dll`, and `Elastic.Apm.dll`. Updated `packageUrl` and added `cpe` entries for new suppressions, primarily addressing `CVE-2019-7617`.

* Update NVDSuppressions.xml with new and modified rules

Updated suppression rules in NVDSuppressions.xml:
- Updated file names for suppressed vulnerabilities to reflect different DLLs.
- Modified `packageUrl` regex patterns to match different packages.
- Added and removed several CVEs for each suppression rule.
- Added new suppression rules for DLLs: `Elastic.Apm.NetCoreAll.dll`, `Elasticsearch.Net.dll`, `MongoDB.Bson.dll`, `MongoDB.Driver.Core.dll`, and `MongoDB.Libmongocrypt.dll`.
- Included a list of CVEs for each new suppression rule.
- Updated notes section with links to Azure DevOps work items.

* Update SDK versions in azure-pipelines.yml and global.json

Updated the SdkVersion in azure-pipelines.yml from 6.0.x to 8.0.x.
In global.json, changed the sdk version to 8.0.x with rollForward
policy set to latestFeature, allowing for more flexible version
management within the 8.0 feature band.

* Specify SDK version 8.0.400 in global.json

Updated the SDK version in global.json from "8.0.x" to "8.0.400"
to ensure the project uses a precise version. This change
prevents potential issues from using any version within the
8.0.x range. The rollForward setting remains unchanged.

* Refactor tests for header handling and response validation

Updated EssWebhookControllerTests.cs to replace A.Fake<IHeaderDictionary>() with direct instantiation of HeaderDictionary() for concrete instance. Modified assertions to use Assert.That for direct header value verification. Changed ProductDataServiceTests.cs to check if result.ExchangeSetResponse is Null instead of True, reflecting updated method behavior.

* Refactor unit tests to use Assert.That syntax

Updated unit tests across multiple files to replace commented-out `Assert.AreSame` statements with `Assert.That` using `Is.SameAs` constraint. Specifically, changes were made in `ProductDataControllerTests.cs` and `ProductInformationControllerTests.cs`. Additionally, in `CommonHelperTest.cs`, the method `CheckValueIsNumeric` was renamed to `CheckIsNumericReturnsTrueForNumbers`, and a new test method `CheckIsNumericReturnsFalseForNonNumericValue` was added. In `FileShareServiceTests.cs` and `SalesCatalougeServiceTests.cs`, commented-out `Assert.AreEqual` statements were replaced with `Assert.That` using `Is.EqualTo` to validate URI replacements and parameters.

* Commented out unused code and updated method parameter name

Commented out the `using System.Runtime.Serialization;` directive and the `FulfilmentException` constructor with `SerializationInfo` and `StreamingContext` parameters in `FulfilmentException.cs`. Also commented out the `CONTENT_TYPE` constant in `AzureBlobStorageService.cs`. Modified `DownloadIhoPubFile` method in `FileShareService.cs` to change parameter name from `aioExchangeSetPath` to `exchangeSetRootPath` and updated its usage.

* Refactor storage and event handling, update dependencies  Part1

Updated `EssWebhookController.cs` to use a factory method for deserialization. Modified `EssWebhookService.cs` to use `Azure.ETag.All`. Enhanced `UKHO.ExchangeSetService.API.csproj` with documentation generation and updated package references. Refactored `AzureBlobStorageService.cs` and `AzureTableStorageClient.cs` to use the latest Azure SDKs. Updated interfaces `IAzureBlobStorageClient.cs` and `IAzureTableStorageClient.cs` accordingly. Adjusted `CacheTableData.cs` and `FssSearchResponseCache.cs` to use `Azure.Data.Tables.ITableEntity`. Removed `CustomEventGridEvent.cs`. Updated `UKHO.ExchangeSetService.Common.csproj` with new package references. Added `EnterpriseEventCacheDataRequestFactory.cs` for creating request objects.

* Migrate to Azure.Storage.Blobs and Azure.Storage.Queues SDKs

Migrated from deprecated Microsoft.WindowsAzure.Storage libraries to the newer Azure.Storage.Blobs and Azure.Storage.Queues libraries.

- Replaced `CloudBlockBlob` with `BlobClient` in various files.
- Updated methods in `AzureBlobStorageClient.cs` to use `BlobClient` and `BlobContainerClient`.
- Updated test cases in `AzureBlobStorageServiceTest.cs` and `FileShareServiceCacheTest.cs`.
- Simplified method `GetStorageAccountNameAndKeyBasedOnExchangeSetType` in `AzureBlobStorageService.cs`.
- Added exception handling in `UploadSalesCatalogueServiceResponseToBlobAsync`.
- Replaced `CloudQueue` with `QueueClient` in `AzureMessageQueueHelper.cs`.
- Updated health check methods to use `QueueClient`.
- Updated method signatures in interfaces to use `BlobClient`.
- Added `GetStorageSharedKeyCredentials` method in `ISalesCatalogueStorageService.cs` and its implementation.
- Commented out SDK version "8.0.400" in `global.json`, retained "6.0.425".

These changes ensure compatibility with the latest Azure SDK and improve code maintainability.

* Update APM integration and switch to .NET SDK 8.0.400

- Replace `TableEntity` with `ITableEntity` in `EssWebhookServiceTests.cs` and add `Azure.Data.Tables` namespace.
- Comment out `ElasticApm` middleware and add `AddAllElasticApm` service in `Program.cs`.
- Switch from `Elastic.Apm.AspNetCore` to `Elastic.Apm.NetCoreAll` in `UKHO.ExchangeSetService.API.csproj`.
- Update `global.json` to use .NET SDK version 8.0.400.

* Refactor DeleteAsync to use ITableEntity interface

Changed the argument type of the DeleteAsync method in fakeAzureTableStorageClient from TableEntity to ITableEntity. This enhances flexibility and abstraction by using the interface instead of the concrete class.

* Update test method and revert .NET SDK version

Modified `AzureBlobStorageServiceTest.cs` to update the method call from `GetStorageAccountConnectionString` to `GetStorageSharedKeyCredentials` and changed the exception message to "Storage account credentials missing from config".

Reverted .NET SDK version in `global.json` from 8.0.400 to 6.0.425 by commenting out the former and uncommenting the latter.

* Add suppression entries for various DLL files in NVDSuppressions.xml

Added new suppression entries in NVDSuppressions.xml for the following DLL files:
- Elastic.Apm.Elasticsearch.dll
- Elastic.Apm.EntityFrameworkCore.dll
- Elastic.Apm.GrpcClient.dll
- Elastic.Apm.MongoDb.dll
- Elastic.Apm.NetCoreAll.dll
- Elasticsearch.Net.dll
- MongoDB.Bson.dll
- MongoDB.Driver.Core.dll
- MongoDB.Libmongocrypt.dll

Each entry includes notes with a file name, a URL to a work item, a regex pattern for the package URL, and a list of suppressed CVE identifiers.

* Update NuGet packages and refactor unit tests

Updated several NuGet package references in `UKHO.ExchangeSetService.API.csproj` and `UKHO.ExchangeSetService.Common.csproj` to newer versions, including `Microsoft.AspNetCore.Authentication.JwtBearer`, `Microsoft.ApplicationInsights.AspNetCore`, `Swashbuckle.AspNetCore`, and others.

Refactored unit tests in `AzureBlobStorageServiceTest.cs` and `FileShareServiceCacheTest.cs` to use `Assert.That` syntax from NUnit for improved readability and consistency.

Modified the `DownloadIhoPubFile` method in `FileShareService.cs` to change the parameter name from `exchangeSetRootPath` to `aioExchangeSetPath` and updated the logic accordingly.

Added a comment in `FileShareServiceCacheTest.cs` indicating uncertainty about the validity of a test where the assertion will always be true.

Updated `Azure.Identity`, `Azure.Storage.Common`, and `Azure.Storage.Queues` package references in `UKHO.ExchangeSetService.Common.csproj` to newer versions, along with other packages such as `Microsoft.IdentityModel.Logging`, `Microsoft.Extensions.Http.Polly`, `Swashbuckle.AspNetCore.Annotations`, and `System.IdentityModel.Tokens.Jwt`.

* Suppress false positive for Azure.Identity vulnerability

Added a suppression entry in NVDSuppressions.xml for CVE-2023-36414,
targeting the Azure.Identity package version 1.7.0. Although version
1.12.0 is installed, the system incorrectly flags version 1.7.0 as
vulnerable. The suppression is assigned the new vulnerability name
CVE-2024-29992.

* Refactor file size handling and improve code readability

- Modify file size calculation in `ProductDataService.cs` to sum product file sizes directly.
- Comment out deprecated or temporarily disabled tests and methods in `CommonHelperTest.cs`.
- Refactor `GetInstanceCountBasedOnFileSize` in `AzureBlobStorageService.cs` to use a switch expression for better readability and maintainability.

* Remove global.json and update .NET SDK version handling

Updated azure-pipelines.yml to set .NET SDK version directly via
$(SdkVersion) in UseDotNet@2 task. Commented out PowerShell@1 task
that created global.json for Stryker. Removed global.json file
which specified .NET SDK version 8.0.400 with rollForward policy
latestFeature.

* Suppress CVE-2024-43591 and update azure-pipelines.yml

Added a suppression entry in NVDSuppressions.xml for CVE-2024-43591
related to Azure.Core.dll. Commented out a PowerShell task in
azure-pipelines.yml that created a global.json file for .NET, as it
is no longer required for Stryker.

* Add suppression for Azure.Core in NVDSuppressions.xml

Added a new suppression entry for Azure.Core:1.44.1 in NVDSuppressions.xml, targeting the nuget package type and CVE-2024-43591. Retained the existing suppression for the generic package type.

* Add new suppression rules for Azure vulnerabilities

Updated NVDSuppressions.xml to include new suppression rules:
- Added suppression for CVE-2024-43591 under Azure.Identity.
- Included cpe entries for microsoft:azure_cli and microsoft:azure_identity_sdk.
- Added suppression blocks for Azure.Identity:1.13.0 and Microsoft.Extensions.Azure.dll with CVE-2024-43591.
- Ensured specific vulnerabilities are not flagged during security scans.

* Add suppressions for CVE-2024-43591 in NVDSuppressions.xml

Added new suppression entries for CVE-2024-43591 in the
NVDSuppressions.xml file. This includes:

- Four entries for different versions of the
  Microsoft.Extensions.Azure package (1.6.3, 1.7.1, 1.7.4) with
  the package URL pattern `^pkg:nuget/Microsoft\.Extensions\.Azure@.*$`.
- One entry for the System.ClientModel.dll file with the package
  URL pattern `^pkg:generic/System\.ClientModel@.*$`, including
  notes and two CPEs (`cpe:/a:microsoft:azure_cli` and
  `cpe:/a:microsoft:azure_sdk_for_.net`).

These changes aim to prevent false positives in vulnerability
scanning tools.

* Migrate to Azure.Data.Tables and clean up deprecated code

Updated ClearCacheVerification.cs and ClearCacheHelper.cs to use Azure.Data.Tables instead of the deprecated Microsoft.Azure.Cosmos.Table library. Simplified code by removing type casting in RetrieveFromTableStorageAsync. Updated GetAzureTable to use TableServiceClient. Commented out ExecuteTableOperation as it is no longer needed. Marked CustomEventGridEvent.cs for removal. Updated FssSearchResponseCache to implement ITableEntity. Modified UKHO.ExchangeSetService.API.FunctionalTests.csproj to change project SDK, add Azure.Data.Tables, and remove deprecated package references.

* Refactor: Clean up and update Azure SDK usage

Removed commented-out code and unused files. Updated methods to use the new Azure.Data.Tables SDK. Added XML documentation to improve code readability and maintainability.

* Refactor assertions and update NuGet packages

Refactored assertions in `ClearCacheVerification.cs` and `ClearCacheHelper.cs` to use `Assert.That` for better readability and consistency with modern NUnit practices. Updated `UKHO.ExchangeSetService.API.FunctionalTests.csproj` to include newer versions of several NuGet packages, ensuring the project benefits from the latest features and security improvements.

* Refactor test assertions to use Assert.That

Updated test assertions across multiple files to use the Assert.That method from the NUnit framework for improved readability and consistency. Replaced Assert.AreEqual, Assert.IsTrue, Assert.IsFalse, and Assert.IsNotEmpty with Assert.That combined with appropriate constraints such as Is.EqualTo, Is.True, Is.False, and Is.Not.Empty. This change enhances the clarity and maintainability of the test code without altering the test logic or functionality.

* Add System.Text.Json v8.0.5 to project dependencies

A new package reference for `System.Text.Json` version `8.0.5` has been added to the `UKHO.ExchangeSetService.API.csproj` file. This inclusion enables the use of high-performance JSON serialization and deserialization functionalities provided by the `System.Text.Json` library and solves vulnerability issue.

* Add System.Text.Json 8.0.5 to project references

Added a new package reference for `System.Text.Json` version `8.0.5` in both `UKHO.ExchangeSetService.API.FunctionalTests.csproj` and `UKHO.ExchangeSetService.Common.csproj` projects. This addition aims to utilize the functionalities provided by the `System.Text.Json` library for JSON serialization and deserialization and remove vulnerability issues

* Update logging and package dependencies

- Add comment in AzureBlobStorageService.cs to suggest returning a boolean for success/failure in UploadSalesCatalogueServiceResponseToBlobAsync.
- Prefix log message with "Rhz:" for better traceability.
- Upgrade Elastic.Apm to 1.30.0 in UKHO.ExchangeSetService.FulfilmentService.csproj.
- Upgrade Elastic.Apm.Azure.Storage to 1.30.0.
- Upgrade Microsoft.Azure.WebJobs.Extensions.Storage to 5.3.3.
- Upgrade Serilog to 4.1.0.

* Add suppression for false positive CVE-2024-43485

A new suppression entry has been added to the `NVDSuppressions.xml` file to suppress the vulnerability `CVE-2024-43485` for the package `System.Text.Json`.  This appears to be a false positive  because the project uses version `8.0.5` of `System.Text.Json`, which is not affected by the vulnerability in version `6.0.9`.

* Update NuGet packages in CleanUpJob project

Updated the following NuGet package references in `UKHO.ExchangeSetService.CleanUpJob.csproj`:
- `Azure.Extensions.AspNetCore.Configuration.Secrets` from `1.2.2` to `1.3.2`
- `Elastic.Apm` from `1.23.0` to `1.30.0`
- `Elastic.Apm.Azure.Storage` from `1.23.0` to `1.30.0`
- `Serilog` from `2.12.0` to `4.1.0`
- `Serilog.Extensions.Logging` from `3.1.0` to `8.0.0`
- `Serilog.Sinks.File` from `5.0.0` to `6.0.0`
- `Microsoft.Azure.WebJobs.Logging.ApplicationInsights` from `3.0.34` to `3.0.41`

* Update project to .NET 8.0 and upgrade dependencies

- Target .NET 8.0 in UKHO.SalesCatalogueFileShareServicesMock.API.csproj
- Upgrade Microsoft.AspNetCore.HeaderPropagation to 8.0.10
- Upgrade Swashbuckle.AspNetCore.Annotations to 6.9.0

* Refactor header handling and minor formatting fixes

Replaced HttpContext.Headers.Add with HttpContext.Headers.Append in FileShareServiceController.cs and CorrelationIdMiddleware.cs to prevent duplicate headers. Added missing namespace in CorrelationIdMiddleware.cs. Corrected formatting to properly close the namespace block in FileShareServiceController.cs.

* Improve error handling and logging for storage operations

- Modify StoreSaleCatalogueServiceResponseAsync to return a boolean indicating success or failure.
- Update UploadSalesCatalogueServiceResponseToBlobAsync to return a boolean (uploadSuccess) for upload status.
- Check the success status of UploadSalesCatalogueServiceResponseToBlobAsync in StoreSaleCatalogueServiceResponseAsync.
- Log success or critical error based on the upload status.
- Remove redundant comments explaining return values.
- Move instantiation and population of SalesCatalogueServiceResponseQueueMessage inside the success condition.
- Make AddQueueMessage call conditional on the success of the blob storage operation.
- Update logging statements to reflect the success or failure of the storage operation.

* Add error logging to SaveSalesCatalogueStorageDetails and add fake BlobClient to  AzureBlobStorageServiceTest

Introduce error logging in ProductDataService for SaveSalesCatalogueStorageDetails method.
Replace await calls with success checks and log errors with BatchId and CorrelationId.
Update AzureBlobStorageServiceTest to use fake BlobClient and mock methods.
Add CreateProductDataError event ID to EventIds and update ToEventId method.

* Remove CVE suppressions and SonarAnalyzer, clean up code

Significant modifications to `NVDSuppressions.xml` include the removal of multiple `<suppress>` entries for various CVEs, indicating that these vulnerabilities have been addressed.

The `global.json` entry has been removed from the `Solution Items` section in `UKHO.ExchangeSetService.API.sln`.

Commented-out code related to `SerializationInfo` and `StreamingContext` has been removed from `FulfilmentException.cs`, improving code readability.

The `SonarAnalyzer.CSharp` package reference has been removed from both `UKHO.ExchangeSetService.Common.csproj` and `UKHO.ExchangeSetService.FulfilmentService.csproj`, indicating a shift away from using this analyzer.

* Update suppression entries for multiple CVEs

* Update CVE suppressions for various packages

Updated existing suppression for Microsoft.Extensions.Azure.dll to include CVE-2024-43591 and a new CPE.

These changes aim to prevent false positives in vulnerability scans.

* Update  NVDSuppressions.xml

* Update CmdLine task to v2 in azure-pipelines.yml

Replaced CmdLine@1 with CmdLine@2 in azure-pipelines.yml to ensure the pipeline uses the latest version of the command line task for running the OWASP Dependency Checker.

* Downgrade CmdLine task version in Azure Pipelines YAML

The CmdLine task version has been changed from 2 to 1 in the Azure Pipelines YAML configuration. This adjustment affects the task used to run the OWASP Dependency Checker. The rest of the task configuration remains unchanged.

* Update OWASP Dependency Checker task in pipeline

Modified `azure-pipelines.yml` to use `CmdLine@2` for the OWASP Dependency Checker task. The script is now specified directly in the `script` field, and the `inputs`, `filename`, and `arguments` fields are commented out as they are no longer needed.

* Refactor OWASP Dependency Checker task in pipeline

The `CmdLine@2` task for running the OWASP Dependency Checker has been refactored to use the `inputs` section for specifying the script to be executed.

* Update Stryker and OWASP Dependency Checker configs

Commented out StrykerDotNetVersion in Stryker_Mutator stage and
updated UseDotNet@2 task to use SdkVersion. Removed dependency-check.bat
script and arguments from CmdLine@2 task comments.

* Update Stryker_Mutator stage in azure-pipelines.yml

Modified the Stryker_Mutator stage:
- Removed commented-out variables section and PowerShell task.
- Updated PublishMutationReport task to version 1.

* Fix test assertion and clean up unused code

Corrected the status code assertion in `ExchangeSetGenerateFilesForEncAndAioProductIdentifierWhenAioIsEnabled.cs` to assert 200 instead of not 200. Removed unused commented-out code in `EssWebhookController.cs` to improve readability and maintainability.

* Add debug logging and update using directives

Introduced additional `Console.WriteLine` statements to log the state of various objects and URIs for debugging purposes. These debug statements are marked with comments like `// rhz debug start` and `// rhz debug end`.

- `ExchangeSetGeneratesEmptyZipForInvalidCellForProductIdentifierWhenAioIsEnabled.cs`: Added `using` directives for `System`, `System.Collections.Generic`, `System.IO`, and `System.Threading.Tasks`. Added debug logging for `ObjectStorage`.
- `ExchangeSetApiClient.cs`: Added `using` directives for `System`, `System.Collections.Generic`, `System.Net.Http`, `System.Text`, `System.Threading`, and `System.Threading.Tasks`. Added debug logging for `ProductIdentifierModel` and URIs. Fixed minor formatting issue.
- `FileContentHelper.cs`: Added `using` directive for `Newtonsoft.Json`. Added debug logging for `ExchangeSetResponseModel`.

* Debug tests

* Add using directive and debug logging for file listing

Added `using System.Linq;` to the list of using directives. Inserted
debug code to log the files in a specific directory within the
`DownloadedFolderPath`. This includes constructing the path, logging
it, retrieving the list of files, and logging their names to the
console for troubleshooting purposes.

* Add debug statements and error handling in test files

Added `using` directives for necessary namespaces across multiple test files. Inserted debug code to print directory paths, file lists, and file names in various test methods. Enhanced `FileContentHelper.cs` to print the download file URL for AIO one-time setup. Updated `FssBatchHelper.cs` to print temporary file paths, file sizes, and handle exceptions during zip extraction, logging any errors and listing extracted files.

* Refactor ZipFile extraction and add debug messages

Removed the try-catch block around `ZipFile.ExtractToDirectory`, allowing exceptions to propagate. Added debug messages before and after the extraction to indicate the start of the process and list the files in the extraction directory. Removed error logging from the catch block.

* Improve assertion message and add debug logging

Updated the assertion message in `ExchangeSetGenerateFilesForAioProductIdentifierWhenAioIsEnabled.cs` to specify the exact file and folder path for better clarity. Added debug logging in `FssBatchHelper.cs` to print the content of the file download response to the console, aiding in troubleshooting.

* Update debug logs for AIO file processing

Enhanced debug `Console.WriteLine` statements across multiple files to provide clearer context about AIO files. Updated messages to specify "AIO Files In" or "Downloaded AIO Zip Files In". Added debug logs in `FileContentHelper.cs` for AIO section setup and download folder path. Removed redundant debug logs in `FssBatchHelper.cs` and clarified remaining logs for AIO zip files.

* Improve debug logging and add missing using directive

Enhanced debug log messages for clarity and readability by removing "rhz" prefix and making them more descriptive. Added `using System;` directive in `FssApiClient.cs`. Included additional debug logs in `FssBatchHelper.cs` to log status URI and file download URI.

* Refactor file streaming to use async programming

Refactored the code to adopt modern asynchronous programming practices for file streaming. The original synchronous code has been commented out. Key changes include:

- Replaced `CopyTo` with `CopyToAsync` for asynchronous file copy operations.
- Utilized `await using` for both response and file streams to ensure proper resource disposal.
- Simplified `extractPath` generation using `Path.GetFileNameWithoutExtension` instead of a custom method.

* Switch to synchronous file stream handling

Replaced commented-out code with original synchronous methods for reading and writing file streams. Commented out the previously used asynchronous methods.

* Remove debug code from test and helper files

The changes involve the removal of debug code from various test and helper files in the `UKHO.ExchangeSetService.API.FunctionalTests` namespace. Specifically, the debug code that was removed includes Console.WriteLine statements that were used to print paths, file names, and other debug information, as well as serialization and printing of object states for debugging purposes. Comments indicating the start and end of debug sections were also removed. The affected files include several test files and helper files. The removal of these debug statements is likely aimed at cleaning up the code and removing unnecessary logging that was used during development or troubleshooting.

* Update FileTransform@2 tasks and minor PowerShell tweak

Replaced `xmlTransformationRules` with `enableXmlTransform: false` and `xmlTransformationRules: ''` in multiple YAML files (Deploy.yml, continuous-deployment-v2.yml, continuous-deployment.yml, mock-api-continuous-deployment.yml, and azure-pipelines.yml). Adjusted `arguments` input in Deploy.yml PowerShell script task.

* Remove unnecessary usings

* Update binary file Test.000

The binary file `Test.000` has been modified. The exact changes are not detailed in the diff output, but the file content has been altered. The original file may have been corrupted.

* Disable setting HTTP headers for blob storage

Commented out the line that sets the ContentType in the
SetHttpHeadersAsync method. This change means the ContentType
will not be explicitly set when copying a file to the blob
storage.

* Disable specific tests and comment out AIO test task (just run 1)

Disabled several test methods by adding the [Ignore("rhz Test disabled")] attribute to them. Affected test classes include:
- ClearCacheVerification.cs
- ExchangeSetCancellationProduct.cs
- ExchangeSetForLargeFile.cs
- ExchangeSetGenerateFilesForEssApisWithS57ExchangeSetStandardParameter.cs
- ExchangeSetGenerateFilesForEssApisWithS63ExchangeSetStandardParameter.cs
- ExchangeSetGenerateFilesForEssApisWithoutExchangeSetStandardParameter.cs
- ExchangeSetGenerateFilesForProductIdentifier.cs

Commented out the task for running functional tests with AIO enabled in azure-pipelines.yml. This includes the DotNetCoreCLI@2 task with the --filter Category=QCOnlyTest-AIOEnabled argument.

* Disable test and add debug logging in ClearCacheVerification

Updated using directives in ClearCacheVerification.cs to include
System and System.Linq. Disabled the test method
WhenICallExchangeSetApiWithProductIdentifiersForExchangeSetStandards63_AndCalledClearCache_ThenCacheIsAvailable
with [Ignore("rhz Test disabled")]. Added debug logging to print
ExchangeSetType and the first product identifier from
DataHelper.GetProductIdentifiersS57().

* Add debug logging, temp disable feature, rename method

Added debug logging in ClearCacheVerification.cs to print the
partition key, row key, and table name for cache searches.

Temporarily disabled exchange set file creation for large media
in ExchangeSetForLargeFile.cs by commenting out the relevant
line and initializing DownloadedFolderPath to an empty list.

Renamed GetAzureTable to GetAzureTableAsync in
ClearCacheHelper.cs to follow async naming conventions.

* Add additional debug comment

* Update rowKey to use S63BusinessUnit in cache verification

Modified the rowKey variable in ClearCacheVerification.cs to use
Config.BESSConfig.S63BusinessUnit instead of Config.BESSConfig.
S57BusinessUnit. This change is to test if it is a data problem

* Update rowKey construction and remove debug output

The rowKey variable is reset to use Config.BESSConfig.S57BusinessUnit

* Hardcode keys for testing

* more debug

* split connection string for debug

* Toggle AIO functional test tasks in pipeline

Uncommented the task for running functional tests with AIO enabled
and commented out the task for running functional tests with AIO
disabled in the `azure-pipelines.yml` file. The script for setting
the AIO feature configuration remains unchanged.

* Remove multiple test classes and files

The changes involve the complete removal of numerous test classes and files related to the UKHO Exchange Set Service API. Specifically, the following files and their associated methods, setup, and teardown processes have been deleted:

- `AzureADB2CAuthenticationTests.cs`
- `ClearCacheVerification.cs`
- `CreateFssBatchAndFile.cs`
- `EssEndPointsScenariosWhenAioIsDisabled.cs`
- `ExchangeSetAfterSpecifiedDateTime.cs`
- `ExchangeSetByProductIdentifiers.cs`
- `ExchangeSetByProductVersion.cs`
- `ExchangeSetCancellationProduct.cs`
- `ExchangeSetForLargeFile.cs`
- `ExchangeSetFssRedirectResponse.cs`
- `ExchangeSetGenerateFilesForEssApisWithS57ExchangeSetStandardParameter.cs`
- `ExchangeSetGenerateFilesForEssApisWithS63ExchangeSetStandardParameter.cs`
- `ExchangeSetGenerateFilesForEssApisWithoutExchangeSetStandardParameter.cs`
- `ExchangeSetGenerateFilesForInValidProductVersion.cs`
- `ExchangeSetGenerateFilesForProductIdentifier.cs`
- `ExchangeSetGenerateFilesForValidProductVersion.cs`
- `ExchangeSetProductDataValidateIdentifierTests.cs`
- `ExchangeSetProductInformationTests.cs`
- `ExchangeSetTestReissues.cs`
- `InvalidAndBlankValueForExchangeSetStandardParameterTests.cs`
- `InvalidBundleInfoScenariosForLargeMediaExchangeSet.cs`
- `ValidateAuthorizationForAPIsWithExchangeSetStandardParameterTests.cs`

These removals suggest a significant refactor or deprecation of the related test cases and possibly the underlying functionalities they were testing.

* Comment out ESS API and FulfilmentService task

The task "Swap ESS API and ESS FulfilmentService Configuration AIODisabled" using `AzureCLI@2` has been commented out. This task was responsible for swapping the ESS API and ESS FulfilmentService configuration to disable AIO (Artificial Intelligence Operations) by running a PowerShell script with specific arguments.

* Clean up commented-out code in service and pipeline files

Removed a commented-out line setting HTTP headers in FileShareServiceCache.cs.
Cleaned up azure-pipelines.yml by removing several commented-out tasks related to Azure CLI and .NET Core CLI.

* Refactor fileSize calculation using helper method

Replaced direct summation of `FileSize` properties in `salesCatalogueResponse.ResponseBody` with a call to `CommonHelper.GetFileSize`. This change improves code readability and maintainability by encapsulating the file size calculation logic within a helper method.

* Refactor fileSize calculation to use CommonHelper

Standardize fileSize calculation by using CommonHelper.GetFileSize
instead of summing up the FileSize property of Products. This change
is applied in multiple methods within ProductDataService.cs and
AzureBlobStorageService.cs, improving code maintainability and
consistency.

* Refactor file size calculation in multiple services

Updated file size calculation in ProductDataService and AzureBlobStorageService to use direct sum of SalesCatalogueProductResponse. Removed CommonHelper.GetFileSize method.

* Comment out Elastic APM and update unit test assertions

The commented line `app.UseElasticApm(builder.Configuration);` in Program.cs has been removed.

In AzureWebJobsHealthCheckTest.cs, the order of parameters in the `Assert.That` method has been updated for better readability and consistency. The actual value being tested (`response.Status`) is now the first parameter in the assertion. These changes were made in three different test methods.

Additionally, a binary file named `Test.old` has been deleted.

* Suppressions

* Update suppressions and remove ineffective test

Added suppressions for Azure.Identity versions in NVDSuppressions.xml related to CVE-2024-43591 and CVE-2023-44487. Removed ineffective test method WhenInsertOrMergeFssCacheDetail_ThenReturnTrue from FileShareServiceCacheTest.cs.

* Add suppression for CVE-2023-36415 in Azure.Identity.dll

Added a new suppression entry in NVDSuppressions.xml for the CVE-2023-36415 vulnerability related to Azure.Identity.dll. The suppression includes notes with a CDATA section specifying the file name and a regex pattern for the package URL to match any version of the Azure.Identity package.

* Remove auto-patch-sdk.yml and comment out UseDotNet task

The `auto-patch-sdk.yml` file has been removed entirely. This file previously contained a scheduled job to automatically patch the .NET SDK, with a specific work item title, description, and tags, and used a secret for authentication.

In the `Deploy.yml` file, the task to use the .NET SDK (`UseDotNet@2`) has been commented out. This task was responsible for setting up the .NET SDK according to the `global.json` file in the specified working directory.

* Bump Microsoft.AspNetCore.HeaderPropagation (#389)

Bumps the all-packages group with 1 update in the /UKHO.SalesCatalogueFileShareServicesMock.API directory: [Microsoft.AspNetCore.HeaderPropagation](https://github.com/dotnet/aspnetcore).


Updates `Microsoft.AspNetCore.HeaderPropagation` from 8.0.10 to 8.0.11
- [Release notes](https://github.com/dotnet/aspnetcore/releases)
- [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
- [Commits](https://github.com/dotnet/aspnetcore/compare/v8.0.10...v8.0.11)

---
updated-dependencies:
- dependency-name: Microsoft.AspNetCore.HeaderPropagation
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump the all-packages group across 1 directory with 23 updates (#388)

* Bump the all-packages group across 1 directory with 23 updates

Bumps the all-packages group with 23 updates in the /UKHO.ExchangeSetService.API directory:

| Package | From | To |
| --- | --- | --- |
| [Azure.Storage.Blobs](https://github.com/Azure/azure-sdk-for-net) | `12.22.2` | `12.23.0` |
| [Azure.Storage.Common](https://github.com/Azure/azure-sdk-for-net) | `12.21.1` | `12.22.0` |
| [System.Text.Json](https://github.com/dotnet/runtime) | `8.0.5` | `6.0.10` |
| [FluentAssertions](https://github.com/fluentassertions/fluentassertions) | `6.12.1` | `6.12.2` |
| [Microsoft.Identity.Client](https://github.com/AzureAD/microsoft-authentication-library-for-dotnet) | `4.66.0` | `4.66.2` |
| [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) | `17.5.0` | `17.12.0` |
| [NUnit](https://github.com/nunit/nunit) | `3.13.3` | `3.14.0` |
| [NUnit3TestAdapter](https://github.com/nunit/nunit3-vs-adapter) | `4.4.2` | `4.6.0` |
| [SonarAnalyzer.CSharp](https://github.com/SonarSource/sonar-dotnet) | `8.55.0.65544` | `8.56.0.67649` |
| [FakeItEasy](https://github.com/FakeItEasy/FakeItEasy) | `7.3.1` | `7.4.0` |
| [Elastic.Apm](https://github.com/elastic/apm-agent-dotnet) | `1.30.0` | `1.31.0` |
| [Elastic.Apm](https://github.com/elastic/apm-agent-dotnet) | `1.30.0` | `1.31.0` |
| [Elastic.Apm.Azure.Storage](https://github.com/elastic/apm-agent-dotnet) | `1.30.0` | `1.31.0` |
| [FluentValidation](https://github.com/JeremySkinner/fluentvalidation) | `11.10.0` | `11.11.0` |
| [Microsoft.AspNetCore.Authentication.JwtBearer](https://github.com/dotnet/aspnetcore) | `8.0.10` | `8.0.11` |
| [Microsoft.AspNetCore.HeaderPropagation](https://github.com/dotnet/aspnetcore) | `8.0.10` | `8.0.11` |
| [Microsoft.AspNetCore.Mvc.NewtonsoftJson](https://github.com/dotnet/aspnetcore) | `8.0.10` | `8.0.11` |
| [Microsoft.Extensions.Logging.AzureAppServices](https://github.com/dotnet/aspnetcore) | `8.0.10` | `8.0.11` |
| [Microsoft.Graph.Core](https://github.com/microsoftgraph/msgraph-sdk-dotnet-core) | `3.1.22` | `3.2.1` |
| [System.Text.Json](https://github.com/dotnet/runtime) | `8.0.5` | `6.0.10` |
| [Microsoft.IdentityModel.Logging](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet) | `8.1.2` | `8.3.0` |
| [Microsoft.IdentityModel.Logging](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet) | `8.1.2` | `8.3.0` |
| [System.IdentityModel.Tokens.Jwt](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet) | `8.1.2` | `8.3.0` |
| [Azure.Storage.Common](https://github.com/Azure/azure-sdk-for-net) | `12.21.1` | `12.22.0` |
| [Azure.Storage.Queues](https://github.com/Azure/azure-sdk-for-net) | `12.20.1` | `12.21.0` |
| [System.Text.Json](https://github.com/dotnet/runtime) | `8.0.5` | `6.0.10` |
| [Microsoft.Extensions.Http.Polly](https://github.com/dotnet/aspnetcore) | `8.0.10` | `8.0.11` |
| [System.IO.Abstractions](https://github.com/TestableIO/System.IO.Abstractions) | `21.0.29` | `21.1.7` |



Updates `Azure.Storage.Blobs` from 12.22.2 to 12.23.0
- [Release notes](https://github.com/Azure/azure-sdk-for-net/releases)
- [Commits](https://github.com/Azure/azure-sdk-for-net/compare/Azure.Storage.Blobs_12.22.2...Azure.Storage.Blobs_12.23.0)

Updates `Azure.Storage.Common` from 12.21.1 to 12.22.0
- [Release notes](https://github.com/Azure/azure-sdk-for-net/releases)
- [Commits](https://github.com/Azure/azure-sdk-for-net/compare/Azure.Storage.Common_12.21.1...Azure.Storage.Common_12.22.0)

Updates `System.Text.Json` from 8.0.5 to 6.0.10
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v8.0.5...v6.0.10)

Updates `FluentAssertions` from 6.12.1 to 6.12.2
- [Release notes](https://github.com/fluentassertions/fluentassertions/releases)
- [Changelog](https://github.com/fluentassertions/fluentassertions/blob/develop/AcceptApiChanges.ps1)
- [Commits](https://github.com/fluentassertions/fluentassertions/compare/6.12.1...6.12.2)

Updates `Microsoft.Identity.Client` from 4.66.0 to 4.66.2
- [Release notes](https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/releases)
- [Changelog](https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/compare/4.66.0...4.66.2)

Updates `Microsoft.NET.Test.Sdk` from 17.5.0 to 17.12.0
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md)
- [Commits](https://github.com/microsoft/vstest/compare/v17.5.0...v17.12.0)

Updates `NUnit` from 3.13.3 to 3.14.0
- [Release notes](https://github.com/nunit/nunit/releases)
- [Changelog](https://github.com/nunit/nunit/blob/v3.14.0/CHANGES.md)
- [Commits](https://github.com/nunit/nunit/compare/v3.13.3...v3.14.0)

Updates `NUnit3TestAdapter` from 4.4.2 to 4.6.0
- [Release notes](https://github.com/nunit/nunit3-vs-adapter/releases)
- [Commits](https://github.com/nunit/nunit3-vs-adapter/compare/V4.4.2...V4.6.0)

Updates `SonarAnalyzer.CSharp` from 8.55.0.65544 to 8.56.0.67649
- [Release notes](https://github.com/SonarSource/sonar-dotnet/releases)
- [Commits](https://github.com/SonarSource/sonar-dotnet/compare/8.55.0.65544...8.56.0.67649)

Updates `FakeItEasy` from 7.3.1 to 7.4.0
- [Release notes](https://github.com/FakeItEasy/FakeItEasy/releases)
- [Commits](https://github.com/FakeItEasy/FakeItEasy/compare/7.3.1...7.4.0)

Updates `Elastic.Apm` from 1.30.0 to 1.31.0
- [Release notes](https://github.com/elastic/apm-agent-dotnet/releases)
- [Changelog](https://github.com/elastic/apm-agent-dotnet/blob/main/CHANGELOG.asciidoc)
- [Commits](https://github.com/elastic/apm-agent-dotnet/compare/v1.30.0...v1.31.0)

Updates `Elastic.Apm` from 1.30.0 to 1.31.0
- [Release notes](https://github.com/elastic/apm-agent-dotnet/releases)
- [Changelog](https://github.com/elastic/apm-agent-dotnet/blob/main/CHANGELOG.asciidoc)
- [Commits](https://github.com/elastic/apm-agent-dotnet/compare/v1.30.0...v1.31.0)

Updates `Elastic.Apm.Azure.Storage` from 1.30.0 to 1.31.0
- [Release notes](https://github.com/elastic/apm-agent-dotnet/releases)
- [Changelog](https://github.com/elastic/apm-agent-dotnet/blob/main/CHANGELOG.asciidoc)
- [Commits](https://github.com/elastic/apm-agent-dotnet/compare/v1.30.0...v1.31.0)

Updates `FluentValidation` from 11.10.0 to 11.11.0
- [Release notes](https://github.com/JeremySkinner/fluentvalidation/releases)
- [Changelog](https://github.com/FluentValidation/FluentValidation/blob/main/Changelog.txt)
- [Commits](https://github.com/JeremySkinner/fluentvalidation/compare/11.10.0...11.11.0)

Updates `Microsoft.AspNetCore.Authentication.JwtBearer` from 8.0.10 to 8.0.11
- [Release notes](https://github.com/dotnet/aspnetcore/releases)
- [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
- [Commits](https://github.com/dotnet/aspnetcore/compare/v8.0.10...v8.0.11)

Updates `Microsoft.AspNetCore.HeaderPropagation` from 8.0.10 to 8.0.11
- [Release notes](https://github.com/dotnet/aspnetcore/releases)
- [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
- [Commits](https://github.com/dotnet/aspnetcore/compare/v8.0.10...v8.0.11)

Updates `Microsoft.AspNetCore.Mvc.NewtonsoftJson` from 8.0.10 to 8.0.11
- [Release notes](https://github.com/dotnet/aspnetcore/releases)
- [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
- [Commits](https://github.com/dotnet/aspnetcore/compare/v8.0.10...v8.0.11)

Updates `Microsoft.Extensions.Logging.AzureAppServices` from 8.0.10 to 8.0.11
- [Release notes](https://github.com/dotnet/aspnetcore/releases)
- [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
- [Commits](https://github.com/dotnet/aspnetcore/compare/v8.0.10...v8.0.11)

Updates `Microsoft.Graph.Core` from 3.1.22 to 3.2.1
- [Release notes](https://github.com/microsoftgraph/msgraph-sdk-dotnet-core/releases)
- [Changelog](https://github.com/microsoftgraph/msgraph-sdk-dotnet-core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/microsoftgraph/msgraph-sdk-dotnet-core/compare/3.1.22...3.2.1)

Updates `System.Text.Json` from 8.0.5 to 6.0.10
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v8.0.5...v6.0.10)

Updates `Microsoft.IdentityModel.Logging` from 8.1.2 to 8.3.0
- [Release notes](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/releases)
- [Changelog](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/compare/8.1.2...8.3.0)

Updates `Microsoft.IdentityModel.Logging` from 8.1.2 to 8.3.0
- [Release notes](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/releases)
- [Changelog](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/compare/8.1.2...8.3.0)

Updates `System.IdentityModel.Tokens.Jwt` from 8.1.2 to 8.3.0
- [Release notes](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/releases)
- [Changelog](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/compare/8.1.2...8.3.0)

Updates `Azure.Storage.Common` from 12.21.1 to 12.22.0
- [Release notes](https://github.com/Azure/azure-sdk-for-net/releases)
- [Commits](https://github.com/Azure/azure-sdk-for-net/compare/Azure.Storage.Common_12.21.1...Azure.Storage.Common_12.22.0)

Updates `Azure.Storage.Queues` from 12.20.1 to 12.21.0
- [Release notes](https://github.com/Azure/azure-sdk-for-net/releases)
- [Commits](https://github.com/Azure/azure-sdk-for-net/compare/Azure.Storage.Queues_12.20.1...Azure.Storage.Queues_12.21.0)

Updates `System.Text.Json` from 8.0.5 to 6.0.10
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v8.0.5...v6.0.10)

Updates `Microsoft.Extensions.Http.Polly` from 8.0.10 to 8.0.11
- [Release notes](https://github.com/dotnet/aspnetcore/releases)
- [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
- [Commits](https://github.com/dotnet/aspnetcore/compare/v8.0.10...v8.0.11)

Updates `System.IO.Abstractions` from 21.0.29 to 21.1.7
- [Release notes](https://github.com/TestableIO/System.IO.Abstractions/releases)
- [Commits](https://github.com/TestableIO/System.IO.Abstractions/compare/v21.0.29...v21.1.7)

---
updated-dependencies:
- dependency-name: Azure.Storage.Blobs
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: Azure.Storage.Common
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: System.Text.Json
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-packages
- dependency-name: FluentAssertions
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-packages
- dependency-name: Microsoft.Identity.Client
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-packages
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: NUnit
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: NUnit3TestAdapter
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: SonarAnalyzer.CSharp
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: FakeItEasy
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: Elastic.Apm
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: Elastic.Apm
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: Elastic.Apm.Azure.Storage
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: FluentValidation
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: Microsoft.AspNetCore.Authentication.JwtBearer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-packages
- dependency-name: Microsoft.AspNetCore.HeaderPropagation
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-packages
- dependency-name: Microsoft.AspNetCore.Mvc.NewtonsoftJson
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-packages
- dependency-name: Microsoft.Extensions.Logging.AzureAppServices
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-packages
- dependency-name: Microsoft.Graph.Core
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: System.Text.Json
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-packages
- dependency-name: Microsoft.IdentityModel.Logging
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: Microsoft.IdentityModel.Logging
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: System.IdentityModel.Tokens.Jwt
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: Azure.Storage.Common
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: Azure.Storage.Queues
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: System.Text.Json
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-packages
- dependency-name: Microsoft.Extensions.Http.Polly
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-packages
- dependency-name: System.IO.Abstractions
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
...

Signed-off-by: dependabot[bot] <support@github.com>

* Allow Azure.Identity updates again

* Package updates

* Remove unused suppressions

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: HugoBurgess <128484816+HugoBurgess@users.noreply.github.com>
Co-authored-by: HugoBurgess <hugo.burgess@ukho.gov.uk>

* Bump the all-packages group (#390)

Bumps the all-packages group in /UKHO.ExchangeSetService.API with 4 updates: [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest), [Elastic.Apm.NetCoreAll](https://github.com/elastic/apm-agent-dotnet), [Azure.Identity](https://github.com/Azure/azure-sdk-for-net) and [System.Text.Json](https://github.com/dotnet/runtime).


Updates `Microsoft.NET.Test.Sdk` from 17.11.1 to 17.12.0
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md)
- [Commits](https://github.com/microsoft/vstest/compare/v17.11.1...v17.12.0)

Updates `Elastic.Apm.NetCoreAll` from 1.30.1 to 1.31.0
- [Release notes](https://github.com/elastic/apm-agent-dotnet/releases)
- [Changelog](https://github.com/elastic/apm-agent-dotnet/blob/main/CHANGELOG.asciidoc)
- [Commits](https://github.com/elastic/apm-agent-dotnet/compare/v1.30.1...v1.31.0)

Updates `Azure.Identity` from 1.13.0 to 1.13.1
- [Release notes](https://github.com/Azure/azure-sdk-for-net/releases)
- [Commits](https://github.com/Azure/azure-sdk-for-net/compare/Azure.Identity_1.13.0...Azure.Identity_1.13.1)

Updates `System.Text.Json` from 8.0.5 to 6.0.10
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v8.0.5...v6.0.10)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: Elastic.Apm.NetCoreAll
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-packages
- dependency-name: Azure.Identity
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-packages
- dependency-name: System.Text.Json
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-packages
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Lock AioEnabled Flag to true (#391)

* Remove unused .NET task and update AIO toggle handling

Removed the commented-out `UseDotNet@2` task from `Deploy.yml`, ensuring no impact on the current build process. The Azure CLI task for ESS API and ESS FulfilmentService configuration remains unchanged.

In `ProductDataServiceTests.cs`, removed test cases and assertions related to the AIO toggle being off. Adjusted remaining tests to focus on scenarios where the AIO toggle is on or other conditions are met.

Updated `IsAioEnabled` property in `AioConfiguration` to always return `true` and made its setter private. Commented out the line setting `AioEnabled`, indicating it is no longer used.

* Remove test for SetExchangeSetResponse with AIO disabled

The test `WhenSetExchangeSetResponseWithAioDisabled_ThenReturnValidExchangeSetResponse` has been removed. This test was responsible for verifying the `SetExchangeSetResponse` functionality when AIO was disabled.

* Disable tests that may be removed
IsAioEnabled is now read only

* Make AioConfiguration.AioEnabled private

* Remove obsolete AioEnabled config and ignored tests

Cleaned up commented-out AioEnabled configuration lines across multiple test files, including ProductDataServiceTests.cs, FileShareServiceCacheTest.cs, FileShareServiceTests.cs, AioConfiguration.cs, and FulfilmentCallBackServiceTest.cs. Removed ignored tests in FulfilmentCallBackServiceTest.cs an…
HugoBurgess added a commit that referenced this pull request Dec 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants