@@ -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 ) ; 
@@ -349,6 +406,49 @@ INNER JOIN DelegateAccounts da
349406            return  supervisorDelegateDetail ! ; 
350407        } 
351408
409+         public  SupervisorDelegateDetail  GetSupervisorDelegateDetailsByIdWithoutRemoveClause ( int  supervisorDelegateId ,  int  adminId ,  int  delegateUserId ) 
410+         { 
411+             int  delegateId  =  0 ; 
412+             var  supervisorDelegateDetail  =  connection . Query < SupervisorDelegateDetail > ( 
413+                 $@ "SELECT { supervisorDelegateDetailFields } 
414+                     FROM   { supervisorDelegateDetailTables }  
415+                     WHERE (sd.ID = @supervisorDelegateId) AND (sd.DelegateUserID = @delegateUserId OR sd.SupervisorAdminID = @adminId)" ,  new  {  supervisorDelegateId ,  adminId ,  delegateUserId  } 
416+             ) . FirstOrDefault ( ) ; 
417+ 
418+             if  ( supervisorDelegateDetail  !=  null  &&  supervisorDelegateDetail . DelegateID  !=  null ) 
419+             { 
420+                 delegateId  =  ( int ) supervisorDelegateDetail ! . DelegateID ! ; 
421+             } 
422+ 
423+             if  ( delegateUserId  ==  0 ) 
424+             { 
425+                 if  ( supervisorDelegateDetail  !=  null  &&  supervisorDelegateDetail . DelegateUserID  !=  null ) 
426+                 { 
427+                     delegateUserId  =  ( int ) supervisorDelegateDetail ! . DelegateUserID ! ; 
428+                 } 
429+             } 
430+ 
431+             var  delegateDetails  =  connection . Query < SupervisorDelegateDetail > ( 
432+                $@ "SELECT u.ID AS DelegateUserId, u.FirstName, u.LastName, u.ProfessionalRegistrationNumber, u.PrimaryEmail AS CandidateEmail, da.CandidateNumber
433+                     FROM   Users u 
434+                     INNER JOIN DelegateAccounts da 
435+                         ON da.UserID = u.ID 
436+                     WHERE u.ID = @delegateUserId AND u.Active = 1 AND da.Active = 1 AND da.ID = @delegateId" ,  new  {  delegateUserId ,  delegateId  } 
437+             ) . FirstOrDefault ( ) ; 
438+ 
439+             if  ( supervisorDelegateDetail  !=  null  &&  delegateDetails  !=  null ) 
440+             { 
441+                 supervisorDelegateDetail . DelegateUserID  =  delegateUserId ; 
442+                 supervisorDelegateDetail . FirstName  =  delegateDetails . FirstName ; 
443+                 supervisorDelegateDetail . LastName  =  delegateDetails . LastName ; 
444+                 supervisorDelegateDetail . ProfessionalRegistrationNumber  =  delegateDetails . ProfessionalRegistrationNumber ; 
445+                 supervisorDelegateDetail . CandidateEmail  =  delegateDetails . CandidateEmail ; 
446+                 supervisorDelegateDetail . CandidateNumber  =  delegateDetails . CandidateNumber ; 
447+             } 
448+ 
449+             return  supervisorDelegateDetail ! ; 
450+         } 
451+ 
352452        public  SupervisorDelegate  GetSupervisorDelegate ( int  adminId ,  int  delegateUserId ) 
353453        { 
354454            var  supervisorDelegateDetail  =  connection . Query < SupervisorDelegate > ( 
0 commit comments