Skip to content

Commit b94b362

Browse files
authored
Merge pull request #2682 from TechnologyEnhancedLearning/Develop/Fixes/TD-3942-ViewDelegateControllerRefactor
TD 3942 ViewDelegate Controller Refactor
2 parents e3eaac2 + a299f69 commit b94b362

File tree

4 files changed

+45
-31
lines changed

4 files changed

+45
-31
lines changed

DigitalLearningSolutions.Web.Tests/Controllers/TrackingSystem/Delegates/ViewDelegateControllerTests.cs

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
namespace DigitalLearningSolutions.Web.Tests.Controllers.TrackingSystem.Delegates
22
{
3-
using DigitalLearningSolutions.Data.DataServices;
4-
using DigitalLearningSolutions.Data.DataServices.UserDataService;
53
using DigitalLearningSolutions.Data.Models.User;
6-
74
using DigitalLearningSolutions.Data.Utilities;
85
using DigitalLearningSolutions.Web.Controllers.TrackingSystem.Delegates;
96
using DigitalLearningSolutions.Web.Helpers;
@@ -22,11 +19,9 @@ internal class ViewDelegateControllerTests
2219
{
2320
private IConfiguration config = null!;
2421
private ICourseService courseService = null!;
25-
private IUserDataService userDataService = null!;
2622
private IUserService userService = null!;
2723
private ViewDelegateController viewDelegateController = null!;
2824
private IEmailVerificationService emailVerificationService = null!;
29-
private IEmailVerificationDataService emailVerificationDataService = null!;
3025
private ISelfAssessmentService selfAssessmentService = null!;
3126

3227
[SetUp]
@@ -37,21 +32,18 @@ public void SetUp()
3732
var passwordResetService = A.Fake<IPasswordResetService>();
3833

3934
userService = A.Fake<IUserService>();
40-
userDataService = A.Fake<IUserDataService>();
4135
courseService = A.Fake<ICourseService>();
4236
config = A.Fake<IConfiguration>();
43-
emailVerificationDataService = A.Fake<IEmailVerificationDataService>();
37+
emailVerificationService = A.Fake<IEmailVerificationService>();
4438
selfAssessmentService = A.Fake<ISelfAssessmentService>();
4539

4640
viewDelegateController = new ViewDelegateController(
47-
userDataService,
4841
userService,
4942
centreCustomPromptsHelper,
5043
courseService,
5144
passwordResetService,
5245
config,
5346
emailVerificationService,
54-
emailVerificationDataService,
5547
selfAssessmentService
5648
)
5749
.WithDefaultContext()
@@ -112,7 +104,7 @@ public void Index_returns_not_found_result_if_no_delegate_found_with_given_id()
112104
public void Deactivating_delegate_returns_redirect()
113105
{
114106
// Given
115-
A.CallTo(() => userDataService.GetDelegateUserCardById(1))
107+
A.CallTo(() => userService.GetDelegateUserCardById(1))
116108
.Returns(new DelegateUserCard { CentreId = 2, Id = 1 });
117109

118110
// When
@@ -126,24 +118,24 @@ public void Deactivating_delegate_returns_redirect()
126118
public void Reactivating_delegate_redirects_to_index_page()
127119
{
128120
// Given
129-
A.CallTo(() => userDataService.GetDelegateUserCardById(1))
121+
A.CallTo(() => userService.GetDelegateUserCardById(1))
130122
.Returns(new DelegateUserCard { CentreId = 2, Id = 1, Active = false });
131123

132-
A.CallTo(() => userDataService.ActivateDelegateUser(1)).DoesNothing();
124+
A.CallTo(() => userService.ActivateDelegateUser(1)).DoesNothing();
133125

134126
// When
135127
var result = viewDelegateController.ReactivateDelegate(1);
136128

137129
// Then
138-
A.CallTo(() => userDataService.ActivateDelegateUser(1)).MustHaveHappened();
130+
A.CallTo(() => userService.ActivateDelegateUser(1)).MustHaveHappened();
139131
result.Should().BeRedirectToActionResult();
140132
}
141133

142134
[Test]
143135
public void ReactivateDelegate_nonexistent_delegate_returns_not_found_result()
144136
{
145137
// Given
146-
A.CallTo(() => userDataService.GetDelegateUserCardById(10)).Returns(null);
138+
A.CallTo(() => userService.GetDelegateUserCardById(10)).Returns(null);
147139

148140
// When
149141
var result = viewDelegateController.ReactivateDelegate(10);
@@ -156,7 +148,7 @@ public void ReactivateDelegate_nonexistent_delegate_returns_not_found_result()
156148
public void ReactivateDelegate_delegate_on_wrong_centre_returns_not_found_result()
157149
{
158150
//Given
159-
A.CallTo(() => userDataService.GetDelegateUserCardById(10))
151+
A.CallTo(() => userService.GetDelegateUserCardById(10))
160152
.Returns(new DelegateUserCard { CentreId = 1 });
161153

162154
// When

DigitalLearningSolutions.Web/Controllers/TrackingSystem/Delegates/ViewDelegateController.cs

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
namespace DigitalLearningSolutions.Web.Controllers.TrackingSystem.Delegates
22
{
3-
using DigitalLearningSolutions.Data.DataServices;
4-
using DigitalLearningSolutions.Data.DataServices.UserDataService;
53
using DigitalLearningSolutions.Data.Enums;
64
using DigitalLearningSolutions.Data.Extensions;
75
using DigitalLearningSolutions.Data.Models;
@@ -31,32 +29,26 @@ public class ViewDelegateController : Controller
3129
private readonly ICourseService courseService;
3230
private readonly IPasswordResetService passwordResetService;
3331
private readonly PromptsService promptsService;
34-
private readonly IUserDataService userDataService;
3532
private readonly IUserService userService;
3633
private readonly IEmailVerificationService emailVerificationService;
37-
private readonly IEmailVerificationDataService emailVerificationDataService;
3834
private readonly ISelfAssessmentService selfAssessmentService;
3935

4036
public ViewDelegateController(
41-
IUserDataService userDataService,
4237
IUserService userService,
4338
PromptsService promptsService,
4439
ICourseService courseService,
4540
IPasswordResetService passwordResetService,
4641
IConfiguration config,
4742
IEmailVerificationService emailVerificationService,
48-
IEmailVerificationDataService emailVerificationDataService,
4943
ISelfAssessmentService selfAssessmentService
5044
)
5145
{
52-
this.userDataService = userDataService;
5346
this.userService = userService;
5447
this.promptsService = promptsService;
5548
this.courseService = courseService;
5649
this.passwordResetService = passwordResetService;
5750
this.config = config;
5851
this.emailVerificationService = emailVerificationService;
59-
this.emailVerificationDataService = emailVerificationDataService;
6052
this.selfAssessmentService = selfAssessmentService;
6153
}
6254

@@ -108,7 +100,7 @@ public IActionResult Index(int delegateId, string? callType)
108100
}
109101

110102

111-
EmailVerificationDetails emailVerificationDetails = emailVerificationDataService.GetEmailVerificationDetailsById(delegateEntity.UserAccount.EmailVerificationHashID ?? 0);
103+
EmailVerificationDetails emailVerificationDetails = emailVerificationService.GetEmailVerificationDetailsById(delegateEntity.UserAccount.EmailVerificationHashID ?? 0);
112104

113105
if (delegateEntity.UserAccount.EmailVerified == null
114106
&& delegateEntity.UserAccount.EmailVerificationHashID != null
@@ -125,7 +117,7 @@ public IActionResult Index(int delegateId, string? callType)
125117
[Route("SendWelcomeEmail")]
126118
public IActionResult SendWelcomeEmail(int delegateId)
127119
{
128-
var delegateUser = userDataService.GetDelegateUserCardById(delegateId)!;
120+
var delegateUser = userService.GetDelegateUserCardById(delegateId)!;
129121
var model = new WelcomeEmailSentViewModel(delegateUser);
130122

131123
if (delegateUser.RegistrationConfirmationHash != null)
@@ -149,7 +141,7 @@ public IActionResult SendWelcomeEmail(int delegateId)
149141
[Route("DeactivateDelegate")]
150142
public IActionResult DeactivateDelegate(int delegateId)
151143
{
152-
userDataService.DeactivateDelegateUser(delegateId);
144+
userService.DeactivateDelegateUser(delegateId);
153145

154146
return RedirectToAction("Index", new { delegateId });
155147
}
@@ -159,14 +151,14 @@ public IActionResult DeactivateDelegate(int delegateId)
159151
public IActionResult ReactivateDelegate(int delegateId)
160152
{
161153
var centreId = User.GetCentreIdKnownNotNull();
162-
var delegateUser = userDataService.GetDelegateUserCardById(delegateId);
154+
var delegateUser = userService.GetDelegateUserCardById(delegateId);
163155

164156
if (delegateUser?.CentreId != centreId)
165157
{
166158
return new NotFoundResult();
167159
}
168160

169-
userDataService.ActivateDelegateUser(delegateId);
161+
userService.ActivateDelegateUser(delegateId);
170162

171163
return RedirectToAction("Index", new { delegateId });
172164
}
@@ -175,9 +167,9 @@ public IActionResult ReactivateDelegate(int delegateId)
175167
[Route("DeleteAccount")]
176168
public IActionResult DeleteAccount(int delegateId)
177169
{
178-
var userId = userDataService.GetUserIdFromDelegateId(delegateId);
170+
var userId = userService.GetUserIdFromDelegateId(delegateId);
179171

180-
userDataService.DeleteUserAndAccounts(userId);
172+
userService.DeleteUserAndAccounts(userId);
181173

182174
return RedirectToAction("Index", "AllDelegates");
183175
}

DigitalLearningSolutions.Web/Services/EmailVerificationService.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Collections.Generic;
55
using System.Linq;
66
using DigitalLearningSolutions.Data.DataServices;
7+
using DigitalLearningSolutions.Data.Models;
78
using DigitalLearningSolutions.Data.Models.Email;
89
using DigitalLearningSolutions.Data.Models.User;
910
using DigitalLearningSolutions.Data.Utilities;
@@ -30,6 +31,7 @@ Email GenerateVerificationEmail(
3031
string emailAddress,
3132
string baseUrl
3233
);
34+
EmailVerificationDetails? GetEmailVerificationDetailsById(int id);
3335
}
3436

3537
public class EmailVerificationService : IEmailVerificationService
@@ -126,5 +128,9 @@ string baseUrl
126128

127129
return new Email(emailSubject, body, emailAddress);
128130
}
131+
public EmailVerificationDetails? GetEmailVerificationDetailsById(int id)
132+
{
133+
return emailVerificationDataService.GetEmailVerificationDetailsById(id);
134+
}
129135
}
130136
}

DigitalLearningSolutions.Web/Services/UserService.cs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,11 @@ int userId
128128
string centreSpecificEmail,
129129
string registrationConfirmationHash
130130
);
131-
131+
DelegateUserCard? GetDelegateUserCardById(int id);
132+
void DeactivateDelegateUser(int delegateId);
133+
void ActivateDelegateUser(int delegateId);
134+
int GetUserIdFromDelegateId(int delegateId);
135+
void DeleteUserAndAccounts(int userId);
132136
}
133137

134138
public class UserService : IUserService
@@ -719,5 +723,25 @@ public void SetPrimaryEmailVerified(int userId, string email, DateTime verifiedD
719723
{
720724
return userDataService.GetUserIdAndCentreForCentreEmailRegistrationConfirmationHashPair(centreSpecificEmail, registrationConfirmationHash);
721725
}
726+
public DelegateUserCard? GetDelegateUserCardById(int id)
727+
{
728+
return userDataService.GetDelegateUserCardById(id);
729+
}
730+
public void DeactivateDelegateUser(int delegateId)
731+
{
732+
userDataService.DeactivateDelegateUser(delegateId);
733+
}
734+
public void ActivateDelegateUser(int delegateId)
735+
{
736+
userDataService.ActivateDelegateUser(delegateId);
737+
}
738+
public int GetUserIdFromDelegateId(int delegateId)
739+
{
740+
return userDataService.GetUserIdFromDelegateId(delegateId);
741+
}
742+
public void DeleteUserAndAccounts(int userId)
743+
{
744+
userDataService.DeleteUserAndAccounts(userId);
745+
}
722746
}
723747
}

0 commit comments

Comments
 (0)