Skip to content

Commit

Permalink
Updated get a trn journey
Browse files Browse the repository at this point in the history
  • Loading branch information
MrKevJoy committed Jan 28, 2025
1 parent 1224c64 commit 231a22d
Show file tree
Hide file tree
Showing 51 changed files with 1,896 additions and 270 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,17 +35,32 @@ public string NotFound(JourneyInstanceId journeyInstanceId) =>
public string SignOut(JourneyInstanceId journeyInstanceId) =>
GetRequiredPathByPage("/SignOut", journeyInstanceId: journeyInstanceId);

public string RequestTrn(JourneyInstanceId journeyInstanceId) =>
GetRequiredPathByPage("/RequestTrn/Index", journeyInstanceId: journeyInstanceId);
public string RequestTrn(JourneyInstanceId journeyInstanceId, string? AccessToken = null) =>
GetRequiredPathByPage("/RequestTrn/Index", routeValues: new { AccessToken }, journeyInstanceId: journeyInstanceId);

public string TakingNpqRequireTrn(JourneyInstanceId journeyInstanceId) =>
GetRequiredPathByPage("/RequestTrn/TakingNpq", journeyInstanceId: journeyInstanceId);

public string RequestTrnNpqCheck(JourneyInstanceId journeyInstanceId) =>
GetRequiredPathByPage("/RequestTrn/NpqCheck", journeyInstanceId: journeyInstanceId);

public string RequestTrnWorkingInSchoolOrEducationalSetting(JourneyInstanceId journeyInstanceId) =>
GetRequiredPathByPage("/RequestTrn/SchoolOrEducationalSetting", journeyInstanceId: journeyInstanceId);

public string RequestTrnNpqApplication(JourneyInstanceId journeyInstanceId, bool? fromCheckAnswers = null) =>
GetRequiredPathByPage("/RequestTrn/NpqApplication", routeValues: new { fromCheckAnswers }, journeyInstanceId: journeyInstanceId);

public string RequestTrnNpqName(JourneyInstanceId journeyInstanceId, bool? fromCheckAnswers = null) =>
GetRequiredPathByPage("/RequestTrn/NpqName", routeValues: new { fromCheckAnswers }, journeyInstanceId: journeyInstanceId);

public string RequestTrnNotEligible(JourneyInstanceId journeyInstanceId) =>
GetRequiredPathByPage("/RequestTrn/NotEligible", journeyInstanceId: journeyInstanceId);

public string RequestTrnEmail(JourneyInstanceId journeyInstanceId, bool? fromCheckAnswers = null) =>
GetRequiredPathByPage("/RequestTrn/Email", routeValues: new { fromCheckAnswers }, journeyInstanceId: journeyInstanceId);
public string RequestTrnWorkEmail(JourneyInstanceId journeyInstanceId, bool? fromCheckAnswers = null) =>
GetRequiredPathByPage("/RequestTrn/WorkEmail", routeValues: new { fromCheckAnswers }, journeyInstanceId: journeyInstanceId);

public string RequestTrnPersonalEmail(JourneyInstanceId journeyInstanceId, bool? fromCheckAnswers = null) =>
GetRequiredPathByPage("/RequestTrn/PersonalEmail", routeValues: new { fromCheckAnswers }, journeyInstanceId: journeyInstanceId);

