public async Task <ProducerContact> GetProducerContact(contactDetailsType contactDetails) { var countryName = GetCountryName(contactDetails.address.country); var country = await dataAccess.GetCountry(countryName); ProducerAddress address = new ProducerAddress( contactDetails.address.primaryName, contactDetails.address.secondaryName, contactDetails.address.streetName, contactDetails.address.town, contactDetails.address.locality, contactDetails.address.administrativeArea, country, contactDetails.address.Item); ProducerContact contact = new ProducerContact( contactDetails.title, contactDetails.forename, contactDetails.surname, contactDetails.phoneLandLine, contactDetails.phoneMobile, contactDetails.fax, contactDetails.email, address); return(contact); }
public async Task <ProducerBusiness> SetProducerBusiness(producerBusinessType producerBusiness) { object item = producerBusiness.Item; ProducerContact correspondentForNoticeContact = null; if (producerBusiness.correspondentForNotices.contactDetails != null) { correspondentForNoticeContact = await GetProducerContact(producerBusiness.correspondentForNotices.contactDetails); } Company company = null; Partnership partnership = null; if (item is companyType) { companyType companyitem = (companyType)item; ProducerContact contact = await GetProducerContact(companyitem.registeredOffice.contactDetails); company = new Company(companyitem.companyName, companyitem.companyNumber, contact); } else if (item is partnershipType) { partnershipType partnershipItem = (partnershipType)item; string partnershipName = partnershipItem.partnershipName; List <string> partnersList = partnershipItem.partnershipList.ToList(); List <Partner> partners = partnersList.Select(name => new Partner(name)).ToList(); ProducerContact contact = await GetProducerContact(partnershipItem.principalPlaceOfBusiness.contactDetails); partnership = new Partnership(partnershipName, contact, partners); } return(new ProducerBusiness(company, partnership, correspondentForNoticeContact)); }
public static Company WithProducerContact(ProducerContact contact) { var builder = new CompanyBuilder(); builder.contact = contact; return(builder.Build()); }
public static Partnership WithPrincipalPlaceOfBusiness(ProducerContact contact) { var builder = new PartnershipBuilder(); builder.principalPlaceOfBusiness = contact; return(builder.Build()); }
public static ProducerBusiness WithCorrespondentForNoticesContact(ProducerContact contact) { var builder = new ProducerBusinessBuilder(); builder.correspondentForNoticesContact = contact; return(builder.Build()); }
private ProducerBusiness CreatePartnershipBusiness() { var producerAddress = new ProducerAddress("PrimaryName", "SecondaryName", "Street", "Town", "Locality", "AdministrativeArea", new Country(A.Dummy <Guid>(), "TestCountry"), "PostCode"); var producerContact = new ProducerContact( "Title", "Forename", "Surname", "123456", "1235467", "12345678", "[email protected]", producerAddress); return(new ProducerBusiness(partnership: new Partnership("TestPartnership", producerContact, new List <Partner> { }))); }
public void Producer_SetProducerPartnershipCountry_Returns_RegOfficeOrPPoBCountry() { // Arrange Scheme scheme = new Scheme( A.Dummy <Guid>()); MemberUpload memberUpload = new MemberUpload( A.Dummy <Guid>(), A.Dummy <string>(), A.Dummy <List <MemberUploadError> >(), A.Dummy <decimal>(), 2019, scheme, A.Dummy <string>(), A.Dummy <string>()); RegisteredProducer registeredProducer = new RegisteredProducer( "WEE/AA1111AA", 2019, scheme); var producerAddress = new ProducerAddress("PrimaryName", "SecondaryName", "Street", "Town", "Locality", "AdministrativeArea", new Country(A.Dummy <Guid>(), "SPAIN"), "PostCode"); var producerContact = new ProducerContact( "Title", "Forename", "Surname", "123456", "1235467", "12345678", "[email protected]", producerAddress); var producerBusiness = new ProducerBusiness( partnership: new Partnership("TestPartnership", producerContact, new List <Partner> { })); var producer = new ProducerSubmission( registeredProducer, memberUpload, producerBusiness, null, new DateTime(2019, 3, 18), 0, false, null, "Trading Name 1", EEEPlacedOnMarketBandType.Lessthan5TEEEplacedonmarket, SellingTechniqueType.Both, Domain.Obligation.ObligationType.Both, AnnualTurnOverBandType.Greaterthanonemillionpounds, new List <Domain.Producer.BrandName>(), new List <Domain.Producer.SICCode>(), A.Dummy <ChargeBandAmount>(), 0, A.Dummy <StatusType>()); Assert.Equal("SPAIN", producer.RegOfficeOrPBoBCountry); }
public void AuthorisedRepresentative_WithOverseasProducerBasedInUK_ThrowsArgumentException() { // Arrange ProducerContact contact = A.Fake <ProducerContact>(); A.CallTo(() => contact.IsOverseas).Returns(false); // Act Func <AuthorisedRepresentative> action = () => new AuthorisedRepresentative("Name", contact); // Assert Assert.Throws <ArgumentException>(action); }
public void AuthorisedRepresentative_WithOverseasProducerNotBasedInUK_DoesntThrowException() { // Arrange ProducerContact contact = A.Fake <ProducerContact>(); A.CallTo(() => contact.IsOverseas).Returns(true); // Act AuthorisedRepresentative result = new AuthorisedRepresentative("Name", contact); // Assert // No exception thrown. }
public void Equals_AuthorisedRepresentativeWithDifferentName_ReturnsFalse() { ProducerContact contact = A.Fake <ProducerContact>(); A.CallTo(() => contact.IsOverseas).Returns(true); AuthorisedRepresentative authorisedRepresentative1 = new AuthorisedRepresentative( "1", contact); AuthorisedRepresentative authorisedRepresentative2 = new AuthorisedRepresentative( "2", contact); Assert.NotEqual(authorisedRepresentative1, authorisedRepresentative2); }
public void Equals_AuthorisedRepresentativeWithSameDetails_ReturnsTrue() { ProducerContact contact = A.Dummy <ProducerContact>(); A.CallTo(() => contact.IsOverseas).Returns(true); AuthorisedRepresentative authorisedRepresentative1 = new AuthorisedRepresentative( "1", contact); AuthorisedRepresentative authorisedRepresentative2 = new AuthorisedRepresentative( "1", contact); Assert.Equal(authorisedRepresentative1, authorisedRepresentative2); }
public async Task <AuthorisedRepresentative> SetAuthorisedRepresentative(authorisedRepresentativeType representative) { AuthorisedRepresentative result = null; if (representative != null && representative.overseasProducer != null) { ProducerContact contact = null; if (representative.overseasProducer.overseasContact != null) { contact = await GetProducerContact(representative.overseasProducer.overseasContact); } result = new AuthorisedRepresentative(representative.overseasProducer.overseasProducerName, contact); } return(result); }
public void Equals_AuthorisedRepresentativeWithDifferentProducerContact_ReturnsFalse() { ProducerContact contact1 = A.Fake <ProducerContact>(); A.CallTo(() => contact1.IsOverseas).Returns(true); A.CallTo(() => contact1.Equals(A <ProducerContact> ._)).Returns(false); ProducerContact contact2 = A.Fake <ProducerContact>(); A.CallTo(() => contact2.IsOverseas).Returns(true); A.CallTo(() => contact2.Equals(A <ProducerContact> ._)).Returns(false); AuthorisedRepresentative authorisedRepresentative1 = new AuthorisedRepresentative( "1", contact1); AuthorisedRepresentative authorisedRepresentative2 = new AuthorisedRepresentative( "1", contact2); Assert.NotEqual(authorisedRepresentative1, authorisedRepresentative2); }
public async Task <ProducerDetails> HandleAsync(Requests.Admin.GetProducerDetails request) { authorization.EnsureCanAccessInternalArea(); List <ProducerSubmission> producers = await dataAccess.Fetch(request.RegistrationNumber, request.ComplianceYear); if (producers.Count == 0) { string message = string.Format( "No producer has been registered with the registration number \"{0}\" in the {1} compliance year.", request.RegistrationNumber, request.ComplianceYear); throw new ArgumentException(message); } ProducerDetails producerDetails = new ProducerDetails(); producerDetails.CanRemoveProducer = authorization.CheckUserInRole(Roles.InternalAdmin); producerDetails.Schemes = new List <ProducerDetailsScheme>(); var schemeGroups = producers .GroupBy(p => new { p.MemberUpload.Scheme.Id, p.MemberUpload.Scheme.SchemeName }) .OrderBy(p => p.Key.SchemeName); foreach (var schemeGroup in schemeGroups) { DateTime registrationDate = schemeGroup .OrderBy(p => p.UpdatedDate) .First() .UpdatedDate; ProducerSubmission latestDetails = schemeGroup .OrderBy(p => p.UpdatedDate) .Last(); string companyNumber = null; if (latestDetails.ProducerBusiness.CompanyDetails != null) { companyNumber = latestDetails.ProducerBusiness.CompanyDetails.CompanyNumber; } var isAuthorisedRepresentative = "No"; if (latestDetails.AuthorisedRepresentativeId != null && latestDetails.AuthorisedRepresentative.OverseasContactId != null && latestDetails.AuthorisedRepresentative.OverseasContact != null && !string.IsNullOrEmpty(latestDetails.AuthorisedRepresentative.OverseasContact.Email)) { isAuthorisedRepresentative = "Yes"; } ProducerContact producerBusinessContact = null; bool isCompany = false; if (latestDetails.ProducerBusiness.CompanyDetails != null) { producerBusinessContact = latestDetails.ProducerBusiness.CompanyDetails.RegisteredOfficeContact; isCompany = true; } else if (latestDetails.ProducerBusiness.Partnership != null) { producerBusinessContact = latestDetails.ProducerBusiness.Partnership.PrincipalPlaceOfBusiness; } else { throw new MissingFieldException( string.Format("No producer business details could be found for producer:{0}", latestDetails.Id)); } ProducerContactDetails producerBusinessContactDetails = new ProducerContactDetails { ContactName = producerBusinessContact.ContactName, Email = producerBusinessContact.Email, Mobile = producerBusinessContact.Mobile, Telephone = producerBusinessContact.Telephone, Address = producerBusinessContact.Address.ToString() }; ProducerDetailsScheme producerSchemeDetails = new ProducerDetailsScheme() { RegisteredProducerId = latestDetails.RegisteredProducer.Id, SchemeName = schemeGroup.Key.SchemeName, ProducerName = latestDetails.OrganisationName, TradingName = latestDetails.TradingName, RegistrationDate = registrationDate, CompanyNumber = companyNumber, ObligationType = (ObligationType)latestDetails.ObligationType, ChargeBandType = (ChargeBandType)latestDetails.ChargeBandAmount.ChargeBand, CeasedToExist = latestDetails.CeaseToExist, IsAuthorisedRepresentative = isAuthorisedRepresentative, ProducerBusinessContact = producerBusinessContactDetails, IsCompany = isCompany, ProducerEeeDetails = mapper.Map <IEnumerable <ProducerEeeByQuarter>, ProducerEeeDetails>( (await dataAccess.EeeOutputBySchemeAndComplianceYear(request.RegistrationNumber, request.ComplianceYear, schemeGroup.Key.Id))) }; producerDetails.Schemes.Add(producerSchemeDetails); } return(producerDetails); }
public static ProducerBusiness WithCorrespondentForNoticesContact(ProducerContact contact) { var builder = new ProducerBusinessBuilder(); builder.correspondentForNoticesContact = contact; return builder.Build(); }
public override bool Equals(ProducerContact other) { return false; }
public async Task HandleAsync_ForPartnershipProducer_ReturnsPartnershipContactDetails_AndIsCompanyValueFalse() { // Arrange Scheme scheme = new Scheme(A.Dummy <Guid>()); MemberUpload memberUpload = new MemberUpload( A.Dummy <Guid>(), A.Dummy <string>(), A.Dummy <List <MemberUploadError> >(), A.Dummy <decimal>(), 2017, scheme, A.Dummy <string>(), A.Dummy <string>()); RegisteredProducer registeredProducer = new RegisteredProducer( "WEE/AA1111AA", 2017, scheme); var producerAddress = new ProducerAddress("PrimaryName", "SecondaryName", "Street", "Town", "Locality", "AdministrativeArea", new Country(A.Dummy <Guid>(), "TestCountry"), "PostCode"); var producerContact = new ProducerContact( "Title", "Forename", "Surname", "123456", "1235467", "12345678", "[email protected]", producerAddress); var producerBusiness = new ProducerBusiness( partnership: new Partnership("TestPartnership", producerContact, new List <Partner> { })); var producer = new ProducerSubmission( registeredProducer, memberUpload, producerBusiness, null, new DateTime(2015, 1, 1), 0, false, null, "Trading Name 1", EEEPlacedOnMarketBandType.Lessthan5TEEEplacedonmarket, SellingTechniqueType.Both, Domain.Obligation.ObligationType.Both, AnnualTurnOverBandType.Greaterthanonemillionpounds, new List <BrandName>(), new List <SICCode>(), A.Dummy <ChargeBandAmount>(), 0, A.Dummy <StatusType>()); IGetProducerDetailsDataAccess dataAccess = A.Fake <IGetProducerDetailsDataAccess>(); A.CallTo(() => dataAccess.Fetch(A <string> ._, A <int> ._)) .Returns(new List <ProducerSubmission> { producer }); IWeeeAuthorization authorization = A.Fake <IWeeeAuthorization>(); A.CallTo(() => authorization.CheckUserInRole(Roles.InternalAdmin)) .Returns(false); IMapper mapper = A.Fake <IMapper>(); GetProducerDetailsHandler handler = new GetProducerDetailsHandler(dataAccess, authorization, mapper); // Act var result = await handler.HandleAsync(A.Dummy <GetProducerDetails>()); // Assert Assert.NotNull(result); Assert.Single(result.Schemes); ProducerContactDetails businessContact = result.Schemes[0].ProducerBusinessContact; Assert.Equal("PrimaryName, SecondaryName, Street, Town, Locality, AdministrativeArea, PostCode, TestCountry", businessContact.Address); Assert.Equal("Title Forename Surname", businessContact.ContactName); Assert.Equal("123456", businessContact.Telephone); Assert.Equal("1235467", businessContact.Mobile); Assert.Equal("[email protected]", businessContact.Email); Assert.False(result.Schemes[0].IsCompany); }
public async Task<ProducerContact> GetProducerContact(contactDetailsType contactDetails) { var countryName = GetCountryName(contactDetails.address.country); var country = await dataAccess.GetCountry(countryName); ProducerAddress address = new ProducerAddress( contactDetails.address.primaryName, contactDetails.address.secondaryName, contactDetails.address.streetName, contactDetails.address.town, contactDetails.address.locality, contactDetails.address.administrativeArea, country, contactDetails.address.Item); ProducerContact contact = new ProducerContact( contactDetails.title, contactDetails.forename, contactDetails.surname, contactDetails.phoneLandLine, contactDetails.phoneMobile, contactDetails.fax, contactDetails.email, address); return contact; }
public override bool Equals(ProducerContact other) { return(false); }
public static Partnership WithPrincipalPlaceOfBusiness(ProducerContact contact) { var builder = new PartnershipBuilder(); builder.principalPlaceOfBusiness = contact; return builder.Build(); }