@@ -36,6 +36,8 @@ public interface ISupervisorDataService
3636 SelfAssessmentResultSummary ? GetSelfAssessmentResultSummary ( int candidateAssessmentId , int supervisorDelegateId ) ;
3737 IEnumerable < CandidateAssessmentSupervisorVerificationSummary > GetCandidateAssessmentSupervisorVerificationSummaries ( int candidateAssessmentId ) ;
3838 IEnumerable < SupervisorForEnrolDelegate > GetSupervisorForEnrolDelegate ( int CustomisationID , int CentreID ) ;
39+ IEnumerable < SupervisorDelegateDetail > GetSupervisorDelegateDetailsForAdminIdWithoutRemovedClause ( int adminId ) ;
40+ SupervisorDelegateDetail GetSupervisorDelegateDetailsByIdWithoutRemoveClause ( int supervisorDelegateId , int adminId , int delegateUserId ) ;
3941 //UPDATE DATA
4042 bool ConfirmSupervisorDelegateById ( int supervisorDelegateId , int candidateId , int adminId ) ;
4143 bool RemoveSupervisorDelegateById ( int supervisorDelegateId , int delegateUserId , int adminId ) ;
@@ -214,6 +216,61 @@ LEFT OUTER JOIN AdminAccounts AS au2
214216 ) ;
215217 }
216218
219+ public IEnumerable < SupervisorDelegateDetail > GetSupervisorDelegateDetailsForAdminIdWithoutRemovedClause ( int adminId )
220+ {
221+ return connection . Query < SupervisorDelegateDetail > (
222+ $@ "SELECT sd.ID,
223+ sd.SupervisorEmail, sd.SupervisorAdminID, sd.DelegateEmail, sd.DelegateUserID,da.Active,
224+ sd.Added, sd.AddedByDelegate, sd.NotificationSent, sd.Removed, sd.InviteHash,
225+ u.FirstName, u.LastName, u.ProfessionalRegistrationNumber, u.PrimaryEmail AS CandidateEmail,
226+ jg.JobGroupName,
227+ da.Answer1, da.Answer2, da.Answer3, da.Answer4, da.Answer5, da.Answer6, da.CandidateNumber,
228+ cp1.CustomPrompt AS CustomPrompt1, cp2.CustomPrompt AS CustomPrompt2,
229+ cp3.CustomPrompt AS CustomPrompt3, cp4.CustomPrompt AS CustomPrompt4,
230+ cp5.CustomPrompt AS CustomPrompt5, cp6.CustomPrompt AS CustomPrompt6,
231+ COALESCE (au.CentreID, da.CentreID) AS CentreID,
232+ au.Forename + ' ' + au.Surname AS SupervisorName,
233+ (SELECT COUNT(ca.ID) AS Expr1
234+ FROM CandidateAssessments AS ca LEFT JOIN
235+ CandidateAssessmentSupervisors AS cas ON cas.CandidateAssessmentID = ca.ID AND cas.Removed IS NULL AND cas.SupervisorDelegateId = sd.ID INNER JOIN
236+ SelfAssessments AS sa ON sa.ID = ca.SelfAssessmentID
237+ WHERE (ca.RemovedDate IS NULL) AND (ca.DelegateUserID=sd.DelegateUserID) AND (cas.SupervisorDelegateId = sd.ID OR (cas.CandidateAssessmentID IS NULL)
238+ AND ((sa.SupervisorSelfAssessmentReview = 1) OR (sa.SupervisorResultsReview = 1)))) AS CandidateAssessmentCount,
239+ CAST(COALESCE (au2.IsNominatedSupervisor, 0) AS Bit) AS DelegateIsNominatedSupervisor,
240+ CAST(COALESCE (au2.IsSupervisor, 0) AS Bit) AS DelegateIsSupervisor,
241+ da.ID AS Expr1
242+ FROM CustomPrompts AS cp6
243+ RIGHT OUTER JOIN CustomPrompts AS cp5
244+ RIGHT OUTER JOIN DelegateAccounts AS da
245+ RIGHT OUTER JOIN SupervisorDelegates AS sd
246+ INNER JOIN AdminUsers AS au
247+ ON sd.SupervisorAdminID = au.AdminID
248+ INNER JOIN Centres AS ct
249+ ON au.CentreID = ct.CentreID
250+ ON da.CentreID = ct.CentreID
251+ AND da.UserID = sd.DelegateUserID
252+ LEFT OUTER JOIN Users AS u
253+ LEFT OUTER JOIN JobGroups AS jg
254+ ON u.JobGroupID = jg.JobGroupID
255+ ON da.UserID = u.ID
256+ LEFT OUTER JOIN CustomPrompts AS cp1
257+ ON ct.CustomField1PromptID = cp1.CustomPromptID
258+ LEFT OUTER JOIN CustomPrompts AS cp2
259+ ON ct.CustomField2PromptID = cp2.CustomPromptID
260+ LEFT OUTER JOIN CustomPrompts AS cp3
261+ ON ct.CustomField3PromptID = cp3.CustomPromptID
262+ LEFT OUTER JOIN CustomPrompts AS cp4
263+ ON ct.CustomField4PromptID = cp4.CustomPromptID
264+ ON cp5.CustomPromptID = ct.CustomField5PromptID
265+ ON cp6.CustomPromptID = ct.CustomField6PromptID
266+ LEFT OUTER JOIN AdminAccounts AS au2
267+ ON da.UserID = au2.UserID AND da.CentreID = au2.CentreID
268+ WHERE (sd.SupervisorAdminID = @adminId) AND
269+ (u.ID = da.UserID OR sd.DelegateUserID IS NULL)
270+ ORDER BY u.LastName, COALESCE (u.FirstName, sd.DelegateEmail)
271+ " , new { adminId }
272+ ) ;
273+ }
217274 public int AddSuperviseDelegate ( int ? supervisorAdminId , int ? delegateUserId , string delegateEmail , string supervisorEmail , int centreId )
218275 {
219276 var addedByDelegate = ( delegateUserId != null ) ;
@@ -339,6 +396,49 @@ INNER JOIN DelegateAccounts da
339396 return supervisorDelegateDetail ! ;
340397 }
341398
399+ public SupervisorDelegateDetail GetSupervisorDelegateDetailsByIdWithoutRemoveClause ( int supervisorDelegateId , int adminId , int delegateUserId )
400+ {
401+ int delegateId = 0 ;
402+ var supervisorDelegateDetail = connection . Query < SupervisorDelegateDetail > (
403+ $@ "SELECT { supervisorDelegateDetailFields }
404+ FROM { supervisorDelegateDetailTables }
405+ WHERE (sd.ID = @supervisorDelegateId) AND (sd.DelegateUserID = @delegateUserId OR sd.SupervisorAdminID = @adminId)" , new { supervisorDelegateId , adminId , delegateUserId }
406+ ) . FirstOrDefault ( ) ;
407+
408+ if ( supervisorDelegateDetail != null && supervisorDelegateDetail . DelegateID != null )
409+ {
410+ delegateId = ( int ) supervisorDelegateDetail ! . DelegateID ! ;
411+ }
412+
413+ if ( delegateUserId == 0 )
414+ {
415+ if ( supervisorDelegateDetail != null && supervisorDelegateDetail . DelegateUserID != null )
416+ {
417+ delegateUserId = ( int ) supervisorDelegateDetail ! . DelegateUserID ! ;
418+ }
419+ }
420+
421+ var delegateDetails = connection . Query < SupervisorDelegateDetail > (
422+ $@ "SELECT u.ID AS DelegateUserId, u.FirstName, u.LastName, u.ProfessionalRegistrationNumber, u.PrimaryEmail AS CandidateEmail, da.CandidateNumber
423+ FROM Users u
424+ INNER JOIN DelegateAccounts da
425+ ON da.UserID = u.ID
426+ WHERE u.ID = @delegateUserId AND u.Active = 1 AND da.Active = 1 AND da.ID = @delegateId" , new { delegateUserId , delegateId }
427+ ) . FirstOrDefault ( ) ;
428+
429+ if ( supervisorDelegateDetail != null && delegateDetails != null )
430+ {
431+ supervisorDelegateDetail . DelegateUserID = delegateUserId ;
432+ supervisorDelegateDetail . FirstName = delegateDetails . FirstName ;
433+ supervisorDelegateDetail . LastName = delegateDetails . LastName ;
434+ supervisorDelegateDetail . ProfessionalRegistrationNumber = delegateDetails . ProfessionalRegistrationNumber ;
435+ supervisorDelegateDetail . CandidateEmail = delegateDetails . CandidateEmail ;
436+ supervisorDelegateDetail . CandidateNumber = delegateDetails . CandidateNumber ;
437+ }
438+
439+ return supervisorDelegateDetail ! ;
440+ }
441+
342442 public SupervisorDelegate GetSupervisorDelegate ( int adminId , int delegateUserId )
343443 {
344444 var supervisorDelegateDetail = connection . Query < SupervisorDelegate > (
0 commit comments