Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

Represents the **NuGet** versions.

## v5.18.1
- *Fixed:* Upgraded `CoreEx` to include all related fixes and improvements; possible related updates that may be required are:
- The Entity Framework (EF) `AddEfDb<T>` previously registered the `T` as the `IEfDB` (shorthand for `AddEfDb<IEfDb, T>`); this has been corrected to register the `T` as the `T` only. Therefore, the registering should be updated to be more explcit, or the `IEfDb` dependency references should use the explicit `T` where required.
- The Cosmos DB configuration must now be on the container and not the database; any lazy-loading references of the container can be removed as these are now cached internally.

## v5.18.0
- *Enhancement:* Added `net9.0` support.
- *Enhancement:* Deprecated `net7.0` support; no longer supported by [Microsoft](https://dotnet.microsoft.com/en-us/platform/support/policy).
Expand Down
2 changes: 1 addition & 1 deletion Common.targets
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<Version>5.18.0</Version>
<Version>5.18.1</Version>
<LangVersion>preview</LangVersion>
<Authors>Avanade</Authors>
<Company>Avanade</Company>
Expand Down
4 changes: 2 additions & 2 deletions samples/Cdr.Banking/Cdr.Banking.Api/Cdr.Banking.Api.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
<ImplicitUsings>true</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CoreEx.AspNetCore" Version="3.30.0" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="7.0.0" />
<PackageReference Include="CoreEx.AspNetCore" Version="3.31.0" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="7.2.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Cdr.Banking.Business\Cdr.Banking.Business.csproj" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
<Folder Include="DataSvc\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="CoreEx.AspNetCore" Version="3.30.0" />
<PackageReference Include="CoreEx.Cosmos" Version="3.30.0" />
<PackageReference Include="CoreEx.Validation" Version="3.30.0" />
<PackageReference Include="CoreEx.AspNetCore" Version="3.31.0" />
<PackageReference Include="CoreEx.Cosmos" Version="3.31.0" />
<PackageReference Include="CoreEx.Validation" Version="3.31.0" />
</ItemGroup>
</Project>
4 changes: 2 additions & 2 deletions samples/Cdr.Banking/Cdr.Banking.Business/Data/AccountData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ namespace Cdr.Banking.Business.Data;

public partial class AccountData
{
private static QueryArgsConfig _config = QueryArgsConfig.Create()
private static readonly QueryArgsConfig _config = QueryArgsConfig.Create()
.WithFilter(filter => filter
.AddReferenceDataField<OpenStatus>(nameof(Model.Account.OpenStatus), c => c.WithValue(os => os == OpenStatus.All ? throw new FormatException("Value not valid for filtering.") : os))
.AddReferenceDataField<ProductCategory>(nameof(Model.Account.ProductCategory))
Expand Down Expand Up @@ -49,7 +49,7 @@ partial void AccountDataCtor()
private Task<Result<Balance?>> GetBalanceOnImplementationAsync(string? accountId)
{
// Use the 'Account' model and select for the specified id to access the balance property.
return Result.GoAsync(_cosmos.Accounts.ModelContainer.Query(q => q.Where(x => x.Id == accountId)).SelectFirstOrDefaultWithResultAsync())
return Result.GoAsync(_cosmos.Accounts.Model.Query(q => q.Where(x => x.Id == accountId)).SelectFirstOrDefaultWithResultAsync())
.WhenAs(a => a is not null, a =>
{
var bal = _cosmos.Mapper.Map<Model.Balance, Balance>(a!.Balance);
Expand Down
21 changes: 6 additions & 15 deletions samples/Cdr.Banking/Cdr.Banking.Business/Data/CosmosDb.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,37 +26,28 @@ public interface ICosmos : ICosmosDb
/// </summary>
public class CosmosDb : CoreEx.Cosmos.CosmosDb, ICosmos
{
private readonly Lazy<CosmosDbContainer<Account, Model.Account>> _accounts;
private readonly Lazy<CosmosDbContainer<AccountDetail, Model.Account>> _accountDetails;
private readonly Lazy<CosmosDbContainer<Transaction, Model.Transaction>> _transactions;

/// <summary>
/// Initializes a new instance of the <see cref="CosmosDb"/> class.
/// </summary>
public CosmosDb(Mac.Database database, IMapper mapper, CosmosDbInvoker? invoker = null) : base(database, mapper, invoker)
{
// Apply an authorization filter to all operations to ensure only the valid data is available based on the users context; i.e. only allow access to Accounts within list defined on ExecutionContext.
UseAuthorizeFilter<Model.Account>("Account", (q) => ((IQueryable<Model.Account>)q).Where(x => ExecutionContext.Current.Accounts.Contains(x.Id!)));
UseAuthorizeFilter<Model.Account>("Transaction", (q) => ((IQueryable<Model.Transaction>)q).Where(x => ExecutionContext.Current.Accounts.Contains(x.AccountId!)));

// Lazy create the containers.
_accounts = new(() => Container<Account, Model.Account>("Account"));
_accountDetails = new(() => Container<AccountDetail, Model.Account>("Account"));
_transactions = new(() => Container<Transaction, Model.Transaction>("Transaction"));
// Apply the authorization filter to all containers to ensure only the valid data is available based on the users context; i.e.only allow access to Accounts within list defined on ExecutionContext.
Container("Account").UseAuthorizeFilter<Model.Account>(q => q.Where(x => ExecutionContext.Current.Accounts.Contains(x.Id!)));
Container("Transaction").UseAuthorizeFilter<Model.Transaction>(q => q.Where(x => ExecutionContext.Current.Accounts.Contains(x.AccountId!)));
}

/// <summary>
/// Exposes <see cref="Account"/> entity from <b>Account</b> container.
/// </summary>
public CosmosDbContainer<Account, Model.Account> Accounts => _accounts.Value;
public CosmosDbContainer<Account, Model.Account> Accounts => Container<Account, Model.Account>("Account");

/// <summary>
/// Exposes <see cref="AccountDetail"/> entity from <b>Account</b> container.
/// </summary>
public CosmosDbContainer<AccountDetail, Model.Account> AccountDetails => _accountDetails.Value;
public CosmosDbContainer<AccountDetail, Model.Account> AccountDetails => Container<AccountDetail, Model.Account>("Account");

/// <summary>
/// Exposes <see cref="AccountDetail"/> entity from <b>Account</b> container.
/// </summary>
public CosmosDbContainer<Transaction, Model.Transaction> Transactions => _transactions.Value;
public CosmosDbContainer<Transaction, Model.Transaction> Transactions => Container<Transaction, Model.Transaction>("Transaction");
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public TransactionArgsValidator()
{
// Default FromDate where not provided, as 90 days less than ToDate; where no ToDate then assume today (now). Make sure FromDate is not greater than ToDate.
Property(x => x.FromDate)
.Default(a => (a.ToDate!.HasValue ? a.ToDate.Value : CoreEx.ExecutionContext.SystemTime.UtcNow).AddDays(-90))
.Default(a => (a.ToDate!.HasValue ? a.ToDate.Value : SystemTime.Timestamp).AddDays(-90))
.CompareProperty(CompareOperator.LessThanEqual, y => y.ToDate).DependsOn(y => y.ToDate);

// Make sure MinAmount is not greater than MaxAmount.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@
<Folder Include="Entities\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="CoreEx" Version="3.30.0" />
<PackageReference Include="CoreEx" Version="3.31.0" />
</ItemGroup>
</Project>
6 changes: 3 additions & 3 deletions samples/Cdr.Banking/Cdr.Banking.Test/Cdr.Banking.Test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="NUnit.Analyzers" Version="4.4.0">
<PackageReference Include="NUnit.Analyzers" Version="4.6.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="CoreEx.UnitTesting" Version="3.30.0" />
<PackageReference Include="UnitTestEx.NUnit" Version="5.0.0" />
<PackageReference Include="CoreEx.UnitTesting" Version="3.31.0" />
<PackageReference Include="UnitTestEx.NUnit" Version="5.3.0" />
</ItemGroup>

<ItemGroup>
Expand Down
4 changes: 2 additions & 2 deletions samples/Cdr.Banking/Cdr.Banking.Test/FixtureSetup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ public void OneTimeSetUp()

var ac = await _cosmosDb.Database.ReplaceOrCreateContainerAsync(new Cosmos.ContainerProperties
{
Id = _cosmosDb.Accounts.Container.Id,
Id = _cosmosDb.Accounts.CosmosContainer.Id,
PartitionKeyPath = "/_partitionKey"
}, cancellationToken: ct).ConfigureAwait(false);

var tc = await _cosmosDb.Database.ReplaceOrCreateContainerAsync(new Cosmos.ContainerProperties
{
Id = _cosmosDb.Transactions.Container.Id,
Id = _cosmosDb.Transactions.CosmosContainer.Id,
PartitionKeyPath = "/accountId"
}, cancellationToken: ct).ConfigureAwait(false);

Expand Down
6 changes: 3 additions & 3 deletions samples/Demo/Beef.Demo.Api/Beef.Demo.Api.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="CoreEx.AspNetCore" Version="3.30.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="7.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="7.0.0" />
<PackageReference Include="CoreEx.AspNetCore" Version="3.31.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="7.2.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="7.2.0" />
</ItemGroup>

<ItemGroup>
Expand Down
3 changes: 2 additions & 1 deletion samples/Demo/Beef.Demo.Api/Startup.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Beef.Demo.Common.Agents;
using CoreEx.Database;
using CoreEx.EntityFrameworkCore;
using CoreEx.Events;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Options;
Expand Down Expand Up @@ -54,7 +55,7 @@ public void ConfigureServices(IServiceCollection services)
// .AddSingleton<ITripOData>(_ => new TripOData(new Uri(WebApiStartup.GetConnectionString(_config, "TripOData"))));
services.AddDatabase(sp => new Database(() => new SqlConnection(sp.GetRequiredService<DemoSettings>().DatabaseConnectionString), sp.GetRequiredService<ILogger<Database>>()))
.AddDbContext<EfDbContext>()
.AddEfDb<EfDb>();
.AddEfDb<IEfDb, EfDb>();

services.AddSingleton(sp =>
{
Expand Down
16 changes: 8 additions & 8 deletions samples/Demo/Beef.Demo.Business/Beef.Demo.Business.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="CoreEx" Version="3.30.0" />
<PackageReference Include="CoreEx.AspNetCore" Version="3.30.0" />
<PackageReference Include="CoreEx.Cosmos" Version="3.30.0" />
<PackageReference Include="CoreEx.Database" Version="3.30.0" />
<PackageReference Include="CoreEx.Database.SqlServer" Version="3.30.0" />
<PackageReference Include="CoreEx.EntityFrameworkCore" Version="3.30.0" />
<PackageReference Include="CoreEx.Validation" Version="3.30.0" />
<PackageReference Include="CoreEx.FluentValidation" Version="3.30.0" />
<PackageReference Include="CoreEx" Version="3.31.0" />
<PackageReference Include="CoreEx.AspNetCore" Version="3.31.0" />
<PackageReference Include="CoreEx.Cosmos" Version="3.31.0" />
<PackageReference Include="CoreEx.Database" Version="3.31.0" />
<PackageReference Include="CoreEx.Database.SqlServer" Version="3.31.0" />
<PackageReference Include="CoreEx.EntityFrameworkCore" Version="3.31.0" />
<PackageReference Include="CoreEx.Validation" Version="3.31.0" />
<PackageReference Include="CoreEx.FluentValidation" Version="3.31.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.20" />
</ItemGroup>

Expand Down
4 changes: 2 additions & 2 deletions samples/Demo/Beef.Demo.Common/Beef.Demo.Common.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
<Folder Include="Agents\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="CoreEx" Version="3.30.0" />
<PackageReference Include="Grpc.Tools" Version="2.67.0">
<PackageReference Include="CoreEx" Version="3.31.0" />
<PackageReference Include="Grpc.Tools" Version="2.69.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
6 changes: 3 additions & 3 deletions samples/Demo/Beef.Demo.Test/Beef.Demo.Test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="CoreEx.UnitTesting" Version="3.30.0" />
<PackageReference Include="UnitTestEx.NUnit" Version="5.0.0" />
<PackageReference Include="NUnit.Analyzers" Version="4.4.0">
<PackageReference Include="CoreEx.UnitTesting" Version="3.31.0" />
<PackageReference Include="UnitTestEx.NUnit" Version="5.3.0" />
<PackageReference Include="NUnit.Analyzers" Version="4.6.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
6 changes: 3 additions & 3 deletions samples/My.Hr/My.Hr.Api/My.Hr.Api.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
<ImplicitUsings>true</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CoreEx.AspNetCore" Version="3.30.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="7.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="7.0.0" />
<PackageReference Include="CoreEx.AspNetCore" Version="3.31.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="7.2.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="7.2.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\My.Hr.Business\My.Hr.Business.csproj" />
Expand Down
6 changes: 3 additions & 3 deletions samples/My.Hr/My.Hr.Business/Data/Generated/EmployeeData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ namespace My.Hr.Business.Data;
public partial class EmployeeData : IEmployeeData
{
private readonly IDatabase _db;
private readonly IEfDb _ef;
private readonly HrEfDb _ef;
private readonly IEventPublisher _events;
private Func<IQueryable<EfModel.Employee>, EmployeeArgs?, IQueryable<EfModel.Employee>>? _getByArgsOnQuery;

/// <summary>
/// Initializes a new instance of the <see cref="EmployeeData"/> class.
/// </summary>
/// <param name="db">The <see cref="IDatabase"/>.</param>
/// <param name="ef">The <see cref="IEfDb"/>.</param>
/// <param name="ef">The <see cref="HrEfDb"/>.</param>
/// <param name="events">The <see cref="IEventPublisher"/>.</param>
public EmployeeData(IDatabase db, IEfDb ef, IEventPublisher events)
public EmployeeData(IDatabase db, HrEfDb ef, IEventPublisher events)
{ _db = db.ThrowIfNull(); _ef = ef.ThrowIfNull(); _events = events.ThrowIfNull(); EmployeeDataCtor(); }

partial void EmployeeDataCtor(); // Enables additional functionality to be added to the constructor.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@ namespace My.Hr.Business.Data;
/// </summary>
public partial class PerformanceReviewData : IPerformanceReviewData
{
private readonly IEfDb _ef;
private readonly HrEfDb _ef;
private readonly IEventPublisher _events;
private Func<IQueryable<EfModel.PerformanceReview>, Guid, IQueryable<EfModel.PerformanceReview>>? _getByEmployeeIdOnQuery;

/// <summary>
/// Initializes a new instance of the <see cref="PerformanceReviewData"/> class.
/// </summary>
/// <param name="ef">The <see cref="IEfDb"/>.</param>
/// <param name="ef">The <see cref="HrEfDb"/>.</param>
/// <param name="events">The <see cref="IEventPublisher"/>.</param>
public PerformanceReviewData(IEfDb ef, IEventPublisher events)
public PerformanceReviewData(HrEfDb ef, IEventPublisher events)
{ _ef = ef.ThrowIfNull(); _events = events.ThrowIfNull(); PerformanceReviewDataCtor(); }

partial void PerformanceReviewDataCtor(); // Enables additional functionality to be added to the constructor.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ namespace My.Hr.Business.Data;
/// </summary>
public partial class ReferenceDataData : IReferenceDataData
{
private readonly IEfDb _ef;
private readonly HrEfDb _ef;

/// <summary>
/// Initializes a new instance of the <see cref="ReferenceDataData"/> class.
/// </summary>
/// <param name="ef">The <see cref="IEfDb"/>.</param>
public ReferenceDataData(IEfDb ef)
/// <param name="ef">The <see cref="HrEfDb"/>.</param>
public ReferenceDataData(HrEfDb ef)
{ _ef = ef.ThrowIfNull(); ReferenceDataDataCtor(); }

partial void ReferenceDataDataCtor(); // Enables additional functionality to be added to the constructor.
Expand Down
8 changes: 4 additions & 4 deletions samples/My.Hr/My.Hr.Business/My.Hr.Business.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
<LangVersion>latest</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CoreEx" Version="3.30.0" />
<PackageReference Include="CoreEx.Database.SqlServer" Version="3.30.0" />
<PackageReference Include="CoreEx.EntityFrameworkCore" Version="3.30.0" />
<PackageReference Include="CoreEx.Validation" Version="3.30.0" />
<PackageReference Include="CoreEx" Version="3.31.0" />
<PackageReference Include="CoreEx.Database.SqlServer" Version="3.31.0" />
<PackageReference Include="CoreEx.EntityFrameworkCore" Version="3.31.0" />
<PackageReference Include="CoreEx.Validation" Version="3.31.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.31" />
</ItemGroup>
</Project>
1 change: 1 addition & 0 deletions samples/My.Hr/My.Hr.CodeGen/entity.beef-5.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ eventSourceKind: Relative
eventTransaction: true
eventPublish: Data
databaseSchema: Hr
entityFrameworkType: HrEfDb
entities:
# Creating an Employee base with only the subset of fields that we want returned from the GetByArgs.
# - As we will be returning more than one we need the Collection and CollectionResult.
Expand Down
1 change: 1 addition & 0 deletions samples/My.Hr/My.Hr.CodeGen/refdata.beef-5.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
webapiRoutePrefix: ref
refDataType: Guid
entityFrameworkType: HrEfDb
entities:
- { name: Gender, webApiRoutePrefix: genders, autoImplement: EntityFramework, entityFrameworkModel: EfModel.Gender }
- { name: TerminationReason, webApiRoutePrefix: terminationReasons, autoImplement: EntityFramework, entityFrameworkModel: EfModel.TerminationReason }
Expand Down
2 changes: 1 addition & 1 deletion samples/My.Hr/My.Hr.Common/My.Hr.Common.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
<ImplicitUsings>true</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CoreEx" Version="3.30.0" />
<PackageReference Include="CoreEx" Version="3.31.0" />
</ItemGroup>
</Project>
8 changes: 4 additions & 4 deletions samples/My.Hr/My.Hr.Test/My.Hr.Test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -32,18 +32,18 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="CoreEx" Version="3.30.0" />
<PackageReference Include="CoreEx" Version="3.31.0" />
<PackageReference Include="NUnit3TestAdapter" Version="4.6.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="NUnit.Analyzers" Version="4.4.0">
<PackageReference Include="NUnit.Analyzers" Version="4.6.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="CoreEx.UnitTesting" Version="3.30.0" />
<PackageReference Include="UnitTestEx.NUnit" Version="5.0.0" />
<PackageReference Include="CoreEx.UnitTesting" Version="3.31.0" />
<PackageReference Include="UnitTestEx.NUnit" Version="5.3.0" />
</ItemGroup>

<ItemGroup>
Expand Down
6 changes: 3 additions & 3 deletions samples/MyEf.Hr/MyEf.Hr.Api/MyEf.Hr.Api.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
<GenerateDocumentationFile>True</GenerateDocumentationFile>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CoreEx.AspNetCore" Version="3.30.0" />
<PackageReference Include="CoreEx.Azure" Version="3.30.0" />
<PackageReference Include="CoreEx.AspNetCore" Version="3.31.0" />
<PackageReference Include="CoreEx.Azure" Version="3.31.0" />
<PackageReference Include="OpenTelemetry.Instrumentation.EntityFrameworkCore" Version="1.0.0-beta.11" />
<PackageReference Include="AspNetCore.HealthChecks.Azure.Storage.Blobs" Version="8.0.1" />
<PackageReference Include="Azure.Monitor.OpenTelemetry.AspNetCore" Version="1.2.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="7.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="7.2.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MyEf.Hr.Business\MyEf.Hr.Business.csproj" />
Expand Down
Loading