public string RequestTrnName(JourneyInstanceId journeyInstanceId, bool? fromCheckAnswers = null) =>
GetRequiredPathByPage("/RequestTrn/Name", routeValues: new { fromCheckAnswers }, journeyInstanceId: journeyInstanceId);
Expand All @@ -68,6 +83,9 @@ public string RequestTrnAddress(JourneyInstanceId journeyInstanceId, bool? fromC
public string RequestTrnCheckAnswers(JourneyInstanceId journeyInstanceId) =>
GetRequiredPathByPage("/RequestTrn/CheckAnswers", journeyInstanceId: journeyInstanceId);

public string RequestTrnNpqTrainingProvider(JourneyInstanceId journeyInstanceId, bool? fromCheckAnswers = null) =>
GetRequiredPathByPage("/RequestTrn/NpqTrainingProvider", routeValues: new { fromCheckAnswers }, journeyInstanceId: journeyInstanceId);

public string RequestTrnEmailInUse(JourneyInstanceId journeyInstanceId) =>
GetRequiredPathByPage("/RequestTrn/EmailInUse", journeyInstanceId: journeyInstanceId);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class AddressModel(AuthorizeAccessLinkGenerator linkGenerator) : PageMode

[BindProperty]
[Display(Name = "Address line 1")]
[Required(ErrorMessage = "Enter address line 1")]
[Required(ErrorMessage = "Enter address line 1, typically the building and street")]
[MaxLength(200, ErrorMessage = "Address line 1 must be 200 characters or less")]
public string? AddressLine1 { get; set; }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,27 +14,70 @@
<h1 class="govuk-heading-l">@ViewBag.Title</h1>

<govuk-summary-list>
<govuk-summary-list-row>
<govuk-summary-list-row-key>Email</govuk-summary-list-row-key>
<govuk-summary-list-row-value>@Model.Email</govuk-summary-list-row-value>
<govuk-summary-list-row-actions>
<govuk-summary-list-row-action href="@LinkGenerator.RequestTrnEmail(Model.JourneyInstance!.InstanceId, fromCheckAnswers: true)" visually-hidden-text="email">Change</govuk-summary-list-row-action>
</govuk-summary-list-row-actions>
</govuk-summary-list-row>
@if (!string.IsNullOrEmpty(Model.NpqApplicationId))
{
<govuk-summary-list-row>
<govuk-summary-list-row-key>NPQ application ID</govuk-summary-list-row-key>
<govuk-summary-list-row-value>@Model.NpqApplicationId</govuk-summary-list-row-value>
<govuk-summary-list-row-actions>
<govuk-summary-list-row-action href="@LinkGenerator.RequestTrnNpqApplication(Model.JourneyInstance!.InstanceId, fromCheckAnswers: true)" visually-hidden-text="email">Change</govuk-summary-list-row-action>
</govuk-summary-list-row-actions>
</govuk-summary-list-row>
}
else
{
<govuk-summary-list-row>
<govuk-summary-list-row-key>NPQ</govuk-summary-list-row-key>
<govuk-summary-list-row-value>@Model.NpqName</govuk-summary-list-row-value>
<govuk-summary-list-row-actions>
<govuk-summary-list-row-action href="@LinkGenerator.RequestTrnNpqName(Model.JourneyInstance!.InstanceId, fromCheckAnswers: true)" visually-hidden-text="email">Change</govuk-summary-list-row-action>
</govuk-summary-list-row-actions>
</govuk-summary-list-row>
<govuk-summary-list-row>
<govuk-summary-list-row-key>NPQ Provider</govuk-summary-list-row-key>
<govuk-summary-list-row-value>@Model.NpqProvider</govuk-summary-list-row-value>
<govuk-summary-list-row-actions>
<govuk-summary-list-row-action href="@LinkGenerator.RequestTrnNpqTrainingProvider(Model.JourneyInstance!.InstanceId, fromCheckAnswers: true)" visually-hidden-text="email">Change</govuk-summary-list-row-action>
</govuk-summary-list-row-actions>
</govuk-summary-list-row>
}
@if (!string.IsNullOrEmpty(Model.WorkEmail))
{
<govuk-summary-list-row>
<govuk-summary-list-row-key>Work email</govuk-summary-list-row-key>
<govuk-summary-list-row-value>@Model.WorkEmail</govuk-summary-list-row-value>
<govuk-summary-list-row-actions>
<govuk-summary-list-row-action href="@LinkGenerator.RequestTrnWorkEmail(Model.JourneyInstance!.InstanceId, fromCheckAnswers: true)" visually-hidden-text="email">Change</govuk-summary-list-row-action>
</govuk-summary-list-row-actions>
</govuk-summary-list-row>
}
@if (!string.IsNullOrEmpty(Model.PersonalEmail))
{
<govuk-summary-list-row>
<govuk-summary-list-row-key>Personal email</govuk-summary-list-row-key>
<govuk-summary-list-row-value>@Model.PersonalEmail</govuk-summary-list-row-value>
<govuk-summary-list-row-actions>
<govuk-summary-list-row-action href="@LinkGenerator.RequestTrnPersonalEmail(Model.JourneyInstance!.InstanceId, fromCheckAnswers: true)" visually-hidden-text="email">Change</govuk-summary-list-row-action>
</govuk-summary-list-row-actions>
</govuk-summary-list-row>
}
<govuk-summary-list-row>
<govuk-summary-list-row-key>Name</govuk-summary-list-row-key>
<govuk-summary-list-row-value>@Model.Name</govuk-summary-list-row-value>
<govuk-summary-list-row-actions>
<govuk-summary-list-row-action href="@LinkGenerator.RequestTrnName(Model.JourneyInstance!.InstanceId, fromCheckAnswers: true)" visually-hidden-text="name">Change</govuk-summary-list-row-action>
</govuk-summary-list-row-actions>
</govuk-summary-list-row>
<govuk-summary-list-row>
<govuk-summary-list-row-key>Previous name</govuk-summary-list-row-key>
<govuk-summary-list-row-value>@Model.PreviousName</govuk-summary-list-row-value>
<govuk-summary-list-row-actions>
<govuk-summary-list-row-action href="@LinkGenerator.RequestTrnPreviousName(Model.JourneyInstance!.InstanceId, fromCheckAnswers: true)" visually-hidden-text="previous name">Change</govuk-summary-list-row-action>
</govuk-summary-list-row-actions>
</govuk-summary-list-row>
@if (!string.IsNullOrEmpty(Model.PreviousName))
{
<govuk-summary-list-row>
<govuk-summary-list-row-key>Previous name</govuk-summary-list-row-key>
<govuk-summary-list-row-value>@Model.PreviousName</govuk-summary-list-row-value>
<govuk-summary-list-row-actions>
<govuk-summary-list-row-action href="@LinkGenerator.RequestTrnPreviousName(Model.JourneyInstance!.InstanceId, fromCheckAnswers: true)" visually-hidden-text="previous name">Change</govuk-summary-list-row-action>
</govuk-summary-list-row-actions>
</govuk-summary-list-row>
}
<govuk-summary-list-row>
<govuk-summary-list-row-key>Date of birth</govuk-summary-list-row-key>
<govuk-summary-list-row-value>@Model.DateOfBirth!.Value.ToString("d MMMM yyyy")</govuk-summary-list-row-value>
Expand Down Expand Up @@ -64,7 +107,9 @@
@Model.AddressLine1<br />
@if (!string.IsNullOrWhiteSpace(Model.AddressLine2))
{
@Model.AddressLine2<br />
@Model.AddressLine2

<br />
}
@Model.TownOrCity<br />
@Model.PostalCode<br />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class CheckAnswersModel(AuthorizeAccessLinkGenerator linkGenerator, ICrmQ

public RequestTrnJourneyState? JourneyState { get; set; }

public string? Email { get; set; }
public string? WorkEmail { get; set; }

public string? Name { get; set; }

Expand All @@ -45,10 +45,14 @@ public class CheckAnswersModel(AuthorizeAccessLinkGenerator linkGenerator, ICrmQ
public string? PostalCode { get; set; }

public string? Country { get; set; }
public string? NpqApplicationId { get; set; }
public string? PersonalEmail { get; set; }
public string? NpqName { get; set; }
public string? NpqProvider { get; set; }

public async Task OnGetAsync()
{
Email = JourneyInstance!.State.Email;
WorkEmail = JourneyInstance!.State.WorkEmail;
Name = JourneyInstance!.State.Name;
PreviousName = JourneyInstance!.State.PreviousName;
DateOfBirth = JourneyInstance!.State.DateOfBirth;
Expand All @@ -64,18 +68,28 @@ await fileService.GetFileUrlAsync(JourneyInstance!.State.EvidenceFileId!.Value,
TownOrCity = JourneyInstance!.State.TownOrCity;
PostalCode = JourneyInstance!.State.PostalCode;
Country = JourneyInstance!.State.Country;
NpqApplicationId = JourneyInstance!.State.NpqApplicationId;
PersonalEmail = JourneyInstance!.State.PersonalEmail;
NpqName = JourneyInstance!.State.NpqName;
NpqProvider = JourneyInstance!.State.NpqTrainingProvider;
}

public async Task<IActionResult> OnPostAsync()
{
var state = JourneyInstance!.State;

var description = $"""
Email: {state.Email}
Working In School or Educational Setting: {(state.WorkingInSchoolOrEducationalSetting == true ? "Yes" : "No")}
Personal Email: {state.PersonalEmail}
Work Email: {state.WorkEmail}
Name: {state.Name}
Previous name: {state.PreviousName}
Date of birth: {state.DateOfBirth:dd/MM/yyyy}
National Insurance number: {NationalInsuranceNumberHelper.Normalize(state.NationalInsuranceNumber)}
Registered For NPQ: {(state.HaveRegisteredForAnNpq == true ? "Yes" : "No")}
NPQ application ID: {state.NpqApplicationId}
NPQ name: {state.NpqName}
NPQ training provider: {state.NpqTrainingProvider}
""";
if (state.HasNationalInsuranceNumber == false)
{
Expand Down Expand Up @@ -104,7 +118,7 @@ await crmQueryDispatcher.ExecuteQueryAsync(
EvidenceFileName = JourneyInstance!.State.EvidenceFileName!,
EvidenceFileContent = stream,
EvidenceFileMimeType = evidenceFileMimeType,
EmailAddress = JourneyInstance!.State.Email!
EmailAddress = JourneyInstance!.State.PersonalEmail!
});

await JourneyInstance!.UpdateStateAsync(state => state.HasPendingTrnRequest = true);
Expand All @@ -119,9 +133,18 @@ public override void OnPageHandlerExecuting(PageHandlerExecutingContext context)
{
context.Result = Redirect(linkGenerator.RequestTrnSubmitted(JourneyInstance!.InstanceId));
}
else if (state.Email is null)
else if (state.HaveRegisteredForAnNpq is null && state.NpqApplicationId is null)
{
context.Result = Redirect(linkGenerator.RequestTrnEmail(JourneyInstance.InstanceId));
context.Result = Redirect(linkGenerator.RequestTrnNpqApplication(JourneyInstance.InstanceId));
}
else if (state.WorkEmail is null && state.WorkingInSchoolOrEducationalSetting == true)
{
context.Result = Redirect(linkGenerator.RequestTrnWorkEmail(JourneyInstance.InstanceId));
}
else if (state.PersonalEmail is null)
{
// personal email is required for either WorkingInSchoolOrEducationalSetting being true or false
context.Result = Redirect(linkGenerator.RequestTrnPersonalEmail(JourneyInstance.InstanceId));
}
else if (state.Name is null)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<form action="@LinkGenerator.RequestTrnDateOfBirth(Model.JourneyInstance!.InstanceId, Model.FromCheckAnswers)" method="post">
<govuk-date-input asp-for="DateOfBirth">
<govuk-date-input-fieldset>
<govuk-date-input-fieldset-legend is-page-heading="true" class="govuk-fieldset__legend--l" />
<govuk-date-input-fieldset-legend is-page-heading="false" class="govuk-fieldset__legend--l" />
<govuk-date-input-day autocomplete="bday-day" />
<govuk-date-input-month autocomplete="bday-month" />
<govuk-date-input-year autocomplete="bday-year" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.ComponentModel.DataAnnotations;
using GovUk.Frontend.AspNetCore;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.AspNetCore.Mvc.RazorPages;
Expand All @@ -16,6 +17,7 @@ public class DateOfBirthModel(AuthorizeAccessLinkGenerator linkGenerator, IClock

[BindProperty]
[Display(Name = "What is your date of birth?")]
[DateInput(ErrorMessagePrefix = "Date of birth")]
[Required(ErrorMessage = "Enter your date of birth")]
public DateOnly? DateOfBirth { get; set; }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
}

@section BeforeContent {
<govuk-back-link href="@(LinkGenerator.RequestTrnEmail(Model.JourneyInstance!.InstanceId))" />
<govuk-back-link href="@(LinkGenerator.RequestTrnPersonalEmail(Model.JourneyInstance!.InstanceId))" />
}

<div class="govuk-grid-row">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ public class EmailInUseModel(AuthorizeAccessLinkGenerator linkGenerator) : PageM
public override void OnPageHandlerExecuting(PageHandlerExecutingContext context)
{
var state = JourneyInstance!.State;
if (state.Email is null)
if (state.PersonalEmail is null)
{
context.Result = Redirect(linkGenerator.RequestTrnEmail(JourneyInstance.InstanceId));
context.Result = Redirect(linkGenerator.RequestTrnPersonalEmail(JourneyInstance.InstanceId));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,14 @@
}

<govuk-file-upload asp-for="EvidenceFile" input-accept=".jpeg, .jpg, .pdf, .png">
<govuk-file-upload-label>Upload file</govuk-file-upload-label>
<govuk-file-upload-label>
<div>
Upload File
<p class="govuk-hint">
File must be a JPEG, JPG, PDF or PNG and smaller than 3MB.
</p>
</div>
</govuk-file-upload-label>
</govuk-file-upload>

<govuk-button type="submit">Continue</govuk-button>
Expand Down
Loading

0 comments on commit 231a22d

Please sign in to comment.