Skip to content

Commit 0816e57

Browse files
Merge pull request #1079 from icsharpcode/feature/funcnet8
Upgrade Azure Function to .NET 8
2 parents d6bea17 + 1856b78 commit 0816e57

15 files changed

Lines changed: 99 additions & 348 deletions

Func/.gitignore

Lines changed: 0 additions & 264 deletions
This file was deleted.

Func/Convert.cs

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
1-
using System.IO;
2-
using System.Threading;
3-
using System.Threading.Tasks;
41
using ICSharpCode.CodeConverter.Web;
52
using Microsoft.AspNetCore.Http;
63
using Microsoft.AspNetCore.Mvc;
7-
using Microsoft.Azure.WebJobs;
8-
using Microsoft.Azure.WebJobs.Extensions.Http;
4+
using Microsoft.Azure.Functions.Worker;
95
using Microsoft.Extensions.Logging;
106
using Newtonsoft.Json;
117

@@ -16,36 +12,38 @@ public class Convert
1612
public const string DefaultRequest = @"{""code"":""Public Class VisualBasicClass\r\n\r\nEnd Class"",""requestedConversion"":""vbnet2cs""}";
1713
public const string DefaultConversion = "\r\npublic partial class VisualBasicClass\r\n{\r\n\r\n}";
1814

19-
private readonly ILoggerFactory _loggerFactory;
15+
private readonly ILogger<Convert> _logger;
2016

21-
public Convert(ILoggerFactory loggerFactory)
17+
public Convert(ILogger<Convert> logger)
2218
{
23-
_loggerFactory = loggerFactory;
19+
_logger = logger;
2420
}
2521

2622
//
2723
// Sample data: {"code":"Public Class VisualBasicClass\r\n\r\nEnd Class","requestedConversion":"vbnet2cs"}
2824
//
29-
[FunctionName("Convert")]
30-
#pragma warning disable VSTHRD200 // Use "Async" suffix for async methods - Name must be "Run" for this to work AFAIK
31-
public async Task<IActionResult> Run(
32-
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req,
33-
CancellationToken hostCancellationToken)
25+
[Function("Convert")]
26+
#pragma warning disable VSTHRD200 // Use "Async" suffix for async methods
27+
public async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequest req,
3428
#pragma warning restore VSTHRD200 // Use "Async" suffix for async methods
29+
CancellationToken hostCancellationToken)
3530
{
36-
var logger = _loggerFactory.CreateLogger<Convert>();
3731
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
3832

3933
if (0 == string.CompareOrdinal(requestBody, DefaultRequest)) {
40-
logger.LogInformation("Short-circuiting for default conversion request");
34+
_logger.LogInformation("Short-circuiting for default conversion request");
4135
return new OkObjectResult(new ConvertResponse(true, DefaultConversion, ""));
4236
}
4337

4438
var data = JsonConvert.DeserializeObject<ConvertRequest>(requestBody);
4539

40+
if (null == data) {
41+
return new BadRequestResult();
42+
}
43+
4644
using var cancellationSource = CancellationTokenSource.CreateLinkedTokenSource(hostCancellationToken, req.HttpContext.RequestAborted);
4745
var response = await WebConverter.ConvertAsync(data, cancellationSource.Token);
4846

4947
return new OkObjectResult(response);
5048
}
51-
}
49+
}

Func/Func.csproj

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,34 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net6.0</TargetFramework>
3+
<TargetFramework>net8.0</TargetFramework>
44
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
5+
<OutputType>Exe</OutputType>
6+
<ImplicitUsings>enable</ImplicitUsings>
7+
<Nullable>disable</Nullable>
58
<RootNamespace>ICSharpCode.CodeConverter.Func</RootNamespace>
69
<AssemblyName>ICSharpCode.CodeConverter.Func</AssemblyName>
7-
<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
8-
<UserSecretsId>1d2f0b91-7e29-4920-8a93-e52863d06c2e</UserSecretsId>
10+
<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
911
</PropertyGroup>
12+
1013
<ItemGroup>
1114
<Compile Include="..\CodeConverter\Common\DefaultReferences.cs" Link="DefaultReferences.cs" />
1215
<Compile Include="..\Web\WebConverter.cs" Link="WebConverter.cs" />
13-
<None Include="local.settings.json" />
1416
</ItemGroup>
17+
1518
<ItemGroup>
16-
<PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
17-
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.1.3" />
19+
<ProjectReference Include="..\CodeConverter\CodeConverter.csproj" />
20+
</ItemGroup>
21+
22+
<ItemGroup>
23+
<FrameworkReference Include="Microsoft.AspNetCore.App" />
24+
<PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.21.0" />
25+
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.1.0" />
26+
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore" Version="1.2.1" />
27+
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.16.4" />
28+
<PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.22.0" />
29+
<PackageReference Include="Microsoft.Azure.Functions.Worker.ApplicationInsights" Version="1.2.0" />
30+
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
31+
1832
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="6.0.0" />
1933
<PackageReference Include="System.Data.SqlClient" Version="4.8.6" />
2034
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.2.0" />
@@ -23,9 +37,6 @@
2337
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces" Version="4.2.0" />
2438
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.2.0" />
2539
</ItemGroup>
26-
<ItemGroup>
27-
<ProjectReference Include="..\CodeConverter\CodeConverter.csproj" />
28-
</ItemGroup>
2940
<ItemGroup>
3041
<None Update="host.json">
3142
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
@@ -35,4 +46,7 @@
3546
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
3647
</None>
3748
</ItemGroup>
38-
</Project>
49+
<ItemGroup>
50+
<Using Include="System.Threading.ExecutionContext" Alias="ExecutionContext" />
51+
</ItemGroup>
52+
</Project>

Func/GlobalSuppressions.cs

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)