private Address GetAddressElementValue(string key, FormAnswers formAnswers)
        {
            var addressObject = new Address();

            var uprnKey                   = $"{key}{AddressConstants.SELECT_SUFFIX}";
            var addressDescription        = $"{key}{AddressConstants.DESCRIPTION_SUFFIX}";
            var manualAddressLineOne      = $"{key}-{AddressManualConstants.ADDRESS_LINE_1}";
            var manualAddressLineTwo      = $"{key}-{AddressManualConstants.ADDRESS_LINE_2}";
            var manualAddressLineTown     = $"{key}-{AddressManualConstants.TOWN}";
            var manualAddressLinePostcode = $"{key}-{AddressManualConstants.POSTCODE}";

            var value = formAnswers.Pages.SelectMany(_ => _.Answers)
                        .Where(_ => _.QuestionId.Equals(manualAddressLineOne) || _.QuestionId.Equals(manualAddressLineTwo) ||
                               _.QuestionId.Equals(manualAddressLineTown) || _.QuestionId.Equals(manualAddressLinePostcode) ||
                               _.QuestionId.Equals(uprnKey) || _.QuestionId.Equals(addressDescription))
                        .ToList();

            addressObject.AddressLine1    = value.FirstOrDefault(_ => _.QuestionId.Equals(manualAddressLineOne))?.Response ?? string.Empty;
            addressObject.AddressLine2    = value.FirstOrDefault(_ => _.QuestionId.Equals(manualAddressLineTwo))?.Response ?? string.Empty;
            addressObject.Town            = value.FirstOrDefault(_ => _.QuestionId.Equals(manualAddressLineTown))?.Response ?? string.Empty;
            addressObject.Postcode        = value.FirstOrDefault(_ => _.QuestionId.Equals(manualAddressLinePostcode))?.Response ?? string.Empty;
            addressObject.PlaceRef        = value.FirstOrDefault(_ => _.QuestionId.Equals(uprnKey))?.Response ?? string.Empty;
            addressObject.SelectedAddress = value.FirstOrDefault(_ => _.QuestionId.Equals(addressDescription))?.Response ?? null;

            return(addressObject.IsEmpty() ? null : addressObject);
        }
        private Address GetStreetElementValue(string key, FormAnswers formAnswers)
        {
            var addressObject = new Address();

            var usrnKey           = $"{key}{StreetConstants.SELECT_SUFFIX}";
            var streetDescription = $"{key}{StreetConstants.DESCRIPTION_SUFFIX}";

            var value = formAnswers.Pages.SelectMany(_ => _.Answers)
                        .Where(_ => _.QuestionId.Equals(usrnKey) || _.QuestionId.Equals(streetDescription))
                        .ToList();

            addressObject.PlaceRef        = value.FirstOrDefault(_ => _.QuestionId.Equals(usrnKey))?.Response ?? string.Empty;
            addressObject.SelectedAddress = value.FirstOrDefault(_ => _.QuestionId.Equals(streetDescription))?.Response ?? null;

            return(addressObject.IsEmpty() ? null : addressObject);
        }
        public void SendEmail(Person person, EMailTemplate template, string caseReference, StockportGovUK.NetStandard.Models.Addresses.Address street)
        {
            AbandonedVehicleMailModel submissionDetails = new AbandonedVehicleMailModel();

            _logger.LogInformation(caseReference, street, person);
            submissionDetails.Subject          = "Abandoned Vehicle Report - submission";
            submissionDetails.Reference        = caseReference;
            submissionDetails.StreetInput      = street.SelectedAddress;
            submissionDetails.FirstName        = person.FirstName;
            submissionDetails.LastName         = person.LastName;
            submissionDetails.RecipientAddress = person.Email;

            _mailingServiceGateway.Send(new Mail
            {
                Payload  = JsonConvert.SerializeObject(submissionDetails),
                Template = template
            });
        }