@@ -943,18 +943,45 @@ FROM CandidateAssessmentSupervisors
943943
944944                if  ( candidateAssessmentSupervisorsId  ==  0 ) 
945945                { 
946+                     //For a candidate assessment, only one supervisor role should be active (Removed = null) 
946947                    var  numberOfAffectedRows  =  connection . Execute ( 
947-                         @"INSERT INTO CandidateAssessmentSupervisors (CandidateAssessmentID, SupervisorDelegateId, SelfAssessmentSupervisorRoleID) 
948-                             VALUES (@candidateAssessmentId, @supervisorDelegateId, @selfAssessmentSupervisorRoleId)" ,  new  {  candidateAssessmentId ,  supervisorDelegateId ,  selfAssessmentSupervisorRoleId  } 
948+                         @"BEGIN TRY 
949+                             BEGIN TRANSACTION 
950+                                 UPDATE CandidateAssessmentSupervisors SET Removed = getUTCDate() WHERE CandidateAssessmentID = @candidateAssessmentId 
951+                                         AND SupervisorDelegateId = @supervisorDelegateId 
952+                                         AND Removed IS NULL 
953+ 
954+                                 INSERT INTO CandidateAssessmentSupervisors (CandidateAssessmentID, SupervisorDelegateId, SelfAssessmentSupervisorRoleID) 
955+                                         VALUES (@candidateAssessmentId, @supervisorDelegateId, @selfAssessmentSupervisorRoleId) 
956+ 
957+                             COMMIT TRANSACTION 
958+                         END TRY 
959+                         BEGIN CATCH 
960+                             ROLLBACK TRANSACTION 
961+                         END CATCH" , 
962+                         new  {  candidateAssessmentId ,  supervisorDelegateId ,  selfAssessmentSupervisorRoleId  } 
949963                    ) ; 
950964                } 
951965                else 
952966                { 
967+                     //For a candidate assessment, only one supervisor role should be active (Removed = null) 
953968                    int  numberOfAffectedRows  =  connection . Execute ( 
954-                                 @"UPDATE CandidateAssessmentSupervisors SET Removed = NULL WHERE CandidateAssessmentID = @candidateAssessmentId 
955-                                 AND SupervisorDelegateId = @supervisorDelegateId 
956-                                 AND SelfAssessmentSupervisorRoleId=@selfAssessmentSupervisorRoleId" , 
957-                                 new  {  candidateAssessmentId ,  supervisorDelegateId ,  selfAssessmentSupervisorRoleId  } ) ; 
969+                         @"BEGIN TRY 
970+                             BEGIN TRANSACTION 
971+                                 UPDATE CandidateAssessmentSupervisors SET Removed = getUTCDate() WHERE CandidateAssessmentID = @candidateAssessmentId 
972+                                         AND SupervisorDelegateId = @supervisorDelegateId 
973+                                         AND Removed IS NULL 
974+ 
975+                                 UPDATE CandidateAssessmentSupervisors SET Removed = NULL WHERE CandidateAssessmentID = @candidateAssessmentId 
976+                                         AND SupervisorDelegateId = @supervisorDelegateId 
977+                                         AND SelfAssessmentSupervisorRoleId = @selfAssessmentSupervisorRoleId 
978+ 
979+                             COMMIT TRANSACTION 
980+                         END TRY 
981+                         BEGIN CATCH 
982+                             ROLLBACK TRANSACTION 
983+                         END CATCH" , 
984+                         new  {  candidateAssessmentId ,  supervisorDelegateId ,  selfAssessmentSupervisorRoleId  } ) ; 
958985                } 
959986            } 
960987            return  candidateAssessmentId ; 
@@ -968,9 +995,6 @@ BEGIN TRANSACTION
968995                        UPDATE CandidateAssessments SET RemovedDate = getUTCDate(), RemovalMethodID = 2 
969996                            WHERE ID = @candidateAssessmentId AND RemovedDate IS NULL 
970997
971-                         UPDATE CandidateAssessmentSupervisors SET Removed = getUTCDate() 
972-                             WHERE CandidateAssessmentID = @candidateAssessmentId AND Removed IS NULL 
973- 
974998                        COMMIT TRANSACTION 
975999                END TRY 
9761000                BEGIN CATCH 
0 commit comments