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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }