private async Task <List <string> > GetFilteredStatusCodes() { var endPointAsessorOrganisationId = _sessionService.Get("EndPointAsessorOrganisationId"); var filteredStandardCodes = (await _organisationsApiClient.GetOrganisationStandardsByOrganisation(endPointAsessorOrganisationId)) .Select(q => q.StandardCode.ToString()).ToList(); return(filteredStandardCodes); }
private async Task <List <string> > GetFilteredStatusCodes(Guid certificateId) { var certificate = await ApiClient.GetCertificate(certificateId); var organisation = await ApiClient.GetOrganisation(certificate.OrganisationId); var filteredStandardCodes = (await _organisationsApiClient .GetOrganisationStandardsByOrganisation(organisation.EndPointAssessorOrganisationId)) .Select(q => q.StandardCode.ToString()).ToList(); return(filteredStandardCodes); }
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); }