Skip to content

Commit 70b2a25

Browse files
committed
ECER-5182: Employment Reference submission piece in repository layer
1 parent 537e47a commit 70b2a25

File tree

3 files changed

+70
-1
lines changed

3 files changed

+70
-1
lines changed

src/ECER.Resources.Documents/ICRA/ICRARepository.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,27 @@ public async Task<string> SetIneligibleForUnitTests(string icraEligibilityId, Ca
114114
context.SaveChanges();
115115
return icraEligibilityId;
116116
}
117+
118+
public async Task<string> SubmitEmploymentReference(string referenceId, ICRAWorkExperienceReferenceSubmissionRequest request, CancellationToken cancellationToken)
119+
{
120+
await Task.CompletedTask;
121+
122+
var workExperienceReference = context.ecer_WorkExperienceRefSet.Single(c => c.ecer_WorkExperienceRefId == Guid.Parse(referenceId));
123+
124+
mapper.Map(request, workExperienceReference);
125+
126+
if (!string.IsNullOrWhiteSpace(request.CountryId) && Guid.TryParse(request.CountryId, out var countryGuid))
127+
{
128+
var ecer_country = context.ecer_CountrySet.SingleOrDefault(c => c.ecer_CountryId == countryGuid);
129+
if (ecer_country != null)
130+
{
131+
context.AddLink(workExperienceReference, ecer_WorkExperienceRef.Fields.ecer_Country, ecer_country);
132+
}
133+
}
134+
135+
workExperienceReference.StatusCode = ecer_WorkExperienceRef_StatusCode.ICRAEligibilitySubmitted;
136+
context.UpdateObject(workExperienceReference);
137+
context.SaveChanges();
138+
return workExperienceReference.ecer_WorkExperienceRefId.ToString()!;
139+
}
117140
}

src/ECER.Resources.Documents/ICRA/ICRARepositoryMapper.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,27 @@ public ICRARepositoryMapper()
8080
.ForMember(d => d.LastName, opts => opts.MapFrom(s => s.ecer_LastName))
8181
.ForMember(d => d.EmailAddress, opts => opts.MapFrom(s => s.ecer_EmailAddress))
8282
.ForMember(d => d.PhoneNumber, opts => opts.MapFrom(s => s.ecer_PhoneNumber));
83+
84+
CreateMap<Applications.ChildcareAgeRanges, ecer_ChildcareAgeRange>()
85+
.ConvertUsingEnumMapping(opts => opts.MapByName(true))
86+
.ReverseMap();
87+
CreateMap<Applications.ReferenceRelationship, ecer_ReferenceRelationships>()
88+
.ConvertUsingEnumMapping(opts => opts.MapByName(true))
89+
.ReverseMap();
90+
91+
CreateMap<ICRAWorkExperienceReferenceSubmissionRequest, ecer_WorkExperienceRef>(MemberList.Source)
92+
.ForMember(d => d.ecer_referencefirstname, opts => opts.MapFrom(s => s.FirstName))
93+
.ForMember(d => d.ecer_referencelastname, opts => opts.MapFrom(s => s.LastName))
94+
.ForMember(d => d.ecer_referenceemailaddress, opts => opts.MapFrom(s => s.EmailAddress))
95+
.ForMember(d => d.ecer_ReferencePhoneNumber, opts => opts.MapFrom(s => s.PhoneNumber))
96+
.ForMember(d => d.ecer_NameofEmployer, opts => opts.MapFrom(s => s.EmployerName))
97+
.ForMember(d => d.ecer_Role, opts => opts.MapFrom(s => s.PositionTitle))
98+
.ForMember(d => d.ecer_StartDate, opts => opts.MapFrom(s => s.StartDate))
99+
.ForMember(d => d.ecer_EndDate, opts => opts.MapFrom(s => s.EndDate))
100+
.ForMember(d => d.ecer_Applicantworkchildren, opts => opts.MapFrom(s => s.WorkedWithChildren.HasValue ? (s.WorkedWithChildren.Value ? ecer_YesNoNull.Yes : ecer_YesNoNull.No) : (ecer_YesNoNull?)null))
101+
.ForMember(d => d.ecer_ChildcareAgeRangeNew, opts => opts.MapFrom(s => s.ChildcareAgeRanges))
102+
.ForMember(d => d.ecer_RelationshiptoApplicant, opts => opts.MapFrom(s => s.ReferenceRelationship))
103+
.ForMember(d => d.ecer_DateSigned, opts => opts.MapFrom(s => s.DateSigned));
83104
}
84105

85106
public static string IdOrEmpty(EntityReference? reference) =>

src/ECER.Resources.Documents/ICRA/IICRARepository.cs

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
namespace ECER.Resources.Documents.ICRA;
1+

2+
using ECER.Resources.Documents.Applications;
3+
4+
namespace ECER.Resources.Documents.ICRA;
25

36
public interface IICRARepository
47
{
@@ -9,6 +12,8 @@ public interface IICRARepository
912
Task<string> Submit(string icraEligibilityId, CancellationToken cancellationToken);
1013

1114
Task<string> SetIneligibleForUnitTests(string icraEligibilityId, CancellationToken cancellationToken);
15+
16+
Task<string> SubmitEmploymentReference(string referenceId, ICRAWorkExperienceReferenceSubmissionRequest request, CancellationToken cancellationToken);
1217
}
1318

1419
public record ICRAQuery
@@ -60,6 +65,24 @@ public record EmploymentReference
6065
public string? PhoneNumber { get; set; }
6166
}
6267

68+
69+
public record ICRAWorkExperienceReferenceSubmissionRequest
70+
{
71+
public string? FirstName { get; set; }
72+
public string? LastName { get; set; }
73+
public string? EmailAddress { get; set; }
74+
public string? PhoneNumber { get; set; }
75+
public string? CountryId { get; set; }
76+
public string? EmployerName { get; set; }
77+
public string? PositionTitle { get; set; }
78+
public DateTime? StartDate { get; set; }
79+
public DateTime? EndDate { get; set; }
80+
public bool? WorkedWithChildren { get; set; }
81+
public IEnumerable<ChildcareAgeRanges>? ChildcareAgeRanges { get; set; }
82+
public ReferenceRelationship? ReferenceRelationship { get; set; }
83+
public DateTime? DateSigned { get; set; }
84+
}
85+
6386
public enum CertificateStatus
6487
{
6588
Valid,
@@ -78,3 +101,5 @@ public enum ICRAStatus
78101
Submitted,
79102
ReadyforAssessment
80103
}
104+
105+

0 commit comments

Comments
 (0)