From 9355807c2651c4769eb855707af2bbbdc988367e Mon Sep 17 00:00:00 2001 From: Steve Smith Date: Mon, 28 Nov 2022 16:11:57 -0500 Subject: [PATCH] Upgrade to net7 and fix compile errors (#964) --- DevBetterWeb.sln | 1 + global.json | 2 +- src/DevBetterWeb.Core/DevBetterWeb.Core.csproj | 2 +- .../DevBetterWeb.Infrastructure.csproj | 2 +- ...tifyOnNewMemberCreatedAndProfileUpdatedHandler.cs | 6 ++++-- .../Handlers/NotifyOnNewMemberCreatedHandler.cs | 4 ++-- .../Identity/Data/AppIdentityDbContextSeed.cs | 3 ++- ...AspNetCoreIdentityUserEmailConfirmationService.cs | 2 +- .../AspNetCoreIdentityUserRoleMembershipService.cs | 12 +++++++----- .../Services/DailyCheckPingService.cs | 4 ++-- .../Services/DefaultUserRoleManagerService.cs | 2 ++ .../Services/GraduationCommunicationsService.cs | 2 +- .../MemberSubscriptionEndedAdminEmailService.cs | 2 +- src/DevBetterWeb.Vimeo/DevBetterWeb.Vimeo.csproj | 2 +- src/DevBetterWeb.Web/DevBetterWeb.Web.csproj | 2 +- .../DevBetterWeb.FunctionalTests.csproj | 2 +- tests/DevBetterWeb.Tests/DevBetterWeb.Tests.csproj | 2 +- .../DevBetterWeb.UnitTests.csproj | 2 +- .../DevBetterWeb.Vimeo.Tests.csproj | 2 +- 19 files changed, 32 insertions(+), 24 deletions(-) diff --git a/DevBetterWeb.sln b/DevBetterWeb.sln index 6451cfd55..47eb0d207 100644 --- a/DevBetterWeb.sln +++ b/DevBetterWeb.sln @@ -24,6 +24,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig efscripts.txt = efscripts.txt + global.json = global.json README.md = README.md EndProjectSection EndProject diff --git a/global.json b/global.json index d6c2c37f7..1c7274b72 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "6.0.100", + "version": "7.0.100", "rollForward": "latestFeature" } } \ No newline at end of file diff --git a/src/DevBetterWeb.Core/DevBetterWeb.Core.csproj b/src/DevBetterWeb.Core/DevBetterWeb.Core.csproj index bcb352660..af3897b55 100644 --- a/src/DevBetterWeb.Core/DevBetterWeb.Core.csproj +++ b/src/DevBetterWeb.Core/DevBetterWeb.Core.csproj @@ -1,7 +1,7 @@  - net6.0 + net7.0 DevBetterWeb.Core DevBetterWeb.Core latest diff --git a/src/DevBetterWeb.Infrastructure/DevBetterWeb.Infrastructure.csproj b/src/DevBetterWeb.Infrastructure/DevBetterWeb.Infrastructure.csproj index 4b6c8f6c6..da00d1b57 100644 --- a/src/DevBetterWeb.Infrastructure/DevBetterWeb.Infrastructure.csproj +++ b/src/DevBetterWeb.Infrastructure/DevBetterWeb.Infrastructure.csproj @@ -1,6 +1,6 @@  - net6.0 + net7.0 DevBetterWeb.Infrastructure DevBetterWeb.Infrastructure latest diff --git a/src/DevBetterWeb.Infrastructure/Handlers/NotifyOnNewMemberCreatedAndProfileUpdatedHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/NotifyOnNewMemberCreatedAndProfileUpdatedHandler.cs index 0ddb64e8b..197e2f68a 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/NotifyOnNewMemberCreatedAndProfileUpdatedHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/NotifyOnNewMemberCreatedAndProfileUpdatedHandler.cs @@ -2,6 +2,7 @@ using System.Threading.Tasks; using DevBetterWeb.Core; using DevBetterWeb.Core.Events; +using DevBetterWeb.Core.Exceptions; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.Identity.Data; using Microsoft.AspNetCore.Identity; @@ -25,7 +26,8 @@ public async Task Handle(NewMemberCreatedAndProfileUpdatedEvent domainEvent) var usersInAdminRole = await _userManager.GetUsersInRoleAsync(AuthConstants.Roles.ADMINISTRATORS); var newMemberUser = await _userManager.FindByIdAsync(domainEvent.Member.UserId); - string newMemberEmail = await _userManager.GetEmailAsync(newMemberUser); + if (newMemberUser is null) throw new UserNotFoundException(domainEvent.Member.UserId); + string? newMemberEmail = await _userManager.GetEmailAsync(newMemberUser!); foreach (var emailAddress in usersInAdminRole.Select(user => user.Email)) { @@ -38,7 +40,7 @@ public async Task Handle(NewMemberCreatedAndProfileUpdatedEvent domainEvent) message = message + $"\n {subscription.Dates.StartDate} to {subscription.Dates.EndDate}"; } message = message + $"\nView {domainEvent.Member.FirstName}'s profile at: https://devbetter.com/User/Details/ {domainEvent.Member.UserId}"; - await _emailService.SendEmailAsync(emailAddress, subject, message); + await _emailService.SendEmailAsync(emailAddress!, subject, message); } } } diff --git a/src/DevBetterWeb.Infrastructure/Handlers/NotifyOnNewMemberCreatedHandler.cs b/src/DevBetterWeb.Infrastructure/Handlers/NotifyOnNewMemberCreatedHandler.cs index 10291d609..035933f54 100644 --- a/src/DevBetterWeb.Infrastructure/Handlers/NotifyOnNewMemberCreatedHandler.cs +++ b/src/DevBetterWeb.Infrastructure/Handlers/NotifyOnNewMemberCreatedHandler.cs @@ -27,8 +27,8 @@ public async Task Handle(NewMemberCreatedEvent domainEvent) foreach (var emailAddress in usersInAdminRole.Select(user => user.Email)) { string subject = $"[devBetter] New Member {domainEvent.Member.UserFullName()}"; - string message = $"A new Member with id {domainEvent.Member.UserId} has signed up and added their membership profile."; - await _emailService.SendEmailAsync(emailAddress, subject, message); + string message = $"A new Member with id {domainEvent.Member.UserId} and email address {emailAddress!} has signed up and added their membership profile."; + await _emailService.SendEmailAsync(emailAddress!, subject, message); } } } diff --git a/src/DevBetterWeb.Infrastructure/Identity/Data/AppIdentityDbContextSeed.cs b/src/DevBetterWeb.Infrastructure/Identity/Data/AppIdentityDbContextSeed.cs index 0e34c3700..7d66232d3 100644 --- a/src/DevBetterWeb.Infrastructure/Identity/Data/AppIdentityDbContextSeed.cs +++ b/src/DevBetterWeb.Infrastructure/Identity/Data/AppIdentityDbContextSeed.cs @@ -30,6 +30,7 @@ private static async Task CreateUser(UserManager x.Id == roleId); if (role == null) throw new RoleNotFoundException(roleId); - await _userManager.AddToRoleAsync(user, role.Name); + await _userManager.AddToRoleAsync(user, role.Name!); - var userAddedToRoleEvent = new UserAddedToRoleEvent(user.Email, role.Name); + var userAddedToRoleEvent = new UserAddedToRoleEvent(user!.Email!, role.Name!); await _dispatcher.Dispatch(userAddedToRoleEvent); } public async Task AddUserToRoleByRoleNameAsync(string userId, string roleName) { var role = await _roleManager.FindByNameAsync(roleName); + if (role is null) throw new RoleNotFoundException(roleName); var roleId = role.Id; await AddUserToRoleAsync(userId, roleId); @@ -57,11 +58,11 @@ public async Task RemoveUserFromRoleAsync(string userId, string roleId) if (role == null) throw new RoleNotFoundException(roleId); // check if user is in role? - if (await _userManager.IsInRoleAsync(user, role.Name)) + if (await _userManager.IsInRoleAsync(user, role.Name!)) { - await _userManager.RemoveFromRoleAsync(user, role.Name); + await _userManager.RemoveFromRoleAsync(user, role!.Name!); - var userRemovedFromRoleEvent = new UserRemovedFromRoleEvent(user.Email, role.Name); + var userRemovedFromRoleEvent = new UserRemovedFromRoleEvent(user!.Email!, role.Name!); await _dispatcher.Dispatch(userRemovedFromRoleEvent); } else @@ -73,6 +74,7 @@ public async Task RemoveUserFromRoleAsync(string userId, string roleId) public async Task RemoveUserFromRoleByRoleNameAsync(string userId, string roleName) { var role = await _roleManager.FindByNameAsync(roleName); + if (role is null) throw new RoleNotFoundException(roleName); var roleId = role.Id; await RemoveUserFromRoleAsync(userId, roleId); diff --git a/src/DevBetterWeb.Infrastructure/Services/DailyCheckPingService.cs b/src/DevBetterWeb.Infrastructure/Services/DailyCheckPingService.cs index f3cd4a43b..ca84ee3f2 100644 --- a/src/DevBetterWeb.Infrastructure/Services/DailyCheckPingService.cs +++ b/src/DevBetterWeb.Infrastructure/Services/DailyCheckPingService.cs @@ -117,7 +117,7 @@ public async Task PingAdminsAboutAlmostAlumsIfNeeded(AppendOnlyStringList messag foreach (var user in usersInAdminRole) { - await _emailService.SendEmailAsync(user.Email, "Upcoming DevBetter Graduation", $"Ensure that the following member(s)'s subscriptions are not renewed, as they will graduate to alumni status in {DAYS_BEFORE_GRADUATION_TO_PING} days:\n {listOfMembersToPingAdminsAbout}"); + await _emailService.SendEmailAsync(user.Email!, "Upcoming DevBetter Graduation", $"Ensure that the following member(s)'s subscriptions are not renewed, as they will graduate to alumni status in {DAYS_BEFORE_GRADUATION_TO_PING} days:\n {listOfMembersToPingAdminsAbout}"); } messages.Append($"Admins have been reminded not to renew the subscriptions of the following members about to graduate: {listOfMembersToPingAdminsAbout}"); @@ -202,7 +202,7 @@ private async Task SendAdminPing(List invitations) foreach (var user in usersInAdminRole) { - await _emailService.SendEmailAsync(user.Email, emailSubject, emailBody); + await _emailService.SendEmailAsync(user!.Email!, emailSubject, emailBody); listOfEmailsAdminsWereRemindedAbout += $"{user.Email}\n"; } diff --git a/src/DevBetterWeb.Infrastructure/Services/DefaultUserRoleManagerService.cs b/src/DevBetterWeb.Infrastructure/Services/DefaultUserRoleManagerService.cs index 0a518f477..931d4971d 100644 --- a/src/DevBetterWeb.Infrastructure/Services/DefaultUserRoleManagerService.cs +++ b/src/DevBetterWeb.Infrastructure/Services/DefaultUserRoleManagerService.cs @@ -1,5 +1,6 @@ using System.Threading.Tasks; using DevBetterWeb.Core; +using DevBetterWeb.Core.Exceptions; using DevBetterWeb.Core.Interfaces; using DevBetterWeb.Infrastructure.Identity.Data; using Microsoft.AspNetCore.Identity; @@ -18,6 +19,7 @@ public DefaultUserRoleManagerService(UserManager userManager) public async Task AddUserToRoleAsync(string userId, string roleName) { var user = await _userManager.FindByIdAsync(userId); + if (user is null) throw new UserNotFoundException(userId); await _userManager.AddToRoleAsync(user, Constants.ALUMNI_ROLE_NAME); } } diff --git a/src/DevBetterWeb.Infrastructure/Services/GraduationCommunicationsService.cs b/src/DevBetterWeb.Infrastructure/Services/GraduationCommunicationsService.cs index d96b00785..7bdcee29b 100644 --- a/src/DevBetterWeb.Infrastructure/Services/GraduationCommunicationsService.cs +++ b/src/DevBetterWeb.Infrastructure/Services/GraduationCommunicationsService.cs @@ -34,7 +34,7 @@ public async Task SendGraduationCommunications(Member member) foreach (var emailAddress in usersInAdminRole.Select(user => user.Email)) { - await _emailService.SendEmailAsync(emailAddress, adminSubject, adminText); + await _emailService.SendEmailAsync(emailAddress!, adminSubject, adminText); } } } diff --git a/src/DevBetterWeb.Infrastructure/Services/MemberSubscriptionEndedAdminEmailService.cs b/src/DevBetterWeb.Infrastructure/Services/MemberSubscriptionEndedAdminEmailService.cs index 37b734a50..512eaed03 100644 --- a/src/DevBetterWeb.Infrastructure/Services/MemberSubscriptionEndedAdminEmailService.cs +++ b/src/DevBetterWeb.Infrastructure/Services/MemberSubscriptionEndedAdminEmailService.cs @@ -36,7 +36,7 @@ public async Task SendMemberSubscriptionEndedEmailAsync(string customerEmail, Me foreach (var emailAddress in usersInAdminRole.Select(user => user.Email)) { - await _emailService.SendEmailAsync(emailAddress, subject, message); + await _emailService.SendEmailAsync(emailAddress!, subject, message); } } diff --git a/src/DevBetterWeb.Vimeo/DevBetterWeb.Vimeo.csproj b/src/DevBetterWeb.Vimeo/DevBetterWeb.Vimeo.csproj index c1679e62c..95dafd0cd 100644 --- a/src/DevBetterWeb.Vimeo/DevBetterWeb.Vimeo.csproj +++ b/src/DevBetterWeb.Vimeo/DevBetterWeb.Vimeo.csproj @@ -1,7 +1,7 @@  - net6.0 + net7.0 diff --git a/src/DevBetterWeb.Web/DevBetterWeb.Web.csproj b/src/DevBetterWeb.Web/DevBetterWeb.Web.csproj index 3407d05f7..4be3da8e2 100644 --- a/src/DevBetterWeb.Web/DevBetterWeb.Web.csproj +++ b/src/DevBetterWeb.Web/DevBetterWeb.Web.csproj @@ -1,6 +1,6 @@ - net6.0 + net7.0 true DevBetterWeb.Web Exe diff --git a/tests/DevBetterWeb.FunctionalTests/DevBetterWeb.FunctionalTests.csproj b/tests/DevBetterWeb.FunctionalTests/DevBetterWeb.FunctionalTests.csproj index 6c439b91b..cc3a79f53 100644 --- a/tests/DevBetterWeb.FunctionalTests/DevBetterWeb.FunctionalTests.csproj +++ b/tests/DevBetterWeb.FunctionalTests/DevBetterWeb.FunctionalTests.csproj @@ -1,7 +1,7 @@  - net6.0 + net7.0 false diff --git a/tests/DevBetterWeb.Tests/DevBetterWeb.Tests.csproj b/tests/DevBetterWeb.Tests/DevBetterWeb.Tests.csproj index e81a1cfba..1b2bd82b0 100644 --- a/tests/DevBetterWeb.Tests/DevBetterWeb.Tests.csproj +++ b/tests/DevBetterWeb.Tests/DevBetterWeb.Tests.csproj @@ -1,6 +1,6 @@  - net6.0 + net7.0 true latest enable diff --git a/tests/DevBetterWeb.UnitTests/DevBetterWeb.UnitTests.csproj b/tests/DevBetterWeb.UnitTests/DevBetterWeb.UnitTests.csproj index 3ddb22c92..bcfeea820 100644 --- a/tests/DevBetterWeb.UnitTests/DevBetterWeb.UnitTests.csproj +++ b/tests/DevBetterWeb.UnitTests/DevBetterWeb.UnitTests.csproj @@ -1,6 +1,6 @@ - net6.0 + net7.0 enable false diff --git a/tests/DevBetterWeb.Vimeo.Tests/DevBetterWeb.Vimeo.Tests.csproj b/tests/DevBetterWeb.Vimeo.Tests/DevBetterWeb.Vimeo.Tests.csproj index 0353e7b8b..53e353f9e 100644 --- a/tests/DevBetterWeb.Vimeo.Tests/DevBetterWeb.Vimeo.Tests.csproj +++ b/tests/DevBetterWeb.Vimeo.Tests/DevBetterWeb.Vimeo.Tests.csproj @@ -1,7 +1,7 @@  - net6.0 + net7.0 false