public DebtorNominatedContactSummaryViewModel(DebtorNominatedContactResponse nominatedContact) { if (nominatedContact is null) { throw new ArgumentNullException(nameof(nominatedContact)); } ContactId = nominatedContact.ContactId; RoleId = nominatedContact.RoleId; PointContactRole = nominatedContact.PointContactRole; FullName = nominatedContact.FullName; TelephoneNumber = nominatedContact.TelephoneNumber; EmailAddress = nominatedContact.EmailAddress; NotificationMethod = nominatedContact.NotificationMethod; CommunicationAddress = nominatedContact.CommunicationAddress != null ? new Address { AddressId = nominatedContact.CommunicationAddress.AddressId, AddressLine1 = nominatedContact.CommunicationAddress.AddressLine1, AddressLine2 = nominatedContact.CommunicationAddress.AddressLine2, TownCity = nominatedContact.CommunicationAddress.TownCity, County = nominatedContact.CommunicationAddress.County, Country = nominatedContact.CommunicationAddress.Country, Postcode = nominatedContact.CommunicationAddress.Postcode, } : null; }
public async Task <DebtorNominatedContactResponse> GetNominatedContactAsync(Guid moratoriumId) { var contactRoles = await _client.For <Ntt_contactrole>() .Filter(x => x.ntt_BreathingSpaceMoratoriumid.ntt_breathingspacemoratoriumid == moratoriumId) .Expand(x => x.ntt_ExternalContactid) .FindEntriesAsync(); var contactRole = contactRoles.OrderByDescending(x => x.createdon).FirstOrDefault(); var externalContact = await _client.For <Ntt_externalcontact>() .Key(contactRole.ntt_ExternalContactid.ntt_externalcontactid) .Expand(x => x.ntt_externalcontact_inss_inssaddress) .FindEntryAsync(); var contactAddress = externalContact.ntt_externalcontact_inss_inssaddress .OrderByDescending(x => x.Createdon) .FirstOrDefault(); var model = new DebtorNominatedContactResponse { ContactId = contactRole.ntt_ExternalContactid.ntt_externalcontactid.Value, RoleId = contactRole.ntt_contactroleid.Value, PointContactRole = contactRole.GetMappedPointContactRoleId(_options), FullName = $"{externalContact.ntt_firstname} {externalContact.ntt_lastname}".Trim(), TelephoneNumber = externalContact.ntt_hometelephonenumber, EmailAddress = externalContact.ntt_emailaddress, NotificationMethod = externalContact.GetMappedPreferredChannelId(_options), CommunicationAddress = contactAddress != null ? new AddressResponse { AddressId = contactAddress.inss_inssaddressid.Value, AddressLine1 = contactAddress.inss_addressline1, AddressLine2 = contactAddress.inss_addressline2, TownCity = contactAddress.inss_addressline3, County = contactAddress.inss_addressline4, Country = contactAddress.inss_country, Postcode = contactAddress.inss_postcode, } : null }; return(model); }