Skip to content

Commit f8ab229

Browse files
feat: Integrate referral service in ExternalLoginModel for user referral ID management
1 parent a40b482 commit f8ab229

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

EssentialCSharp.Web/Areas/Identity/Pages/Account/ExternalLogin.cshtml.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Text;
44
using System.Text.Encodings.Web;
55
using EssentialCSharp.Web.Areas.Identity.Data;
6+
using EssentialCSharp.Web.Services.Referrals;
67
using Microsoft.AspNetCore.Authorization;
78
using Microsoft.AspNetCore.Identity;
89
using Microsoft.AspNetCore.Identity.UI.Services;
@@ -19,7 +20,8 @@ public class ExternalLoginModel(
1920
IUserStore<EssentialCSharpWebUser> userStore,
2021
ILogger<ExternalLoginModel> logger,
2122
IEmailSender emailSender,
22-
IUserEmailStore<EssentialCSharpWebUser> emailStore) : PageModel
23+
IUserEmailStore<EssentialCSharpWebUser> emailStore,
24+
IReferralService referralService) : PageModel
2325
{
2426
private InputModel? _Input;
2527
[BindProperty]
@@ -73,6 +75,12 @@ public async Task<IActionResult> OnGetCallbackAsync(string? returnUrl = null, st
7375
if (result.Succeeded)
7476
{
7577
logger.LogInformation("{Name} logged in with {LoginProvider} provider.", info.Principal.Identity?.Name, info.LoginProvider);
78+
// Ensure referral ID is set for the user
79+
var user = await userManager.FindByLoginAsync(info.LoginProvider, info.ProviderKey);
80+
if (user != null)
81+
{
82+
await referralService.EnsureReferralIdAsync(user);
83+
}
7684
return LocalRedirect(returnUrl);
7785
}
7886
if (result.IsLockedOut)

0 commit comments

Comments
 (0)