public async Task <IActionResult> ChooseStandardForWithdrawal(int?pageIndex) { var contact = await GetUserContact(); var org = await _orgApiClient.GetEpaOrganisationById(contact.OrganisationId?.ToString()); var modelStateSelectedStandardForWithdrawal = int.TryParse( ModelState[nameof(ChooseStandardForWithdrawalViewModel.SelectedStandardForWithdrawal)]?.AttemptedValue, out int result) ? result : (int?)null; var applications = await GetWithdrawalApplications(contact.Id); var standards = await _standardsApiClient.GetEpaoRegisteredStandards(org.OrganisationId, pageIndex ?? 1, 10); var viewModel = new ChooseStandardForWithdrawalViewModel() { SelectedStandardForWithdrawal = ModelState.IsValid ? null : modelStateSelectedStandardForWithdrawal, Standards = standards.Convert(x => new RegisteredStandardsViewModel() { StandardName = x.StandardName, Level = x.Level, ReferenceNumber = x.ReferenceNumber, NumberOfVersions = x.NumberOfVersions, ApplicationId = applications.FirstOrDefault(a => !string.IsNullOrWhiteSpace(a.StandardReference) && a.StandardReference.Equals(x.ReferenceNumber, StringComparison.InvariantCultureIgnoreCase) && a.ApplyData.Apply.Versions == null)?.Id }) }; return(View(viewModel)); }
private async Task <string> ApplicationStandardStatus(ApplicationResponse application, int standardCode) { var validApplicationStatuses = new string[] { ApplicationStatus.InProgress }; var validApplicationSequenceStatuses = new string[] { ApplicationSequenceStatus.Draft }; var applicationData = await _qnaApiClient.GetApplicationData(application.ApplicationId); var org = await _orgApiClient.GetEpaOrganisationById(applicationData.OrganisationReferenceId); var standards = await _orgApiClient.GetOrganisationStandardsByOrganisation(org?.OrganisationId); var standard = standards?.SingleOrDefault(x => x.StandardCode == standardCode); // does the org or the application not have the standard && if (standard == null && application?.ApplyData != null) { var userId = await GetUserId(); var applications = await _apiClient.GetStandardApplications(userId); foreach (var app in applications) { if (app.OrganisationId == org?.Id && app.ApplyData.Apply.StandardCode == standardCode) { if (validApplicationStatuses.Contains(application.ApplicationStatus)) { var sequence = application.ApplyData.Sequences?.FirstOrDefault(seq => seq.IsActive && seq.SequenceNo == ApplyConst.STANDARD_SEQUENCE_NO); if (sequence != null && validApplicationSequenceStatuses.Contains(sequence.Status)) { return(sequence.Status); } } } } } else if ((standard.EffectiveTo == null || standard.EffectiveTo > DateTime.UtcNow) && org.Status == OrganisationStatus.Live) { return(ApplicationStatus.Approved); } return(string.Empty); }
public async Task <IActionResult> ChooseStandardForWithdrawal() { var contact = await GetUserContact(); var org = await _orgApiClient.GetEpaOrganisationById(contact.OrganisationId?.ToString()); var modelStateSelectedStandardForWithdrawal = int.TryParse( ModelState[nameof(ChooseStandardForWithdrawalViewModel.SelectedStandardForWithdrawal)]?.AttemptedValue, out int result) ? result : (int?)null; var viewModel = new ChooseStandardForWithdrawalViewModel() { SelectedStandardForWithdrawal = ModelState.IsValid ? null : modelStateSelectedStandardForWithdrawal, Standards = await _standardsApiClient.GetEpaoRegisteredStandards(org.OrganisationId, 1, int.MaxValue) }; return(View(viewModel)); }
public async Task <IActionResult> Index() { var user = await GetUser(); var organisation = await _organisationApiClient.GetEpaOrganisationById(user?.OrganisationId?.ToString()); if (user is null) { return(RedirectToAction("Index", "Home")); } else if (organisation is null) { return(RedirectToAction("Index", "OrganisationSearch")); } else if (user.Status == ContactStatus.Applying || organisation.Status == OrganisationStatus.Applying) { return(RedirectToAction("Applications", "Application")); } else if (user.EndPointAssessorOrganisationId is null && user.Status == "Invite Pending") { return(RedirectToAction("InvitePending", "Home")); }