Merge pull request #106 from LD-Reborn/18-update-to-dotnet-10

18 update to dotnet 10
This commit is contained in:
LD50
2026-01-22 16:48:22 +01:00
committed by GitHub
6 changed files with 61 additions and 57 deletions

View File

@@ -5,7 +5,7 @@
</ItemGroup> </ItemGroup>
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>

View File

@@ -1,22 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="ElmahCore" Version="2.1.2" /> <PackageReference Include="ElmahCore" Version="2.1.2" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.14" /> <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="10.0.2" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="4.14.0" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.8" /> <PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.2" />
<PackageReference Include="Quartz.Extensions.Hosting" Version="3.15.0" /> <PackageReference Include="Quartz.Extensions.Hosting" Version="3.15.1" />
<PackageReference Include="Serilog.AspNetCore" Version="9.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="10.0.0" />
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" /> <PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="10.1.0" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="9.0.3" /> <PackageReference Include="System.Configuration.ConfigurationManager" Version="10.0.2" />
<PackageReference Include="Python" Version="3.13.3" /> <PackageReference Include="Python" Version="3.14.2" />
<PackageReference Include="Pythonnet" Version="3.0.5" /> <PackageReference Include="Pythonnet" Version="3.0.5" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -16,7 +16,7 @@ public class SearchdomainHelper(ILogger<SearchdomainHelper> logger, DatabaseHelp
public static byte[] BytesFromFloatArray(float[] floats) public static byte[] BytesFromFloatArray(float[] floats)
{ {
var byteArray = new byte[floats.Length * 4]; var byteArray = new byte[floats.Length * sizeof(float)];
var floatArray = floats.ToArray(); var floatArray = floats.ToArray();
Buffer.BlockCopy(floatArray, 0, byteArray, 0, byteArray.Length); Buffer.BlockCopy(floatArray, 0, byteArray, 0, byteArray.Length);
return byteArray; return byteArray;
@@ -24,7 +24,7 @@ public class SearchdomainHelper(ILogger<SearchdomainHelper> logger, DatabaseHelp
public static float[] FloatArrayFromBytes(byte[] bytes) public static float[] FloatArrayFromBytes(byte[] bytes)
{ {
var floatArray = new float[bytes.Length / 4]; var floatArray = new float[bytes.Length / sizeof(float)];
Buffer.BlockCopy(bytes, 0, floatArray, 0, bytes.Length); Buffer.BlockCopy(bytes, 0, floatArray, 0, bytes.Length);
return floatArray; return floatArray;
} }

View File

@@ -9,9 +9,8 @@ using Server.Helper;
using Server.Models; using Server.Models;
using Server.Services; using Server.Services;
using System.Text.Json.Serialization; using System.Text.Json.Serialization;
using System.Reflection;
using System.Configuration; using System.Configuration;
using Microsoft.OpenApi.Models; using Microsoft.OpenApi;
using Shared.Models; using Shared.Models;
using Microsoft.AspNetCore.ResponseCompression; using Microsoft.AspNetCore.ResponseCompression;
using System.Net; using System.Net;
@@ -64,36 +63,37 @@ builder.Services.AddScoped<LocalizationService>();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer(); builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(c => builder.Services.AddOpenApi(options =>
{ {
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; options.AddDocumentTransformer((document, context, _) =>
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
c.IncludeXmlComments(xmlPath);
if (configuration.ApiKeys is not null)
{ {
c.AddSecurityDefinition("ApiKey", new OpenApiSecurityScheme if (configuration.ApiKeys is null)
{ return Task.CompletedTask;
Description = "ApiKey must appear in header",
Type = SecuritySchemeType.ApiKey, document.Components ??= new();
Name = "X-API-KEY", document.Components.SecuritySchemes ??= new Dictionary<string, IOpenApiSecurityScheme>();
In = ParameterLocation.Header,
Scheme = "ApiKeyScheme" document.Components.SecuritySchemes["ApiKey"] =
}); new OpenApiSecurityScheme
var key = new OpenApiSecurityScheme()
{
Reference = new OpenApiReference
{ {
Type = ReferenceType.SecurityScheme, Type = SecuritySchemeType.ApiKey,
Id = "ApiKey" Name = "X-API-KEY",
}, In = ParameterLocation.Header,
In = ParameterLocation.Header Description = "ApiKey must appear in header"
}; };
var requirement = new OpenApiSecurityRequirement
{ document.Security ??= [];
{ key, []}
}; // Apply globally
c.AddSecurityRequirement(requirement); document.Security?.Add(
} new OpenApiSecurityRequirement
{
[new OpenApiSecuritySchemeReference("ApiKey", document)] = []
}
);
return Task.CompletedTask;
});
}); });
Log.Logger = new LoggerConfiguration() Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(builder.Configuration) .ReadFrom.Configuration(builder.Configuration)
@@ -242,13 +242,16 @@ app.Use(async (context, next) =>
await next(); await next();
}); });
app.UseSwagger();
app.UseSwaggerUI(options => app.UseSwaggerUI(options =>
{ {
options.SwaggerEndpoint("/openapi/v1.json", "API v1");
options.RoutePrefix = "swagger";
options.EnablePersistAuthorization(); options.EnablePersistAuthorization();
options.InjectStylesheet("/swagger-ui/custom.css"); options.InjectStylesheet("/swagger-ui/custom.css");
options.InjectJavascript("/swagger-ui/custom.js"); options.InjectJavascript("/swagger-ui/custom.js");
}); });
app.MapOpenApi("/openapi/v1.json");
//app.UseElmahExceptionPage(); // Messes with JSON response for API calls. Leaving this here so I don't accidentally put this in again later on. //app.UseElmahExceptionPage(); // Messes with JSON response for API calls. Leaving this here so I don't accidentally put this in again later on.
if (configuration.ApiKeys is not null) if (configuration.ApiKeys is not null)

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup> </PropertyGroup>
@@ -12,21 +12,22 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="AdaptiveExpressions" Version="4.23.0" /> <PackageReference Include="AdaptiveExpressions" Version="4.23.1" />
<PackageReference Include="ElmahCore" Version="2.1.2" /> <PackageReference Include="ElmahCore" Version="2.1.2" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="10.0.2" />
<PackageReference Include="Serilog.AspNetCore" Version="9.0.0" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="10.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" /> <PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
<PackageReference Include="Microsoft.Data.SqlClient" Version="6.0.1" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="10.1.0" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.3" /> <PackageReference Include="Microsoft.Data.SqlClient" Version="6.1.4" />
<PackageReference Include="MySql.Data" Version="9.2.0" /> <PackageReference Include="Microsoft.Data.Sqlite" Version="10.0.2" />
<PackageReference Include="Npgsql" Version="9.0.3" /> <PackageReference Include="MySql.Data" Version="9.6.0" />
<PackageReference Include="Npgsql" Version="10.0.1" />
<PackageReference Include="OllamaSharp" Version="5.2.2" /> <PackageReference Include="OllamaSharp" Version="5.2.2" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="9.0.3" /> <PackageReference Include="System.Configuration.ConfigurationManager" Version="10.0.2" />
<PackageReference Include="System.Data.SqlClient" Version="4.9.0" /> <PackageReference Include="System.Data.SqlClient" Version="4.9.0" />
<PackageReference Include="System.Data.Sqlite" Version="1.0.119" /> <PackageReference Include="System.Data.Sqlite" Version="2.0.2" />
<PackageReference Include="System.Numerics.Tensors" Version="9.0.3" /> <PackageReference Include="System.Numerics.Tensors" Version="10.0.2" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>