Skip to content

Commit 7f15fc0

Browse files
BenjaminAbtgfoidl
andauthored
remove IHttpContextAccessor (#33)
* remove IHttpContextAccessor * add package updates * add year update and run code cleanup * add version bump to 2.0 due to breaking changes * fix test helper project * Update src/MyCSharp.HttpUserAgentParser/HttpContextExtensions.cs Co-authored-by: Günther Foidl <[email protected]> * add PR feedback * remove year from header line Co-authored-by: Günther Foidl <[email protected]>
1 parent cc37016 commit 7f15fc0

File tree

48 files changed

+158
-83
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+158
-83
lines changed

.editorconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ trim_trailing_whitespace = true
1919
# C# files
2020
[*.cs]
2121

22-
file_header_template = Copyright © myCSharp 2020-2021, all rights reserved
22+
file_header_template = Copyright © myCSharp.de - all rights reserved
2323

2424
#### .NET Coding Conventions ####
2525

MyCSharp.HttpUserAgentParser.sln

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio Version 16
4-
VisualStudioVersion = 16.0.31306.274
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.4.32804.182
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{008A2BAB-78B4-42EB-A5D4-DE434438CEF0}"
77
EndProject
@@ -35,6 +35,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "perf", "perf", "{FAAD18A0-E
3535
EndProject
3636
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCSharp.HttpUserAgentParser.Benchmarks", "perf\MyCSharp.HttpUserAgentParser.Benchmarks\MyCSharp.HttpUserAgentParser.Benchmarks.csproj", "{A0D213E9-6408-46D1-AFAF-5096C2F6E027}"
3737
EndProject
38+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCSharp.HttpUserAgentParser.TestHelpers", "tests\MyCSharp.HttpUserAgentParser.TestHelpers\MyCSharp.HttpUserAgentParser.TestHelpers.csproj", "{165EE915-1A4F-4875-90CE-1A2AE1540AE7}"
39+
EndProject
3840
Global
3941
GlobalSection(SolutionConfigurationPlatforms) = preSolution
4042
Debug|Any CPU = Debug|Any CPU
@@ -69,6 +71,10 @@ Global
6971
{A0D213E9-6408-46D1-AFAF-5096C2F6E027}.Debug|Any CPU.Build.0 = Debug|Any CPU
7072
{A0D213E9-6408-46D1-AFAF-5096C2F6E027}.Release|Any CPU.ActiveCfg = Release|Any CPU
7173
{A0D213E9-6408-46D1-AFAF-5096C2F6E027}.Release|Any CPU.Build.0 = Release|Any CPU
74+
{165EE915-1A4F-4875-90CE-1A2AE1540AE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
75+
{165EE915-1A4F-4875-90CE-1A2AE1540AE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
76+
{165EE915-1A4F-4875-90CE-1A2AE1540AE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
77+
{165EE915-1A4F-4875-90CE-1A2AE1540AE7}.Release|Any CPU.Build.0 = Release|Any CPU
7278
EndGlobalSection
7379
GlobalSection(SolutionProperties) = preSolution
7480
HideSolutionNode = FALSE
@@ -81,6 +87,7 @@ Global
8187
{3C8CCD44-F47C-4624-8997-54C42F02E376} = {008A2BAB-78B4-42EB-A5D4-DE434438CEF0}
8288
{39FC1EC2-2AD3-411F-A545-AB6CCB94FB7E} = {F54C9296-4EF7-40F0-9F20-F23A2270ABC9}
8389
{A0D213E9-6408-46D1-AFAF-5096C2F6E027} = {FAAD18A0-E1B8-448D-B611-AFBDA8A89808}
90+
{165EE915-1A4F-4875-90CE-1A2AE1540AE7} = {F54C9296-4EF7-40F0-9F20-F23A2270ABC9}
8491
EndGlobalSection
8592
GlobalSection(ExtensibilityGlobals) = postSolution
8693
SolutionGuid = {E8B0C994-0BF2-4692-9E22-E48B265B2804}

perf/MyCSharp.HttpUserAgentParser.Benchmarks/HttpUserAgentParserBenchmarks.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright © myCSharp 2020-2021, all rights reserved
1+
// Copyright © myCSharp.de - all rights reserved
22

33
using System.Collections.Generic;
44
using System.Linq;

perf/MyCSharp.HttpUserAgentParser.Benchmarks/LibraryComparison/LibraryComparisonBenchmarks.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright © myCSharp 2020-2021, all rights reserved
1+
// Copyright © myCSharp.de - all rights reserved
22

33
using System.Collections.Generic;
44
using BenchmarkDotNet.Attributes;

perf/MyCSharp.HttpUserAgentParser.Benchmarks/MyCSharp.HttpUserAgentParser.Benchmarks.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
</PropertyGroup>
1616

1717
<ItemGroup>
18-
<PackageReference Include="BenchmarkDotNet" Version="0.13.1" />
19-
<PackageReference Include="BenchmarkDotNet.Diagnostics.Windows" Version="0.13.1" Condition="'$(OS)' == 'Windows_NT'" />
18+
<PackageReference Include="BenchmarkDotNet" Version="0.13.2" />
19+
<PackageReference Include="BenchmarkDotNet.Diagnostics.Windows" Version="0.13.2" Condition="'$(OS)' == 'Windows_NT'" />
2020
</ItemGroup>
2121

2222
<ItemGroup>
@@ -26,7 +26,7 @@
2626
<ItemGroup Label="Libraries for comparison">
2727
<PackageReference Include="UAParser" Version="3.1.47" />
2828
<PackageReference Include="DeviceDetector.NET" Version="4.3.0" />
29-
<PackageReference Include="Ng.UserAgentService" Version="1.0.3" />
29+
<PackageReference Include="Ng.UserAgentService" Version="1.1.0" />
3030
</ItemGroup>
3131

3232
</Project>

perf/MyCSharp.HttpUserAgentParser.Benchmarks/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright © myCSharp 2020-2021, all rights reserved
1+
// Copyright © myCSharp.de - all rights reserved
22

33
using System.Reflection;
44
using BenchmarkDotNet.Configs;

src/MyCSharp.HttpUserAgentParser.AspNetCore/DependencyInjection/HttpUserAgentParserDependencyInjectionOptionsExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright © myCSharp 2020-2021, all rights reserved
1+
// Copyright © myCSharp.de - all rights reserved
22

33
using Microsoft.Extensions.DependencyInjection;
44
using MyCSharp.HttpUserAgentParser.DependencyInjection;
Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright © myCSharp 2020-2021, all rights reserved
1+
// Copyright © myCSharp.de - all rights reserved
22

33
using Microsoft.AspNetCore.Http;
44
using MyCSharp.HttpUserAgentParser.Providers;
@@ -13,41 +13,47 @@ public interface IHttpUserAgentParserAccessor
1313
/// <summary>
1414
/// User agent value
1515
/// </summary>
16-
string HttpContextUserAgent { get; }
16+
string? GetHttpContextUserAgent(HttpContext httpContext);
1717

1818
/// <summary>
1919
/// Returns current <see cref="HttpUserAgentInformation"/>
2020
/// </summary>
21-
HttpUserAgentInformation Get();
21+
HttpUserAgentInformation? Get(HttpContext httpContext);
2222
}
2323

2424
/// <summary>
2525
/// User Agent parser accessor. Implements <see cref="IHttpContextAccessor.HttpContext"/>
2626
/// </summary>
2727
public class HttpUserAgentParserAccessor : IHttpUserAgentParserAccessor
2828
{
29-
private readonly IHttpContextAccessor _httpContextAccessor;
3029
private readonly IHttpUserAgentParserProvider _httpUserAgentParser;
3130

3231
/// <summary>
3332
/// Creates a new instance of <see cref="HttpUserAgentParserAccessor"/>
3433
/// </summary>
35-
public HttpUserAgentParserAccessor(IHttpContextAccessor httpContextAccessor, IHttpUserAgentParserProvider httpUserAgentParser)
34+
public HttpUserAgentParserAccessor(IHttpUserAgentParserProvider httpUserAgentParser)
3635
{
37-
_httpContextAccessor = httpContextAccessor;
3836
_httpUserAgentParser = httpUserAgentParser;
3937
}
4038

4139
/// <summary>
4240
/// User agent of current <see cref="IHttpContextAccessor"/>
4341
/// </summary>
44-
public string HttpContextUserAgent =>
45-
_httpContextAccessor.HttpContext?.Request?.Headers["User-Agent"].ToString()!;
42+
public string? GetHttpContextUserAgent(HttpContext httpContext)
43+
=> httpContext.GetUserAgentString();
4644

4745
/// <summary>
4846
/// Returns current <see cref="HttpUserAgentInformation"/> of current <see cref="IHttpContextAccessor"/>
4947
/// </summary>
50-
public HttpUserAgentInformation Get()
51-
=> _httpUserAgentParser.Parse(this.HttpContextUserAgent);
48+
public HttpUserAgentInformation? Get(HttpContext httpContext)
49+
{
50+
string? httpUserAgent = GetHttpContextUserAgent(httpContext);
51+
if (string.IsNullOrEmpty(httpUserAgent))
52+
{
53+
return null;
54+
}
55+
56+
return _httpUserAgentParser.Parse(httpUserAgent);
57+
}
5258
}
5359
}

src/MyCSharp.HttpUserAgentParser.MemoryCache/DependencyInjection/HttpUserAgentParserMemoryCacheServiceCollectionExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright © myCSharp 2020-2021, all rights reserved
1+
// Copyright © myCSharp.de - all rights reserved
22

33
using System;
44
using Microsoft.Extensions.DependencyInjection;

src/MyCSharp.HttpUserAgentParser.MemoryCache/HttpUserAgentParserMemoryCachedProvider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright © myCSharp 2020-2021, all rights reserved
1+
// Copyright © myCSharp.de - all rights reserved
22

33
using System;
44
using Microsoft.Extensions.Caching.Memory;
@@ -9,7 +9,7 @@ namespace MyCSharp.HttpUserAgentParser.MemoryCache
99
/// <inheritdoc/>
1010
public class HttpUserAgentParserMemoryCachedProvider : IHttpUserAgentParserProvider
1111
{
12-
private readonly IMemoryCache _memoryCache;
12+
private readonly Microsoft.Extensions.Caching.Memory.MemoryCache _memoryCache;
1313
private readonly HttpUserAgentParserMemoryCachedProviderOptions _options;
1414

1515
/// <summary>

0 commit comments

Comments
 (0)