public async Task <EpoRegisteredStandardsResult> GetEpaoRegisteredStandards(
            string endPointAssessorOrganisationId, int pageSize, int pageIndex)
        {
            var epoRegisteredStandardsResult = new EpoRegisteredStandardsResult
            {
                PageOfResults = new List <EPORegisteredStandards>(),
                TotalCount    = 0
            };
            var total = await GetEpaoStandardsCount(endPointAssessorOrganisationId);

            var skip   = (pageIndex - 1) * pageSize;
            var result = await _unitOfWork.Connection.QueryAsync <EPORegisteredStandards>(
                "EPAO_Registered_Standards",
                param : new
            {
                EPAOId = endPointAssessorOrganisationId,
                Skip   = skip,
                Take   = pageSize
            },
                transaction : _unitOfWork.Transaction,
                commandType : CommandType.StoredProcedure);

            var epoRegisteredStandards = result?.ToList();

            if (epoRegisteredStandards == null || !epoRegisteredStandards.Any())
            {
                return(epoRegisteredStandardsResult);
            }
            epoRegisteredStandardsResult.TotalCount    = total;
            epoRegisteredStandardsResult.PageOfResults = epoRegisteredStandards;

            return(epoRegisteredStandardsResult);
        }
        public void SetUp()
        {
            _request = Builder <GetBatchCertificateRequest> .CreateNew()
                       .With(r => r.IncludeLogs = true)
                       .Build();

            _certificateData = Builder <CertificateData> .CreateNew()
                               .With(d => d.LearnerFamilyName = _request.FamilyName)
                               .With(d => d.EpaDetails        = Builder <EpaDetails> .CreateNew()
                                                                .With(e => e.LatestEpaOutcome = "Pass")
                                                                .Build())
                               .Build();

            var certDataJson = JsonConvert.SerializeObject(_certificateData);

            _organisationResponse = Builder <Organisation> .CreateNew().Build();

            _certResponse = Builder <Certificate> .CreateNew()
                            .With(c => c.Status          = "Submitted")
                            .With(c => c.CertificateData = certDataJson)
                            .Build();

            _registeredStandards = Builder <EpoRegisteredStandardsResult> .CreateNew()
                                   .With(s => s.PageOfResults = new List <EPORegisteredStandards> {
                new EPORegisteredStandards {
                    StandardCode = _certResponse.StandardCode
                }
            }).Build();

            _certificateLogs = Builder <CertificateLog> .CreateListOfSize(3).Build();

            _mockCertificateRepository       = new Mock <ICertificateRepository>();
            _mockStandardRepository          = new Mock <IStandardRepository>();
            _mockOrganisationQueryRepository = new Mock <IOrganisationQueryRepository>();

            _mockOrganisationQueryRepository.Setup(oqr => oqr.GetByUkPrn(_request.UkPrn)).ReturnsAsync(_organisationResponse);

            _mockStandardRepository.Setup(sr => sr.GetEpaoRegisteredStandards(_organisationResponse.EndPointAssessorOrganisationId, It.IsAny <int>(), It.IsAny <int>()))
            .ReturnsAsync(_registeredStandards);

            _mockCertificateRepository.Setup(cr => cr.GetCertificate(_request.Uln, _request.StandardCode, _request.FamilyName, _request.IncludeLogs))
            .ReturnsAsync(_certResponse);

            _mockCertificateRepository.Setup(cr => cr.GetCertificateLogsFor(_certResponse.Id))
            .ReturnsAsync(_certificateLogs as List <CertificateLog>);

            _handler = new GetBatchCertificateHandler(_mockCertificateRepository.Object,
                                                      Mock.Of <IContactQueryRepository>(),
                                                      _mockStandardRepository.Object,
                                                      _mockOrganisationQueryRepository.Object,
                                                      Mock.Of <ILogger <GetBatchCertificateHandler> >());
        }