예제 #1
0
        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);
        }