@@ -55,6 +55,8 @@ public class RegistryPortalWebAppFixture : WebAppFixtureBase
5555 private ecer_PortalInvitation testPortalInvitationWorkExperienceReferenceOptout = null ! ;
5656 private ecer_PortalInvitation testPortalInvitationWorkExperienceReferenceCompleted = null ! ;
5757 private ecer_PortalInvitation testPortalInvitation400HoursTypeWorkExperienceReferenceSubmit = null ! ;
58+ private ecer_PortalInvitation testPortalInvitationICRAWorkExperienceReferenceSubmit = null ! ;
59+ private ecer_PortalInvitation testPortalInvitationICRAWorkExperienceReferenceOptout = null ! ;
5860
5961 private ecer_PreviousName previousName = null ! ;
6062
@@ -81,6 +83,8 @@ public class RegistryPortalWebAppFixture : WebAppFixtureBase
8183 public Guid portalInvitationWorkExperienceReferenceIdCompleted => testPortalInvitationWorkExperienceReferenceCompleted . ecer_PortalInvitationId ?? Guid . Empty ;
8284
8385 public Guid portalInvitation400HoursTypeWorkExperienceReferenceIdSubmit => testPortalInvitation400HoursTypeWorkExperienceReferenceSubmit . ecer_PortalInvitationId ?? Guid . Empty ;
86+ public Guid portalInvitationICRAWorkExperienceReferenceIdSubmit => testPortalInvitationICRAWorkExperienceReferenceSubmit . ecer_PortalInvitationId ?? Guid . Empty ;
87+ public Guid portalInvitationICRAWorkExperienceReferenceIdOptout => testPortalInvitationICRAWorkExperienceReferenceOptout . ecer_PortalInvitationId ?? Guid . Empty ;
8488 public UserIdentity AuthenticatedBcscUserIdentity2 => AuthenticatedBcscUser2 . ecer_contact_ecer_authentication_455 . Select ( a => new UserIdentity ( a . ecer_ExternalID , a . ecer_IdentityProvider ) ) . First ( ) ;
8589 public string AuthenticatedBcscUserId2 => AuthenticatedBcscUser2 . Id . ToString ( ) ;
8690 private ecer_Application inProgressTestApplication2 = null ! ;
@@ -175,6 +179,8 @@ private async Task InitializeDataverseTestData(EcerContext context)
175179 testPortalInvitationWorkExperienceReferenceOptout = GetOrAddPortalInvitation_WorkExperienceReference ( context , AuthenticatedBcscUser , "name5" ) ;
176180 testPortalInvitationWorkExperienceReferenceCompleted = GetOrAddPortalInvitation_WorkExperienceReference ( context , AuthenticatedBcscUser , "name6" ) ;
177181 testPortalInvitation400HoursTypeWorkExperienceReferenceSubmit = GetOrAddPortalInvitation_400HoursTypeWorkExperienceReference ( context , AuthenticatedBcscUser , "name7" ) ;
182+ testPortalInvitationICRAWorkExperienceReferenceSubmit = GetOrAddPortalInvitation_ICRAWorkExperienceReference ( context , AuthenticatedBcscUser , "icra_name1" ) ;
183+ testPortalInvitationICRAWorkExperienceReferenceOptout = GetOrAddPortalInvitation_ICRAWorkExperienceReference ( context , AuthenticatedBcscUser , "icra_name2" ) ;
178184
179185 context . SaveChanges ( ) ;
180186 MarkCertificateAsInactive ( context , testInactiveCertification . Id ) ;
@@ -651,4 +657,54 @@ on p.ecer_WorkExperienceReferenceId.Id equals w.ecer_WorkExperienceRefId
651657 }
652658 return portalInvitation ;
653659 }
660+
661+ private ecer_PortalInvitation GetOrAddPortalInvitation_ICRAWorkExperienceReference ( EcerContext context , Contact registrant , string name )
662+ {
663+ var uniqueName = $ "{ name } _{ TestRunId } ";
664+ var portalInvitation = context . ecer_PortalInvitationSet . FirstOrDefault ( p => p . ecer_Name == uniqueName && p . ecer_Type == ecer_PortalInvitationTypes . WorkExperienceReferenceforICRA ) ;
665+ if ( portalInvitation == null )
666+ {
667+ var existingInvitations = context . ecer_PortalInvitationSet . Where ( p => p . ecer_Name == uniqueName && p . ecer_Type == ecer_PortalInvitationTypes . WorkExperienceReferenceforICRA ) . ToList ( ) ;
668+ foreach ( var inv in existingInvitations )
669+ {
670+ context . DeleteObject ( inv ) ;
671+ }
672+ var wpGuid = Guid . NewGuid ( ) ;
673+ var workRefName = $ "icra_workref_{ uniqueName } ";
674+ var existingWorkRefs = context . ecer_WorkExperienceRefSet . Where ( w => w . ecer_Name == workRefName ) . ToList ( ) ;
675+ foreach ( var wr in existingWorkRefs )
676+ {
677+ context . DeleteObject ( wr ) ;
678+ }
679+ context . SaveChanges ( ) ;
680+ var workexperienceReference = new ecer_WorkExperienceRef
681+ {
682+ Id = wpGuid ,
683+ ecer_WorkExperienceRefId = wpGuid ,
684+ ecer_Name = workRefName ,
685+ ecer_FirstName = "autotest_icra_workref_first" ,
686+ ecer_LastName = "autotest_icra_workref_last" ,
687+ ecer_EmailAddress = "[email protected] " , 688+ } ;
689+
690+ var guid = Guid . NewGuid ( ) ;
691+ portalInvitation = new ecer_PortalInvitation
692+ {
693+ Id = guid ,
694+ ecer_PortalInvitationId = guid ,
695+ ecer_Name = uniqueName ,
696+ ecer_FirstName = "autotest_icra_workref_first" ,
697+ ecer_LastName = "autotest_icra_workref_last" ,
698+ ecer_EmailAddress = "[email protected] " , 699+ StatusCode = ecer_PortalInvitation_StatusCode . Sent ,
700+ ecer_Type = ecer_PortalInvitationTypes . WorkExperienceReferenceforICRA
701+ } ;
702+ context . AddObject ( workexperienceReference ) ;
703+ context . AddObject ( portalInvitation ) ;
704+ var trackedRegistrant = context . ContactSet . First ( c => c . ContactId == registrant . ContactId ) ;
705+ context . AddLink ( portalInvitation , ecer_PortalInvitation . Fields . ecer_portalinvitation_ApplicantId , trackedRegistrant ) ;
706+ context . AddLink ( portalInvitation , ecer_PortalInvitation . Fields . ecer_portalinvitation_WorkExperienceRefId , workexperienceReference ) ;
707+ }
708+ return portalInvitation ;
709+ }
654710}
0 commit comments