Beispiel #1
0
        public RegisteredProducer GetOrCreateRegisteredProducer(Scheme scheme, int complianceYear, string registrationNumber)
        {
            // Try to find a RegisteredProducer that has already been created, otherwise create a new one.
            // A removed producer is not reused.
            RegisteredProducer registeredProducer =
                model.RegisteredProducers.Local
                .SingleOrDefault(rp => rp.ProducerRegistrationNumber == registrationNumber &&
                                 rp.ComplianceYear == complianceYear &&
                                 rp.SchemeId == scheme.Id &&
                                 !rp.Removed);

            if (registeredProducer == null)
            {
                int registeredProducerId = GetNextId();

                registeredProducer = new RegisteredProducer
                {
                    Id                         = IntegerToGuid(registeredProducerId),
                    Scheme                     = scheme,
                    SchemeId                   = scheme.Id,
                    ComplianceYear             = complianceYear,
                    ProducerRegistrationNumber = registrationNumber,
                    CurrentSubmissionId        = null,
                    Removed                    = false
                };
                model.RegisteredProducers.Add(registeredProducer);
            }

            return(registeredProducer);
        }
Beispiel #2
0
        public EeeOutputAmount CreateEeeOutputAmount(RegisteredProducer registeredProducer, string obligationType, int weeeCategory, decimal tonnage)
        {
            var eeeOutputAmount = new EeeOutputAmount();

            eeeOutputAmount.Id                 = IntegerToGuid(GetNextId());
            eeeOutputAmount.ObligationType     = obligationType;
            eeeOutputAmount.WeeeCategory       = weeeCategory;
            eeeOutputAmount.Tonnage            = tonnage;
            eeeOutputAmount.RegisteredProducer = registeredProducer;

            return(eeeOutputAmount);
        }
Beispiel #3
0
        private ProducerSubmission CreateProducerWithEmptyBusiness(MemberUpload memberUpload, string registrationNumber, string obligationType)
        {
            int      businessId = GetNextId();
            Business business   = new Business
            {
                Id = IntegerToGuid(businessId),
            };

            model.Businesses.Add(business);

            int producerSubmissionId = GetNextId();

            RegisteredProducer registeredProducer = GetOrCreateRegisteredProducer(memberUpload.Scheme, memberUpload.ComplianceYear.Value, registrationNumber);

            var chargeBandAmount = FetchChargeBandAmount(ChargeBand.A);
            ProducerSubmission producerSubmission = new ProducerSubmission
            {
                Id = IntegerToGuid(producerSubmissionId),
                RegisteredProducer         = registeredProducer,
                RegisteredProducerId       = registeredProducer.Id,
                MemberUpload               = memberUpload,
                MemberUploadId             = memberUpload.Id,
                TradingName                = string.Format("Producer {0} Trading Name", producerSubmissionId),
                UpdatedDate                = new DateTime(2015, 1, 1, 0, 0, 0),
                Business                   = business,
                ProducerBusinessId         = business.Id,
                AuthorisedRepresentativeId = null,
                ChargeBandAmountId         = chargeBandAmount.Id,
                ChargeThisUpdate           = 0,
                ObligationType             = obligationType,
                Invoiced                   = false
            };

            model.ProducerSubmissions.Add(producerSubmission);

            if (memberUpload.IsSubmitted)
            {
                registeredProducer.CurrentSubmissionId = IntegerToGuid(producerSubmissionId);
                registeredProducer.CurrentSubmission   = producerSubmission;
            }

            return(producerSubmission);
        }
        public async Task InsertNonRemovedRegisteredProducer_WithExistingRemovedProducer_DoesntThrowAnException()
        {
            using (DatabaseWrapper wrapper = new DatabaseWrapper())
            {
                // Arrange
                ModelHelper helper = new ModelHelper(wrapper.Model);
                Scheme scheme = helper.CreateScheme();

                RegisteredProducer registeredProducer1 = new RegisteredProducer()
                {
                    Id = new Guid("834635D7-876D-47BD-B3E3-570E481B2C15"),
                    Scheme = scheme,
                    ComplianceYear = 2099,
                    ProducerRegistrationNumber = "WEE/HD6483TF",
                    Removed = true,
                };

                wrapper.Model.RegisteredProducers.Add(registeredProducer1);

                await wrapper.Model.SaveChangesAsync();

                // Act
                RegisteredProducer registeredProducer2 = new RegisteredProducer()
                {
                    Id = new Guid("65C1B132-2573-409C-B18E-E7C3AEC777AF"),
                    Scheme = scheme,
                    ComplianceYear = 2099,
                    ProducerRegistrationNumber = "WEE/HD6483TF",
                    Removed = false,
                };

                wrapper.Model.RegisteredProducers.Add(registeredProducer2);

                await wrapper.Model.SaveChangesAsync();

                // Assert
                // No exception
            }
        }
        public EeeOutputAmount CreateEeeOutputAmount(DataReturnVersion dataReturnVersion, RegisteredProducer registeredProducer, string obligationType, int weeeCategory, decimal tonnage)
        {
            var eeeOutputAmount = CreateEeeOutputAmount(registeredProducer, obligationType, weeeCategory, tonnage);
            AddEeeOutputAmount(dataReturnVersion, eeeOutputAmount);

            return eeeOutputAmount;
        }
        public EeeOutputAmount CreateEeeOutputAmount(RegisteredProducer registeredProducer, string obligationType, int weeeCategory, decimal tonnage)
        {
            var eeeOutputAmount = new EeeOutputAmount();
            eeeOutputAmount.Id = IntegerToGuid(GetNextId());
            eeeOutputAmount.ObligationType = obligationType;
            eeeOutputAmount.WeeeCategory = weeeCategory;
            eeeOutputAmount.Tonnage = tonnage;
            eeeOutputAmount.RegisteredProducer = registeredProducer;

            return eeeOutputAmount;
        }
        public RegisteredProducer GetOrCreateRegisteredProducer(Scheme scheme, int complianceYear, string registrationNumber)
        {
            // Try to find a RegisteredProducer that has already been created, otherwise create a new one.
            // A removed producer is not reused.
            RegisteredProducer registeredProducer =
                model.RegisteredProducers.Local
                .SingleOrDefault(rp => rp.ProducerRegistrationNumber == registrationNumber &&
                                       rp.ComplianceYear == complianceYear &&
                                       rp.SchemeId == scheme.Id &&
                                       !rp.Removed);

            if (registeredProducer == null)
            {
                int registeredProducerId = GetNextId();

                registeredProducer = new RegisteredProducer
                {
                    Id = IntegerToGuid(registeredProducerId),
                    Scheme = scheme,
                    SchemeId = scheme.Id,
                    ComplianceYear = complianceYear,
                    ProducerRegistrationNumber = registrationNumber,
                    CurrentSubmissionId = null,
                    Removed = false
                };
                model.RegisteredProducers.Add(registeredProducer);
            }

            return registeredProducer;
        }
Beispiel #8
0
        public EeeOutputAmount CreateEeeOutputAmount(DataReturnVersion dataReturnVersion, RegisteredProducer registeredProducer, string obligationType, int weeeCategory, decimal tonnage)
        {
            var eeeOutputAmount = CreateEeeOutputAmount(registeredProducer, obligationType, weeeCategory, tonnage);

            AddEeeOutputAmount(dataReturnVersion, eeeOutputAmount);

            return(eeeOutputAmount);
        }