コード例 #1
0
        public RuleResult Evaluate(producerType element)
        {
            var result = RuleResult.Pass();

            if (element.status == statusType.I &&
                element.producerBusiness != null)
            {
                var company = element.producerBusiness.Item as companyType;
                if (company != null)
                {
                    var companyNumber = CompanyRegistrationNumberFormatter
                                        .FormatCompanyRegistrationNumber(company.companyNumber);

                    if (!string.IsNullOrEmpty(companyNumber) &&
                        (producerQuerySet.GetLatestCompanyProducers().Any(p =>
                    {
                        var existingCompanyRegistrationNumber = CompanyRegistrationNumberFormatter
                                                                .FormatCompanyRegistrationNumber(p.ProducerBusiness.CompanyDetails.CompanyNumber);

                        return(!string.IsNullOrEmpty(existingCompanyRegistrationNumber) &&
                               existingCompanyRegistrationNumber == companyNumber);
                    })
                         ||
                         migratedProducerQuerySet.GetAllMigratedProducers().Any(m =>
                    {
                        var migratedProducerCompanyNumber = CompanyRegistrationNumberFormatter
                                                            .FormatCompanyRegistrationNumber(m.CompanyNumber);

                        return(!string.IsNullOrEmpty(migratedProducerCompanyNumber) &&
                               migratedProducerCompanyNumber == companyNumber);
                    })))
                    {
                        result = RuleResult.Fail(
                            string.Format(@"We have previously issued a producer registration number (PRN) to {0} with company registration number (CRN) {1}. To register this producer, provide its existing PRN and use the status 'A' in the XML file.",
                                          element.GetProducerName(), company.companyNumber),
                            Core.Shared.ErrorLevel.Error);
                    }
                }
            }

            return(result);
        }
コード例 #2
0
        public void Evaluate_Amendment_ReturnsPass()
        {
            var result = new CompanyAlreadyRegistered(producerQuerySet, migratedProducerQuerySet).Evaluate(new producerType()
            {
                status = statusType.A
            });

            A.CallTo(() => producerQuerySet.GetLatestCompanyProducers()).MustNotHaveHappened();
            A.CallTo(() => migratedProducerQuerySet.GetAllMigratedProducers()).MustNotHaveHappened();

            Assert.True(result.IsValid);
        }