From f8ab229d33035615a8000a06d42d0f8d60d51e8b Mon Sep 17 00:00:00 2001 From: Benjamin Michaelis Date: Thu, 10 Jul 2025 16:04:27 +0000 Subject: [PATCH] feat: Integrate referral service in ExternalLoginModel for user referral ID management --- .../Identity/Pages/Account/ExternalLogin.cshtml.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/EssentialCSharp.Web/Areas/Identity/Pages/Account/ExternalLogin.cshtml.cs b/EssentialCSharp.Web/Areas/Identity/Pages/Account/ExternalLogin.cshtml.cs index 5f0a575d..0b96777e 100644 --- a/EssentialCSharp.Web/Areas/Identity/Pages/Account/ExternalLogin.cshtml.cs +++ b/EssentialCSharp.Web/Areas/Identity/Pages/Account/ExternalLogin.cshtml.cs @@ -3,6 +3,7 @@ using System.Text; using System.Text.Encodings.Web; using EssentialCSharp.Web.Areas.Identity.Data; +using EssentialCSharp.Web.Services.Referrals; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity.UI.Services; @@ -19,7 +20,8 @@ public class ExternalLoginModel( IUserStore userStore, ILogger logger, IEmailSender emailSender, - IUserEmailStore emailStore) : PageModel + IUserEmailStore emailStore, + IReferralService referralService) : PageModel { private InputModel? _Input; [BindProperty] @@ -73,6 +75,12 @@ public async Task OnGetCallbackAsync(string? returnUrl = null, st if (result.Succeeded) { logger.LogInformation("{Name} logged in with {LoginProvider} provider.", info.Principal.Identity?.Name, info.LoginProvider); + // Ensure referral ID is set for the user + var user = await userManager.FindByLoginAsync(info.LoginProvider, info.ProviderKey); + if (user != null) + { + await referralService.EnsureReferralIdAsync(user); + } return LocalRedirect(returnUrl); } if (result.IsLockedOut)