first commit
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
using System.Xml.Linq;
|
||||
using CRIF.ACTion.Common;
|
||||
using CRIF.ACTion.Common.Builders;
|
||||
using CRIF.ACTion.Configuration;
|
||||
using Landmark.OLA.Models;
|
||||
using Landmark.OLA.Models.Addresses;
|
||||
using Landmark.OLA.Models.Residences;
|
||||
using static CRIF.ACTion.Common.ContactMechanisms;
|
||||
|
||||
namespace CRIF.ACTion.Loan.Individuals
|
||||
{
|
||||
public class AddressesSection : CrifRequestSection
|
||||
{
|
||||
public AddressesSection(XNamespace sectionNamespace, CrifSettings settings)
|
||||
: base(sectionNamespace, "addresses", settings)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void AddAddress(IAddress address, CrifContactMechanism contactMechanismType)
|
||||
{
|
||||
ModelValidator.Validate(address);
|
||||
|
||||
var isCurrentAddress = contactMechanismType == CrifContactMechanism.CurrentAddress
|
||||
? true : false;
|
||||
|
||||
var addressElement = new XElement(CrifNamespaces.Common + "address",
|
||||
new XAttribute(CrifNamespaces.Common + "id", address.Id),
|
||||
new XAttribute(CrifNamespaces.Common + "street1", BuilderUtils.FormatCrifData(address.Address1)),
|
||||
new XAttribute(CrifNamespaces.Common + "cityName", BuilderUtils.FormatCrifData(address.City)),
|
||||
new XAttribute(CrifNamespaces.Common + "state", address.State),
|
||||
new XAttribute(CrifNamespaces.Common + "postalCode", address.PostalCode),
|
||||
new XAttribute(CrifNamespaces.Common + "country", address.Country));
|
||||
|
||||
var addressType = address.GetType();
|
||||
if (addressType.Equals(typeof(ResidenceAddress)) || addressType.IsSubclassOf(typeof(ResidenceAddress)))
|
||||
{
|
||||
var residence = (ResidenceAddress)address;
|
||||
|
||||
addressElement.Add(
|
||||
new XAttribute(CrifNamespaces.Common + "isCurrentResFL", isCurrentAddress),
|
||||
new XAttribute(CrifNamespaces.Common + "monthsResided", residence.MonthsResided));
|
||||
|
||||
var typeCode = CrifResidenceType.GetCrifResidenceTypeCode(residence.ResidenceType.Value);
|
||||
|
||||
if (typeCode != null)
|
||||
{
|
||||
var residenceTypeElement = new XElement(CrifNamespaces.Common + "residenceType",
|
||||
new XAttribute(CrifNamespaces.Common + "CD", typeCode));
|
||||
|
||||
addressElement.Add(residenceTypeElement);
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(address.Address2))
|
||||
{
|
||||
addressElement.Add(new XAttribute(CrifNamespaces.Common + "street2", BuilderUtils.FormatCrifData(address.Address2)));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(address.PostalCodeExt))
|
||||
{
|
||||
addressElement.Add(new XAttribute(CrifNamespaces.Common + "zipExt", address.PostalCodeExt));
|
||||
}
|
||||
|
||||
AddContent(addressElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user