80 lines
3.7 KiB
C#
80 lines
3.7 KiB
C#
using System.Xml.Linq;
|
|
using CRIF.ACTion.Common;
|
|
using CRIF.ACTion.Common.Builders;
|
|
using CRIF.ACTion.Configuration;
|
|
using Landmark.OLA.Models.Assets;
|
|
|
|
namespace CRIF.ACTion.Loan.Assets
|
|
{
|
|
public class VehicleValuationsSection : CrifRequestSection
|
|
{
|
|
public VehicleValuationsSection(XNamespace sectionNamespace, CrifSettings settings)
|
|
: base(sectionNamespace, "vehicleValuations", settings)
|
|
{
|
|
|
|
}
|
|
|
|
public void AddVehicleValuation(Vehicle vehicle)
|
|
{
|
|
//If there's no vehicle type, it's likely a preapproval and doesn't need this element
|
|
if (vehicle is null || vehicle.Type is null)
|
|
return;
|
|
|
|
var valuationElement = new XElement(CrifNamespaces.Common + "vehicleValuation",
|
|
new XAttribute(CrifNamespaces.Common + "id", vehicle.ValuationId),
|
|
new XAttribute(CrifNamespaces.Common + "valuationType", "Manual"),
|
|
new XAttribute(CrifNamespaces.Common + "make", BuilderUtils.FormatCrifData(vehicle.Make)),
|
|
new XAttribute(CrifNamespaces.Common + "model", BuilderUtils.FormatCrifData(vehicle.Model)),
|
|
new XAttribute(CrifNamespaces.Common + "year", vehicle.Year.Value),
|
|
new XAttribute(CrifNamespaces.Common + "newUsed", vehicle.Condition.Value.ToString()),
|
|
new XAttribute(CrifNamespaces.Common + "estimatedValue", vehicle.InitialEstimatedValue));
|
|
|
|
var valuationValueTypesElement = new XElement(CrifNamespaces.Common + "vehicleValuationValueTypes");
|
|
valuationValueTypesElement.Add(new XElement(CrifNamespaces.Common + "vehicleValuationValueType",
|
|
new XAttribute(CrifNamespaces.Common + "valueType", "Manual"),
|
|
new XAttribute(CrifNamespaces.Common + "baseValue", vehicle.InitialEstimatedValue)
|
|
));
|
|
|
|
valuationElement.Add(valuationValueTypesElement);
|
|
|
|
if (vehicle.Mileage.HasValue)
|
|
{
|
|
valuationElement.Add(new XAttribute(CrifNamespaces.Common + "mileage", vehicle.Mileage.Value));
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(vehicle.Color))
|
|
{
|
|
valuationElement.Add(new XAttribute(CrifNamespaces.Common + "color", BuilderUtils.FormatCrifData(vehicle.Color)));
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(vehicle.Body))
|
|
{
|
|
valuationElement.Add(new XAttribute(CrifNamespaces.Common + "body", BuilderUtils.FormatCrifData(vehicle.Body)));
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(vehicle.Series))
|
|
{
|
|
valuationElement.Add(new XAttribute(CrifNamespaces.Common + "series", BuilderUtils.FormatCrifData(vehicle.Series)));
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(vehicle.Style))
|
|
{
|
|
valuationElement.Add(new XAttribute(CrifNamespaces.Common + "style", BuilderUtils.FormatCrifData(vehicle.Style)));
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(vehicle.Trim))
|
|
{
|
|
valuationElement.Add(new XAttribute(CrifNamespaces.Common + "trim", BuilderUtils.FormatCrifData(vehicle.Trim)));
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(vehicle.VIN))
|
|
{
|
|
if (vehicle.Type != Landmark.OLA.Models.Assets.Enums.VehicleType.PWC)
|
|
{
|
|
valuationElement.Add(new XAttribute(CrifNamespaces.Common + "vin", BuilderUtils.FormatCrifData(vehicle.VIN)));
|
|
}
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(vehicle.StateTitled))
|
|
{
|
|
valuationElement.Add(new XAttribute(CrifNamespaces.Common + "state", BuilderUtils.FormatCrifData(vehicle.StateTitled)));
|
|
}
|
|
|
|
AddContent(valuationElement);
|
|
}
|
|
}
|
|
}
|