Skip to content

Commit 5f96e95

Browse files
Apply suggestions from code review
1 parent d74d604 commit 5f96e95

File tree

4 files changed

+16
-15
lines changed

4 files changed

+16
-15
lines changed

EssentialCSharp.Web/Middleware/ReferralTrackingMiddleware.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
using System.Security.Claims;
22
using System.Web;
33
using EssentialCSharp.Web.Areas.Identity.Data;
4-
using EssentialCSharp.Web.Services;
4+
using EssentialCSharp.Web.Services.Referrals;
55
using Microsoft.AspNetCore.Http.Extensions;
66
using Microsoft.AspNetCore.Identity;
77

88
namespace EssentialCSharp.Web.Middleware;
99

10-
public class ReferralMiddleware
10+
public sealed class ReferralMiddleware
1111
{
1212
private readonly RequestDelegate _Next;
1313

@@ -23,7 +23,7 @@ public async Task InvokeAsync(HttpContext context, IReferralService referralServ
2323
string? referralId = query["rid"];
2424
string? userReferralId;
2525

26-
if (context.User is { } claimsUser && claimsUser.Identity is not null && claimsUser.Identity.IsAuthenticated)
26+
if (context.User is { Identity.IsAuthenticated: true } claimsUser)
2727
{
2828
if (!string.IsNullOrWhiteSpace(referralId))
2929
{
@@ -71,7 +71,7 @@ static async Task TrackReferralAsync(IReferralService referralService, string? r
7171
{
7272
if (!string.IsNullOrWhiteSpace(referralId))
7373
{
74-
_ = await referralService.TrackReferralAsync(referralId, claimsUser);
74+
await referralService.TrackReferralAsync(referralId, claimsUser);
7575
}
7676
}
7777
}

EssentialCSharp.Web/Program.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using EssentialCSharp.Web.Extensions;
55
using EssentialCSharp.Web.Middleware;
66
using EssentialCSharp.Web.Services;
7+
using EssentialCSharp.Web.Services.Referrals;
78
using Mailjet.Client;
89
using Microsoft.AspNetCore.HttpOverrides;
910
using Microsoft.AspNetCore.Identity;
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
using System.Security.Claims;
22

3-
namespace EssentialCSharp.Web.Services;
3+
namespace EssentialCSharp.Web.Services.Referrals;
44

55
public interface IReferralService
66
{
7-
Task<bool> TrackReferralAsync(string referralId, ClaimsPrincipal? user);
7+
Task TrackReferralAsync(string referralId, ClaimsPrincipal? user);
88
Task<string?> GetReferralIdAsync(string userId);
99
}

EssentialCSharp.Web/Services/ReferralService.cs renamed to EssentialCSharp.Web/Services/Referrals/ReferralService.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
using Microsoft.EntityFrameworkCore;
66
using Sqids;
77

8-
namespace EssentialCSharp.Web.Services;
8+
namespace EssentialCSharp.Web.Services.Referrals;
99

1010
public class ReferralService(EssentialCSharpWebContext dbContext, SqidsEncoder<int> sqids, UserManager<EssentialCSharpWebUser> userManager) : IReferralService
1111
{
@@ -25,7 +25,7 @@ public class ReferralService(EssentialCSharpWebContext dbContext, SqidsEncoder<i
2525
}
2626
else
2727
{
28-
Random random = new();
28+
Random random = Random.Shared;
2929
string referrerId = sqids.Encode(random.Next());
3030
user.ReferrerId = referrerId;
3131

@@ -41,38 +41,38 @@ public class ReferralService(EssentialCSharpWebContext dbContext, SqidsEncoder<i
4141
/// </summary>
4242
/// <param name="referralId">The referrer ID to track.</param>
4343
/// <returns>True if the referral was successfully tracked, otherwise false.</returns>
44-
public async Task<bool> TrackReferralAsync(string referralId, ClaimsPrincipal? user)
44+
public async Task TrackReferralAsync(string referralId, ClaimsPrincipal? user)
4545
{
4646
EssentialCSharpWebUser? claimsUser = user is null ? null : await userManager.GetUserAsync(user);
4747
if (claimsUser is null)
4848
{
49-
return await TrackReferral(dbContext, referralId);
49+
await TrackReferral(dbContext, referralId);
5050
}
5151
else
5252
{
5353
// If the user is the referrer, do not track the referral
5454
if (claimsUser.ReferrerId == referralId)
5555
{
56-
return false;
56+
return;
5757
}
5858
else
5959
{
60-
return await TrackReferral(dbContext, referralId);
60+
await TrackReferral(dbContext, referralId);
6161
}
6262
}
6363

64-
static async Task<bool> TrackReferral(EssentialCSharpWebContext dbContext, string referralId)
64+
static async Task TrackReferral(EssentialCSharpWebContext dbContext, string referralId)
6565
{
6666
EssentialCSharpWebUser? dbUser = await dbContext.Users.SingleOrDefaultAsync(u => u.ReferrerId == referralId);
6767
if (dbUser is null)
6868
{
69-
return false;
69+
return;
7070
}
7171
else
7272
{
7373
dbUser.ReferralCount++;
7474
await dbContext.SaveChangesAsync();
75-
return true;
75+
return;
7676
}
7777
}
7878
}

0 commit comments

Comments
 (0)