Skip to content

Commit f71ddb6

Browse files
author
Bruno de Souza Melo
committed
Support .NET 6 and 7 removed.
Nullable full reviewed.
1 parent 4029159 commit f71ddb6

File tree

6 files changed

+47
-71
lines changed

6 files changed

+47
-71
lines changed

docs/Publishing.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
nuget.exe push -Source "nuvtools" -ApiKey az NuvTools.AspNetCore.8.0.0.nupkg
2-
nuget.exe push -Source "nuvtools" -ApiKey az NuvTools.AspNetCore.EntityFrameworkCore.8.0.0.nupkg
1+
nuget.exe push -Source "nuvtools" -ApiKey az NuvTools.AspNetCore.8.1.0.nupkg
2+
nuget.exe push -Source "nuvtools" -ApiKey az NuvTools.AspNetCore.EntityFrameworkCore.8.1.0.nupkg

src/NuvTools.AspNetCore.EntityFrameworkCore/Mapper/ServiceWithCrudBase.cs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,37 +7,34 @@
77

88
namespace NuvTools.AspNetCore.EntityFrameworkCore.Mapper;
99

10-
public abstract class ServiceWithCrudBase<TContext, TDTO, TEntity, TKey> : ServiceWithMapperBase<TDTO, TEntity>
10+
public abstract class ServiceWithCrudBase<TContext, TDTO, TEntity, TKey>(TContext context, IMapper mapper) : ServiceWithMapperBase<TDTO, TEntity>(mapper)
1111
where TDTO : class
1212
where TEntity : class
1313
where TContext : DbContext
14+
where TKey : notnull
1415
{
15-
protected readonly TContext Context;
16-
17-
public ServiceWithCrudBase(TContext context, IMapper mapper) : base(mapper)
18-
{
19-
Context = context;
20-
}
16+
protected readonly TContext Context = context;
2117

2218
public DbSet<TEntity> Dataset { get { return Context.Set<TEntity>(); } }
2319

24-
public async Task<TDTO> FindAsync(TKey id)
20+
public async Task<TDTO?> FindAsync(TKey id)
2521
{
2622
return ConvertToDTO(await Context.FindAsync<TEntity>(id));
2723
}
2824

29-
public async Task<TDTO> FindAsync(object[] keys)
25+
public async Task<TDTO?> FindAsync(object[] keys)
3026
{
3127
return ConvertToDTO(await Context.FindAsync<TEntity>(keys));
3228
}
3329

34-
public async Task<IEnumerable<TDTO>> FindFromExpressionAsync(Expression<Func<IQueryable<TEntity>>> expression)
30+
public async Task<IEnumerable<TDTO>?> FindFromExpressionAsync(Expression<Func<IQueryable<TEntity>>> expression)
3531
{
3632
return ConvertToDTO(await Context.FromExpression(expression).ToListAsync());
3733
}
3834

3935
public virtual async Task<IResult<TKey>> AddAndSaveAsync(TDTO model)
4036
{
37+
ArgumentNullException.ThrowIfNull(model, nameof(model));
4138
return await Context.AddAndSaveAsync<TEntity, TKey>(ConvertToEntity(model));
4239
}
4340

src/NuvTools.AspNetCore.EntityFrameworkCore/NuvTools.AspNetCore.EntityFrameworkCore.csproj

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net6;net7;net8</TargetFrameworks>
4+
<TargetFrameworks>net8</TargetFrameworks>
55
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
66
<Authors>Nuv Tools</Authors>
77
<Copyright>Copyright © 2024 Nuv Tools</Copyright>
8-
<PackageProjectUrl>https://nuv.tools</PackageProjectUrl>
8+
<PackageProjectUrl>https://nuvtools.com</PackageProjectUrl>
99
<SignAssembly>True</SignAssembly>
1010
<AssemblyOriginatorKeyFile>NuvTools.AspNetCore.EntityFrameworkCore.snk</AssemblyOriginatorKeyFile>
1111
<Description>EntityFramework Core helper library to use with ASP.NET Aplications.</Description>
12-
<Version>8.0.3</Version>
12+
<Version>8.1.0</Version>
1313
<GenerateDocumentationFile>True</GenerateDocumentationFile>
1414
<EnforceCodeStyleInBuild>True</EnforceCodeStyleInBuild>
1515
<PackageIcon>icon.png</PackageIcon>
@@ -22,26 +22,16 @@
2222
<PackageReadmeFile>README.md</PackageReadmeFile>
2323
<PackageTags>Nuv Tools AspNetCore Entity Framework Core</PackageTags>
2424
<ImplicitUsings>true</ImplicitUsings>
25+
<Nullable>enable</Nullable>
2526
</PropertyGroup>
2627

2728
<ItemGroup>
2829
<FrameworkReference Include="Microsoft.AspNetCore.App" />
2930

30-
<PackageReference Include="NuvTools.Data.EntityFrameworkCore" Version="8.0.3" />
31+
<PackageReference Include="NuvTools.Data.EntityFrameworkCore" Version="8.1.0" />
32+
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.8" />
3133
</ItemGroup>
3234

33-
<ItemGroup Condition="'$(targetframework)' == 'net6'">
34-
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.16" />
35-
</ItemGroup>
36-
37-
<ItemGroup Condition="'$(targetframework)' == 'net7'">
38-
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.16" />
39-
</ItemGroup>
40-
41-
<ItemGroup Condition="'$(targetframework)' == 'net8'">
42-
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.2" />
43-
</ItemGroup>
44-
4535
<ItemGroup>
4636
<None Include="..\..\icon.png">
4737
<Link>icon.png</Link>

src/NuvTools.AspNetCore/Mapper/ServiceWithMapperBase.cs

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,59 +2,58 @@
22

33
namespace NuvTools.AspNetCore.Mapper;
44

5-
public abstract class ServiceWithMapperBase<TDTO, TEntity> where TDTO : class
5+
public abstract class ServiceWithMapperBase<TDTO, TEntity>(IMapper mapper) where TDTO : class
66
where TEntity : class
77
{
8-
private readonly IMapper _mapper;
9-
108
protected IMapper Mapper
119
{
1210
get
1311
{
14-
return _mapper;
12+
return mapper;
1513
}
1614
}
1715

18-
public ServiceWithMapperBase(IMapper mapper)
19-
{
20-
_mapper = mapper;
21-
}
22-
2316
#region Converter
2417

25-
protected TReturn ConvertTo<TReturn>(TEntity model)
18+
protected TReturn? ConvertTo<TReturn>(TEntity? model)
2619
{
27-
return _mapper.Map<TReturn>(model);
20+
if (model is null) return default;
21+
return mapper.Map<TReturn>(model);
2822
}
2923

30-
protected IEnumerable<TReturn> ConvertTo<TReturn>(IEnumerable<TEntity> models)
24+
protected IEnumerable<TReturn>? ConvertTo<TReturn>(IEnumerable<TEntity>? models)
3125
{
32-
return _mapper.Map<IEnumerable<TReturn>>(models);
26+
if (models is null) return null;
27+
return mapper.Map<IEnumerable<TReturn>>(models);
3328
}
3429

3530
protected TEntity ConvertToEntity(TDTO model)
3631
{
37-
return _mapper.Map<TEntity>(model);
32+
return mapper.Map<TEntity>(model);
3833
}
3934

40-
protected TDTO ConvertToDTO(TEntity model)
35+
protected TDTO? ConvertToDTO(TEntity? model)
4136
{
42-
return _mapper.Map<TDTO>(model);
37+
if (model is null) return null;
38+
return mapper.Map<TDTO>(model);
4339
}
4440

45-
protected IEnumerable<TDTO> ConvertToDTO(IEnumerable<TEntity> models)
46-
{
47-
return _mapper.Map<IEnumerable<TDTO>>(models);
41+
protected IEnumerable<TDTO>? ConvertToDTO(IEnumerable<TEntity>? models)
42+
{
43+
if (models is null) return null;
44+
return mapper.Map<IEnumerable<TDTO>>(models);
4845
}
4946

50-
protected IList<TDTO> ConvertToDTO(IList<TEntity> models)
47+
protected IList<TDTO>? ConvertToDTO(IList<TEntity>? models)
5148
{
52-
return _mapper.Map<IList<TDTO>>(models);
49+
if (models is null) return null;
50+
return mapper.Map<IList<TDTO>>(models);
5351
}
5452

55-
protected TDTO[] ConvertToDTO(TEntity[] models)
53+
protected TDTO[]? ConvertToDTO(TEntity[]? models)
5654
{
57-
return _mapper.Map<TDTO[]>(models);
55+
if (models is null) return null;
56+
return mapper.Map<TDTO[]>(models);
5857
}
5958

6059
#endregion

src/NuvTools.AspNetCore/NuvTools.AspNetCore.csproj

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net6;net7;net8</TargetFrameworks>
4+
<TargetFrameworks>net8</TargetFrameworks>
55
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
66
<Authors>Nuv Tools</Authors>
77
<Copyright>Copyright © 2024 Nuv Tools</Copyright>
8-
<PackageProjectUrl>https://nuv.tools</PackageProjectUrl>
8+
<PackageProjectUrl>https://nuvtools.com</PackageProjectUrl>
99
<SignAssembly>True</SignAssembly>
1010
<AssemblyOriginatorKeyFile>NuvTools.AspNetCore.snk</AssemblyOriginatorKeyFile>
1111
<Description>Common library with helpers to use with ASP.NET Aplications.</Description>
12-
<Version>8.0.2</Version>
12+
<Version>8.1.0</Version>
1313
<GenerateDocumentationFile>True</GenerateDocumentationFile>
1414
<EnforceCodeStyleInBuild>True</EnforceCodeStyleInBuild>
1515
<PackageIcon>icon.png</PackageIcon>
@@ -22,6 +22,7 @@
2222
<PackageReadmeFile>README.md</PackageReadmeFile>
2323
<PackageTags>Nuv Tools AspNetCore</PackageTags>
2424
<ImplicitUsings>true</ImplicitUsings>
25+
<Nullable>enable</Nullable>
2526
</PropertyGroup>
2627

2728
<ItemGroup>
@@ -43,18 +44,7 @@
4344

4445
<ItemGroup>
4546
<PackageReference Include="AutoMapper" Version="13.0.1" />
47+
<PackageReference Include="Microsoft.JSInterop" Version="8.0.8" />
4648
</ItemGroup>
47-
48-
<ItemGroup Condition="'$(targetframework)' == 'net6'">
49-
<PackageReference Include="Microsoft.JSInterop" Version="6.0.27" />
50-
</ItemGroup>
51-
52-
<ItemGroup Condition="'$(targetframework)' == 'net7'">
53-
<PackageReference Include="Microsoft.JSInterop" Version="7.0.16" />
54-
</ItemGroup>
55-
56-
<ItemGroup Condition="'$(targetframework)' == 'net8'">
57-
<PackageReference Include="Microsoft.JSInterop" Version="8.0.2" />
58-
</ItemGroup>
59-
49+
6050
</Project>

tests/NuvTools.AspNetCore.Tests/NuvTools.AspNetCore.Tests.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
14-
<PackageReference Include="NUnit" Version="4.1.0" />
15-
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
16-
<PackageReference Include="NUnit.Analyzers" Version="4.0.1">
13+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
14+
<PackageReference Include="NUnit" Version="4.2.2" />
15+
<PackageReference Include="NUnit3TestAdapter" Version="4.6.0" />
16+
<PackageReference Include="NUnit.Analyzers" Version="4.3.0">
1717
<PrivateAssets>all</PrivateAssets>
1818
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1919
</PackageReference>

0 commit comments

Comments
 (0)