From 593cf4fa1c6900742f5e233260c3baf2fd667fae Mon Sep 17 00:00:00 2001 From: AliArmanLMG Date: Sun, 15 Sep 2024 20:16:26 +1000 Subject: [PATCH] TECH-30764 Refactor the solution. Added Unit Test and fixed issues --- .../MyCRM.Lodgement.Common.Tests.csproj | 29 + .../Utilities/LixiPackageSerializerTests.cs | 148 + .../NewLoanApplication.json | 4800 +++++++++++------ .../Models/SampleLodgementInformation.cs | 5 +- ...Serializer.cs => LixiPackageSerializer.cs} | 56 +- .../Services/Client/LodgementClientTests.cs | 5 +- .../Services/Client/PackageSerializerTests.cs | 10 - .../LixiPackage/LixiPackageServiceTests.cs | 131 + samples/MyCRM.Lodgement.Sample.sln | 7 + .../Contracts/PostPackageRequest.cs | 9 + .../Contracts/PostTestPackageRequest.cs | 5 +- .../Contracts/SaveLixiPackageRequest.cs | 2 +- .../Controllers/LixiPackageController.cs | 4 +- .../LodgementSubmissionController.cs | 4 +- .../LodgementValidationController.cs | 4 +- .../Mapping/ContractMapping.cs | 1 + .../MyCRM.Lodgement.Sample.csproj | 1 + samples/MyCRM.Lodgement.Sample/Program.cs | 5 +- .../Services/Client/ILodgementClient.cs | 8 +- .../Services/Client/LodgementClient.cs | 21 +- .../LixiPackage/ILixiPackageService.cs | 6 +- .../LixiPackage/LixiPackageService.cs | 19 +- 22 files changed, 3616 insertions(+), 1664 deletions(-) create mode 100644 samples/MyCRM.Lodgement.Common.Tests/MyCRM.Lodgement.Common.Tests.csproj create mode 100644 samples/MyCRM.Lodgement.Common.Tests/Utilities/LixiPackageSerializerTests.cs rename samples/MyCRM.Lodgement.Core/Utilities/{ObjectSerializer.cs => LixiPackageSerializer.cs} (59%) delete mode 100644 samples/MyCRM.Lodgement.Sample.Tests/Services/Client/PackageSerializerTests.cs create mode 100644 samples/MyCRM.Lodgement.Sample.Tests/Services/LixiPackage/LixiPackageServiceTests.cs create mode 100644 samples/MyCRM.Lodgement.Sample/Contracts/PostPackageRequest.cs diff --git a/samples/MyCRM.Lodgement.Common.Tests/MyCRM.Lodgement.Common.Tests.csproj b/samples/MyCRM.Lodgement.Common.Tests/MyCRM.Lodgement.Common.Tests.csproj new file mode 100644 index 0000000..38c0ef2 --- /dev/null +++ b/samples/MyCRM.Lodgement.Common.Tests/MyCRM.Lodgement.Common.Tests.csproj @@ -0,0 +1,29 @@ + + + + net8.0 + enable + enable + + false + true + + + + + + + + + + + + + + + + + + + + diff --git a/samples/MyCRM.Lodgement.Common.Tests/Utilities/LixiPackageSerializerTests.cs b/samples/MyCRM.Lodgement.Common.Tests/Utilities/LixiPackageSerializerTests.cs new file mode 100644 index 0000000..0d02afa --- /dev/null +++ b/samples/MyCRM.Lodgement.Common.Tests/Utilities/LixiPackageSerializerTests.cs @@ -0,0 +1,148 @@ + +using LMGTech.DotNetLixi; +using LMGTech.DotNetLixi.Models; +using MyCRM.Lodgement.Common.Utilities; + +namespace MyCRM.Lodgement.Common.Tests; + +using Newtonsoft.Json.Linq; +using System; +using System.IO; +using Xunit; + +public class LixiPackageSerializerTests +{ + + + [Fact] + public void Serialize_ShouldSerializeToJson_WhenMediaTypeIsJson_AndCountryIsAustralia() + { + // Arrange + var package = CreateTestPackage(); + + // Act + var result = LixiPackageSerializer.Serialize(package, LixiCountry.Australia, "application/json"); + + // Assert + Assert.NotNull(result); + Assert.Contains("\"@CompanyName\":\"Test Company\"", result); + } + + [Fact] + public void Serialize_ShouldSerializeToXml_WhenMediaTypeIsXml_AndCountryIsAustralia() + { + // Arrange + var package = CreateTestPackage(); + + // Act + var result = LixiPackageSerializer.Serialize(package, LixiCountry.Australia, "application/xml"); + + // Assert + Assert.NotNull(result); + Assert.Contains("CompanyName=\"Test Company\"", result); + } + + + + [Fact] + public void Serialize_ShouldSerializeToXml_WhenMediaTypeIsXml_AndCountryIsNewZealand() + { + // Arrange + var package = CreateTestPackage(); + + // Act + var result = LixiPackageSerializer.Serialize(package, LixiCountry.NewZealand, "application/xml"); + + // Assert + Assert.NotNull(result); + Assert.Contains("CompanyName=\"Test Company\"", result); + } + + [Fact] + public void Serialize_ShouldThrowNotImplementedException_WhenMediaTypeIsUnsupported() + { + // Arrange + var package = CreateTestPackage(); + + // Act & Assert + var ex = Assert.Throws(() => + LixiPackageSerializer.Serialize(package, LixiCountry.Australia, "application/unsupported")); + Assert.Equal("Media Type application/unsupported not supported.", ex.Message); + } + + [Fact] + public void Serialize_ShouldThrowArgumentNullException_WhenPackageIsNull() + { + // Act & Assert + Assert.Throws(() => + LixiPackageSerializer.Serialize(null, LixiCountry.Australia, "application/json")); + } + + [Fact] + public void ObfuscateJson_ShouldObfuscateAllProperties_WhenNoPropertiesToObfuscateSpecified() + { + // Arrange + var package = JObject.FromObject(CreateTestPackage()); + + // Act + var result = LixiPackageSerializer.ObfuscateJson(package); + + // Assert + Assert.NotNull(result); + Assert.DoesNotContain("123456789", result); // BrokerApplicationReferenceNumber should be obfuscated + Assert.DoesNotContain("Test Company", result); // CompanyName should be obfuscated + Assert.DoesNotContain("test@gmail.com", result); // ABN should be obfuscated + Assert.DoesNotContain("0450000111", result); // Phone number should be obfuscated + } + + [Fact] + public void ObfuscateJson_ShouldObfuscateOnlySpecifiedProperties() + { + // Arrange + var package = JObject.FromObject(CreateTestPackage()); + string[] propertiesToObfuscate = { "CompanyName", "UniqueID" }; + + // Act + var result = LixiPackageSerializer.ObfuscateJson(package, propertiesToObfuscate); + + // Assert + Assert.NotNull(result); + Assert.DoesNotContain("LoanScenario-12345", result); // UniqueID should be obfuscated + Assert.DoesNotContain("Test Company", result); // CompanyName should be obfuscated + } + + + private Package CreateTestPackage() + { + return new Package + { + // Populate with test data + Content = new PackageContent + { + Application = new Application + { + SalesChannel = new SalesChannel() + { + Company = new SalesChannelCompany() + { + CompanyName = "Test Company", + BusinessNumber = "123456789" + }, + LoanWriter = new SalesChannelLoanWriter() + { + Contact = new SalesChannelLoanWriterContact() + { + Email = "test@gmail.com", + Mobile = new PhoneType() + { + Number = "0450000111" + } + } + } + }, + UniqueID = "LoanScenario-12345" + } + } + }; + } +} diff --git a/samples/MyCRM.Lodgement.Core/LixiPackageSamples/NewLoanApplication.json b/samples/MyCRM.Lodgement.Core/LixiPackageSamples/NewLoanApplication.json index b70cc6b..77fe585 100644 --- a/samples/MyCRM.Lodgement.Core/LixiPackageSamples/NewLoanApplication.json +++ b/samples/MyCRM.Lodgement.Core/LixiPackageSamples/NewLoanApplication.json @@ -1,1730 +1,3336 @@ { - "ProductionData": false, - "Content": { - "Application": { - "UniqueID": "LoanScenario-5542468-ZVVVNU1", - "Address": [ - { - "AustralianPostCode": "2640", - "AustralianState": "NSW", - "City": "Albury", - "Country": "AU", - "Latitude": -36.0741418, - "Longitude": 146.9101373, - "Suburb": "Albury", - "Type": "Standard", - "UniqueID": "Address_11696101", - "Standard": { - "StreetName": "Thurgoona", - "StreetNumber": "616", - "StreetType": "Street" - } - }, - { - "AustralianPostCode": "6059", - "AustralianState": "WA", - "City": "Dianella", - "Country": "AU", - "Latitude": -31.8891855, - "Longitude": 115.8697586, - "Suburb": "Dianella", - "Type": "Standard", - "UniqueID": "Address_11829994", - "Standard": { - "StreetName": "Booker", - "StreetNumber": "75", - "StreetType": "Street" - } - }, - { - "AustralianPostCode": "3978", - "AustralianState": "VIC", - "City": "clyde north", - "Country": "AU", - "Suburb": "clyde north", - "Type": "Standard", - "UniqueID": "Address_13531793", - "Standard": { - "StreetName": "harrys", - "StreetNumber": "12", - "StreetType": "Avenue" - } + "Attachment": [], + "Content": { + "Application": { + "AccountVariation": null, + "Address": [ + { + "City": "HERITAGE PARK", + "Country": "AU", + "DataSource": null, + "DeliveryPoint": null, + "DXBox": null, + "GNAF_ID": null, + "Latitude": -27.6793627, + "LGAName": null, + "Longitude": 153.0573554, + "NonStandard": null, + "OverseasPostCode": null, + "OverseasState": null, + "POBox": null, + "PostCode": "4118", + "RuralDeliveryNumber": null, + "SequenceNumber": null, + "Standard": { + "BuildingName": null, + "Level": null, + "LevelType": null, + "LotSection": null, + "StreetName": "MUSCAT", + "StreetNumber": "11", + "StreetSuffix": null, + "StreetType": "Court", + "ToStreetNumber": null, + "ToUnitNumber": null, + "Unit": null, + "UnitType": null }, - { - "AustralianPostCode": "4113", - "AustralianState": "QLD", - "City": "Runcorn", - "Country": "AU", - "Latitude": -27.587909, - "Longitude": 153.076485, - "Suburb": "Runcorn", - "Type": "Standard", - "UniqueID": "Address_13627215", - "Standard": { - "StreetName": "Diamond", - "StreetNumber": "8", - "StreetType": "Place", - "Unit": "unit 60" - } - }, - { - "AustralianPostCode": "4113", - "AustralianState": "QLD", - "City": "Runcorn", - "Country": "AU", - "Latitude": -27.587909, - "Longitude": 153.076485, - "Suburb": "Runcorn", - "Type": "Standard", - "UniqueID": "Address_13627292", - "Standard": { - "StreetName": "Diamond", - "StreetNumber": "8", - "StreetType": "Place", - "Unit": "unit 50" - } - }, - { - "AustralianPostCode": "4113", - "AustralianState": "QLD", - "City": "Runcorn", - "Country": "AU", - "Latitude": -27.5888638, - "Longitude": 153.0762382, - "Suburb": "Runcorn", - "Type": "Standard", - "UniqueID": "Address_13627438", - "Standard": { - "StreetName": "Diamond", - "StreetNumber": "20", - "StreetType": "Place" - } - }, - { - "AustralianPostCode": "4113", - "AustralianState": "QLD", - "City": "Runcorn", - "Country": "AU", - "Latitude": -27.5892457, - "Longitude": 153.0769254, - "Suburb": "Runcorn", - "Type": "Standard", - "UniqueID": "Address_13627498", - "Standard": { - "StreetName": "Diamond", - "StreetNumber": "45", - "StreetType": "Place" - } - }, - { - "AustralianPostCode": "3029", - "AustralianState": "VIC", - "City": "Tarneit", - "Country": "AU", - "Suburb": "Tarneit", - "Type": "Standard", - "UniqueID": "Address_11168887", - "Standard": { - "StreetName": "Lamington", - "StreetNumber": "18", - "StreetType": "Drive" - } - }, - { - "AustralianPostCode": "3124", - "AustralianState": "VIC", - "City": "Camberwell", - "Country": "AU", - "Latitude": -37.8281618, - "Longitude": 145.0587268, - "Suburb": "Camberwell", - "Type": "Standard", - "UniqueID": "Address_3510876", - "Standard": { - "StreetNumber": "19" - } - }, - { - "AustralianPostCode": "2000", - "AustralianState": "NSW", - "City": "", - "Country": "AU", - "Latitude": -33.8688197, - "Longitude": 151.2092955, - "Suburb": "", - "UniqueID": "Address_3386157" + "State": "QLD", + "Suburb": "HERITAGE PARK", + "TBAAddress": null, + "Type": "Standard", + "UniqueID": "Address_65702" + }, + { + "City": null, + "Country": "AU", + "DataSource": null, + "DeliveryPoint": null, + "DXBox": null, + "GNAF_ID": null, + "Latitude": null, + "LGAName": null, + "Longitude": null, + "NonStandard": null, + "OverseasPostCode": null, + "OverseasState": null, + "POBox": null, + "PostCode": null, + "RuralDeliveryNumber": null, + "SequenceNumber": null, + "Standard": null, + "State": null, + "Suburb": null, + "TBAAddress": null, + "Type": null, + "UniqueID": "Address_10028882" + }, + { + "City": "Chirnside Park", + "Country": "AU", + "DataSource": null, + "DeliveryPoint": null, + "DXBox": null, + "GNAF_ID": null, + "Latitude": -37.7191366, + "LGAName": null, + "Longitude": 145.3031854, + "NonStandard": null, + "OverseasPostCode": null, + "OverseasState": null, + "POBox": null, + "PostCode": "3116", + "RuralDeliveryNumber": null, + "SequenceNumber": null, + "Standard": { + "BuildingName": null, + "Level": null, + "LevelType": null, + "LotSection": null, + "StreetName": "Oak", + "StreetNumber": "28", + "StreetSuffix": null, + "StreetType": "Court", + "ToStreetNumber": null, + "ToUnitNumber": null, + "Unit": null, + "UnitType": null }, - { - "AustralianPostCode": "4213", - "AustralianState": "QLD", - "City": "Mudgeeraba", - "Country": "AU", - "Latitude": -28.1040346, - "Longitude": 153.3530469, - "Suburb": "Mudgeeraba", - "Type": "Standard", - "UniqueID": "Address_8247579", - "Standard": { - "StreetName": "Strawberry", - "StreetNumber": "20-22", - "StreetType": "Road" - } + "State": "VIC", + "Suburb": "Chirnside Park", + "TBAAddress": null, + "Type": "Standard", + "UniqueID": "Address_13683783" + }, + { + "City": "Fitzherbert", + "Country": "NZ", + "DataSource": null, + "DeliveryPoint": null, + "DXBox": null, + "GNAF_ID": null, + "Latitude": -40.3821662, + "LGAName": null, + "Longitude": 175.630218, + "NonStandard": null, + "OverseasPostCode": "4410", + "OverseasState": "Palmerston North", + "POBox": null, + "PostCode": null, + "RuralDeliveryNumber": null, + "SequenceNumber": null, + "Standard": { + "BuildingName": null, + "Level": null, + "LevelType": null, + "LotSection": null, + "StreetName": null, + "StreetNumber": "34", + "StreetSuffix": null, + "StreetType": null, + "ToStreetNumber": null, + "ToUnitNumber": null, + "Unit": null, + "UnitType": null }, - { - "AustralianPostCode": "4000", - "AustralianState": "QLD", - "City": "Brisbane City", - "Country": "AU", - "Suburb": "Brisbane City", - "Type": "Standard", - "UniqueID": "Address_11087379", - "Standard": { - "StreetName": "Quay", - "StreetNumber": "111", - "StreetType": "Street" - } + "State": null, + "Suburb": "Fitzherbert", + "TBAAddress": null, + "Type": "Standard", + "UniqueID": "Address_12326334" + }, + { + "City": "Victoria Park", + "Country": "AU", + "DataSource": null, + "DeliveryPoint": null, + "DXBox": null, + "GNAF_ID": null, + "Latitude": null, + "LGAName": null, + "Longitude": null, + "NonStandard": null, + "OverseasPostCode": null, + "OverseasState": null, + "POBox": null, + "PostCode": "6101", + "RuralDeliveryNumber": null, + "SequenceNumber": null, + "Standard": null, + "State": "WA", + "Suburb": "Victoria Park", + "TBAAddress": null, + "Type": null, + "UniqueID": "Address_5949753" + }, + { + "City": "O'CONNOR", + "Country": "AU", + "DataSource": null, + "DeliveryPoint": null, + "DXBox": null, + "GNAF_ID": null, + "Latitude": null, + "LGAName": null, + "Longitude": null, + "NonStandard": null, + "OverseasPostCode": null, + "OverseasState": null, + "POBox": null, + "PostCode": "6163", + "RuralDeliveryNumber": null, + "SequenceNumber": null, + "Standard": { + "BuildingName": null, + "Level": null, + "LevelType": null, + "LotSection": null, + "StreetName": "Bayleaf", + "StreetNumber": "10", + "StreetSuffix": null, + "StreetType": "Retreat", + "ToStreetNumber": null, + "ToUnitNumber": null, + "Unit": null, + "UnitType": null }, - { - "AustralianPostCode": "4069", - "AustralianState": "QLD", - "City": "Fig Tree Pocket", - "Country": "AU", - "Latitude": -27.5286302, - "Longitude": 152.9664001, - "Suburb": "Fig Tree Pocket", - "Type": "Standard", - "UniqueID": "Address_11555582", - "Standard": { - "StreetName": "Oasis", - "StreetNumber": "9", - "StreetType": "Court" - } + "State": "WA", + "Suburb": "O'CONNOR", + "TBAAddress": null, + "Type": "Standard", + "UniqueID": "Address_7797188" + }, + { + "City": "Edithvale", + "Country": "AU", + "DataSource": null, + "DeliveryPoint": null, + "DXBox": null, + "GNAF_ID": null, + "Latitude": -38.0429052, + "LGAName": null, + "Longitude": 145.1122306, + "NonStandard": { + "Line1": "Lot 31, 256-260 Station Street", + "Line2": null }, - { - "AustralianPostCode": "4110", - "AustralianState": "QLD", - "City": "Pallara", - "Country": "AU", - "Latitude": -27.6174073, - "Longitude": 153.0116075, - "Suburb": "Pallara", - "Type": "Standard", - "UniqueID": "Address_12459614", - "Standard": { - "StreetName": "Ponting", - "StreetNumber": "95" - } + "OverseasPostCode": null, + "OverseasState": null, + "POBox": null, + "PostCode": "3196", + "RuralDeliveryNumber": null, + "SequenceNumber": null, + "Standard": null, + "State": "VIC", + "Suburb": "Edithvale", + "TBAAddress": null, + "Type": null, + "UniqueID": "Address_13492188" + }, + { + "City": "Prahran", + "Country": "AU", + "DataSource": null, + "DeliveryPoint": null, + "DXBox": null, + "GNAF_ID": null, + "Latitude": -37.8552783, + "LGAName": null, + "Longitude": 145.0079824, + "NonStandard": null, + "OverseasPostCode": null, + "OverseasState": null, + "POBox": null, + "PostCode": "3181", + "RuralDeliveryNumber": null, + "SequenceNumber": null, + "Standard": { + "BuildingName": null, + "Level": null, + "LevelType": null, + "LotSection": null, + "StreetName": null, + "StreetNumber": "14", + "StreetSuffix": null, + "StreetType": null, + "ToStreetNumber": null, + "ToUnitNumber": null, + "Unit": null, + "UnitType": null }, - { - "AustralianPostCode": "2000", - "AustralianState": "NSW", - "City": "Sydney", - "Country": "AU", - "Latitude": -33.869167, - "Longitude": 151.2087416, - "Suburb": "Sydney", - "Type": "Standard", - "UniqueID": "Address_3416383", - "Standard": { - "StreetNumber": "135" - } + "State": "VIC", + "Suburb": "Prahran", + "TBAAddress": null, + "Type": "Standard", + "UniqueID": "Address_3605279" + }, + { + "City": "Cremorne", + "Country": "AU", + "DataSource": null, + "DeliveryPoint": null, + "DXBox": null, + "GNAF_ID": null, + "Latitude": -37.82564, + "LGAName": null, + "Longitude": 144.991233, + "NonStandard": null, + "OverseasPostCode": null, + "OverseasState": null, + "POBox": null, + "PostCode": "3121", + "RuralDeliveryNumber": null, + "SequenceNumber": null, + "Standard": { + "BuildingName": null, + "Level": null, + "LevelType": null, + "LotSection": null, + "StreetName": null, + "StreetNumber": "9-11", + "StreetSuffix": null, + "StreetType": null, + "ToStreetNumber": null, + "ToUnitNumber": null, + "Unit": null, + "UnitType": null }, - { - "AustralianPostCode": "4000", - "AustralianState": "QLD", - "City": "BRISBANE CITY", - "Country": "AU", - "Latitude": -27.4676885, - "Longitude": 153.0303725, - "Suburb": "BRISBANE CITY", - "Type": "Standard", - "UniqueID": "Address_807535", - "Standard": { - "Level": "26", - "StreetName": "EAGLE", - "StreetNumber": "111", - "StreetType": "Street" - } - } - ], - "BusinessChannel": { - "CompanyName": "TestBank", - "OtherIdentifier": "C9RZZZ", - "UniqueID": "Lender_5054", - "Contact": { - "WebAddress": "https://www.Lender.com.au/", - "OfficePhone": { - "Number": "02 9999 9999" - } - } + "State": "VIC", + "Suburb": "Cremorne", + "TBAAddress": null, + "Type": "Standard", + "UniqueID": "Address_3605280" }, - "ContributionFunds": [ - { - "Amount": 200000, - "Description": "FUNDS_AVAILABLE", - "Type": "Genuine Savings", - "UniqueID": "Funds_28548183" - } - ], - "DetailedComment": [ - { - "ContextDescription": "Immediate goals & objectives", - "Comment": "Testing - SIT NextGen Submission" + { + "City": "BRISBANE CITY", + "Country": "AU", + "DataSource": null, + "DeliveryPoint": null, + "DXBox": null, + "GNAF_ID": null, + "Latitude": -27.4676885, + "LGAName": null, + "Longitude": 153.0303725, + "NonStandard": null, + "OverseasPostCode": null, + "OverseasState": null, + "POBox": null, + "PostCode": "4000", + "RuralDeliveryNumber": null, + "SequenceNumber": null, + "Standard": { + "BuildingName": null, + "Level": "26", + "LevelType": null, + "LotSection": null, + "StreetName": "EAGLE", + "StreetNumber": "111", + "StreetSuffix": null, + "StreetType": "Street", + "ToStreetNumber": null, + "ToUnitNumber": null, + "Unit": null, + "UnitType": null }, - { - "ContextDescription": "Advisor Notes - ", - "Comment": "Testing - SIT NextGen Submission" + "State": "QLD", + "Suburb": "BRISBANE CITY", + "TBAAddress": null, + "Type": "Standard", + "UniqueID": "Address_807535" + } + ], + "BusinessChannel": { + "BusinessNumber": "", + "CompanyName": "cha cwufuztrz", + "CompanyNumber": null, + "Contact": { + "ContactPerson": null, + "Email": "", + "OfficeFax": null, + "OfficePhone": { + "CountryCode": null, + "DialingCode": null, + "Number": "7080 685 554", + "OverseasDialingCode": null }, - { - "ContextDescription": "Lender and product selection rationale - Summary", - "Comment": "Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission

Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission Testing - SIT NextGen Submission" - } - ], - "Household": [ - { - "NumberOfAdults": 2, - "NumberOfDependants": 0, - "UniqueID": "Family_7102929", - "ExpenseDetails": { - "LivingExpense": [ - { - "Amount": 800, - "Category": "Groceries", - "Description": "Groceries", - "Frequency": "Monthly" - }, - { - "Amount": 3300, - "Category": "Primary Residence Running Costs", - "Description": "Electricity & Gas, Council Rates, Water & Sewer, Body Corporate", - "Frequency": "Monthly" - }, - { - "Amount": 1200, - "Category": "Investment Property Running Costs", - "Description": "Building Insurance", - "Frequency": "Monthly" - }, - { - "Amount": 260, - "Category": "Health Insurance", - "Description": "Health Insurance", - "Frequency": "Monthly" - }, - { - "Amount": 100, - "Category": "General Basic Insurances", - "Description": "Vehicle Insurance", - "Frequency": "Monthly" - }, - { - "Amount": 50, - "Category": "Medical and health", - "Description": "Medical & Health", - "Frequency": "Monthly" - }, - { - "Amount": 200, - "Category": "Clothing and personal care", - "Description": "Clothing & Footwear, Personal Care", - "Frequency": "Monthly" - }, - { - "Amount": 530, - "Category": "Recreation and entertainment", - "Description": "Cinema/Concerts/Memberships, Dining Out, Gym / Sports", - "Frequency": "Monthly" - }, - { - "Amount": 170, - "Category": "Telephone, internet, pay TV and media streaming subscriptions", - "Description": "Home/Mobile Phone, Internet, Pay TV & Media Streaming Subscriptions", - "Frequency": "Monthly" - }, - { - "Amount": 375, - "Category": "Transport", - "Description": "Petrol, Registration, Vehicle Maintenance, Tolls/Parking etc", - "Frequency": "Monthly" - } - ] + "WebAddress": "uyrib://sle.nfn.ket.gy", + "X_Address": null + }, + "CRMReferenceNumber": null, + "LenderID": null, + "LicenceNumber": null, + "LicenceType": null, + "OtherIdentifier": "CM9ILS", + "PanelSolicitor": null, + "RelationshipManager": null, + "Type": null, + "UniqueID": "Lender_3647" + }, + "CompanyApplicant": [], + "CompanyFinancials": [], + "ContributionFunds": [ + { + "Amount": 108000.0, + "Description": "Deposit Paid - ", + "Loan": null, + "SequenceNumber": null, + "Type": "Other", + "UniqueID": "Funds_29135221", + "X_AssociatedLoanAccount": null, + "X_FundsHeldInAccount": null + }, + { + "Amount": 76000.0, + "Description": "FUNDS_AVAILABLE", + "Loan": null, + "SequenceNumber": null, + "Type": "Genuine Savings", + "UniqueID": "Funds_29135222", + "X_AssociatedLoanAccount": null, + "X_FundsHeldInAccount": null + }, + { + "Amount": 100000.0, + "Description": "FUNDS_AVAILABLE", + "Loan": null, + "SequenceNumber": null, + "Type": "Gift", + "UniqueID": "Funds_29135223", + "X_AssociatedLoanAccount": null, + "X_FundsHeldInAccount": null + } + ], + "CustomerTransactionAnalysis": null, + "Declarations": null, + "DepositAccountDetails": null, + "DetailedComment": [ + { + "Comment": "As the applicant's broker, I understand that their primary objective is to secure financing for the purchase of their first home. The applicant is looking to buy a residential property valued at approximately $1000,000 and aims to obtain a loan with favorable terms that align with their current financial situation. Given that they are a first-time homebuyer, they are particularly interested in accessing any government incentives or first-home buyer benefits that may reduce upfront costs, such as stamp duty concessions or grants.", + "ContextDescription": "Immediate goals & objectives", + "CreatedDate": null, + "SequenceNumber": null, + "UniqueID": null, + "X_Author": null, + "X_Context": null + }, + { + "Comment": "The product includes minimal upfront fees, and the lender participates in the First Home Owner Grant program, maximizing the applicant’s savings on stamp duty and other upfront costs. In summary, the selected lender and product meet the client’s requirements for affordability, flexibility, and a secure loan structure, while supporting their goal of purchasing their first home within the next 6 months.", + "ContextDescription": "Advisor Notes - ", + "CreatedDate": null, + "SequenceNumber": null, + "UniqueID": null, + "X_Author": null, + "X_Context": null + }, + { + "Comment": "After assessing the applicant’s objectives and financial situation, the selected lender and product align well with their best interests. The chosen lender offers a First Home Buyer loan package specifically designed to meet the needs of individuals purchasing their first home, including competitive interest rates and access to government incentives. This product allows the applicant to benefit from a fixed interest rate for the first 4 years, providing stability and predictability in their monthly repayments, which is one of their key priorities. Additionally, the loan product offers flexibility with features such as extra repayment options and a redraw facility, giving the applicant the ability to pay down their loan faster without penalty, as their financial situation improves. The lender also has a strong track record in customer service, ensuring a smooth process during settlement and ongoing loan management.", + "ContextDescription": "Lender and product selection rationale - Summary", + "CreatedDate": null, + "SequenceNumber": null, + "UniqueID": null, + "X_Author": null, + "X_Context": null + } + ], + "ExitStrategy": null, + "Funder": null, + "Funders": null, + "GeneralSecurityAgreement": null, + "Household": [ + { + "Dependant": [ + { + "Age": 17, + "DateOfBirth": "2007-04-19T00:00:00", + "FinancialProvider": null, + "Name": "Ruby Bruce ", + "SequenceNumber": null, + "UniqueID": "Person_9970620" } - } - ], - "Insurance": [ - { - "Description": "Life Insurance", - "InsuranceType": "Life Insurance", - "InsuredAmount": 150000, - "OtherInsurerName": "", - "UniqueID": "Insurance_15254658", - "InsuredParty": [ + ], + "EducationExpenses": null, + "ExpenseDetails": { + "BrokerVerifiedExpense": null, + "BrokerVerifiedExpenseDetails": null, + "LivingExpense": [ { - "x_InsuredParty": "Family_8477374" + "Amount": 2000.0, + "Category": "Childcare", + "Description": "Child Care", + "EndDate": null, + "Frequency": "Monthly", + "PercentResponsible": null, + "SequenceNumber": null, + "StartDate": null, + "UniqueID": null }, { - "x_InsuredParty": "Family_8477375" - } - ] - } - ], - "Liability": [ - { - "AnnualInterestRate": 0, - "ClearingFromThisLoan": false, - "ClearingFromThisLoanAmount": 0, - "CreditCardType": "MasterCard", - "CreditLimit": 15000, - "HasArrears": false, - "OutstandingBalance": 0, - "Type": "Credit Card", - "UniqueID": "FinancialLiability_45722253", - "AccountNumber": {}, - "ContinuingRepayment": [ + "Amount": 2000.0, + "Category": "Groceries", + "Description": "Groceries", + "EndDate": null, + "Frequency": "Monthly", + "PercentResponsible": null, + "SequenceNumber": null, + "StartDate": null, + "UniqueID": null + }, { - "LoanPaymentScheduleType": "Even Total Payments", - "PaymentType": "Principal and Interest", - "TaxDeductible": false - } - ], - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 50, - "x_Party": "Family_8477374" - }, - { - "Percent": 50, - "x_Party": "Family_8477375" - } - ] - }, - "Repayment": [ + "Amount": 1150.0, + "Category": "Primary Residence Running Costs", + "Description": "Electricity & Gas, Council Rates, Water & Sewer, Home Repairs", + "EndDate": null, + "Frequency": "Monthly", + "PercentResponsible": null, + "SequenceNumber": null, + "StartDate": null, + "UniqueID": null + }, { - "LoanPaymentScheduleType": "Even Total Payments", - "PaymentType": "Principal and Interest", - "Regular": true, - "RepaymentAmount": 0, - "RepaymentFrequency": "Monthly", - "TaxDeductible": false - } - ] - }, - { - "AnnualInterestRate": 0, - "ClearingFromThisLoan": false, - "ClearingFromThisLoanAmount": 0, - "CreditCardType": "Other Credit Card", - "CreditLimit": 17000, - "HasArrears": false, - "OutstandingBalance": 0, - "Type": "Credit Card", - "UniqueID": "FinancialLiability_45722241", - "AccountNumber": {}, - "ContinuingRepayment": [ + "Amount": 200.0, + "Category": "Investment Property Running Costs", + "Description": "Building Insurance", + "EndDate": null, + "Frequency": "Monthly", + "PercentResponsible": null, + "SequenceNumber": null, + "StartDate": null, + "UniqueID": null + }, { - "LoanPaymentScheduleType": "Even Total Payments", - "PaymentType": "Principal and Interest", - "TaxDeductible": false + "Amount": 200.0, + "Category": "Telephone, internet, pay TV and media streaming subscriptions", + "Description": "Home/Mobile Phone, Internet, Pay TV & Media Streaming Subscriptions", + "EndDate": null, + "Frequency": "Monthly", + "PercentResponsible": null, + "SequenceNumber": null, + "StartDate": null, + "UniqueID": null } ], - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 100, - "x_Party": "Family_8477374" - }, - { - "Percent": 0, - "x_Party": "Family_8477375" - } - ] - }, - "Repayment": [ - { - "LoanPaymentScheduleType": "Even Total Payments", - "PaymentType": "Principal and Interest", - "Regular": true, - "RepaymentAmount": 0, - "RepaymentFrequency": "Monthly", - "TaxDeductible": false - } - ] + "OtherCommitment": [], + "StatedLessThanCalculatedLivingExpensesDetails": null, + "TotalSystemCalculatedLivingExpenses": null, + "TotalUserStatedLivingExpenses": null }, - { - "AnnualInterestRate": 0, - "ClearingFromThisLoan": false, - "ClearingFromThisLoanAmount": 415817, - "CreditLimit": 415817, - "HasArrears": false, - "OutstandingBalance": 415817, - "Type": "Mortgage Loan", - "UniqueID": "FinancialLiability_63101829", - "AccountNumber": { - "FinancialInstitution": "Other", - "OtherFIName": "ANZ Australia" - }, - "ContinuingRepayment": [ + "Name": null, + "NumberOfAdults": 2, + "NumberOfDependants": 1, + "SequenceNumber": null, + "UniqueID": "Family_8061858" + } + ], + "Insurance": [], + "Lease": null, + "LendingGuarantee": null, + "Liability": [ + { + "AccelerationPercentage": null, + "AccountNumber": { + "AccountName": null, + "AccountNumber": null, + "AccountTypeName": null, + "BranchDomicile": null, + "BSB": null, + "FinancialInstitution": null, + "OtherFIName": null, + "SequenceNumber": null + }, + "AnnualInterestRate": 0.0, + "Arrears": null, + "AvailableForRedrawAmount": null, + "BalloonRepaymentAmount": null, + "BalloonRepaymentDate": null, + "BuyNowPayLater": null, + "ClearingFromOtherSource": null, + "ClearingFromOtherSourceAmount": null, + "ClearingFromThisLoan": false, + "ClearingFromThisLoanAmount": 5000.0, + "ClosingOnSettlement": null, + "ContinuingRepayment": [ + { + "CapitalisedInterestAmount": null, + "LoanPaymentScheduleType": "Even Total Payments", + "MinimumAmount": null, + "PaymentTiming": null, + "PaymentType": "Principal and Interest", + "RemainingRepayments": null, + "RepaymentAmount": null, + "RepaymentFrequency": null, + "SequenceNumber": null, + "TaxDeductible": false, + "UniqueID": null + } + ], + "CreditCardType": "MasterCard", + "CreditLimit": 15000.0, + "CreditRiskGrade": null, + "Description": null, + "DiscountMargin": null, + "DocumentationInstructions": null, + "DSH": null, + "FastRefinance": null, + "FeaturesSelected": null, + "HasArrears": false, + "HasPreviousArrears": null, + "HasUndrawnFunds": null, + "InAdvanceAmount": null, + "InterestCalculationFrequency": null, + "InterestChargeFrequency": null, + "IsOriginalAmountRequestedInForeignCurrency": null, + "LenderAssessmentReason": null, + "LenderAssessmentRequired": null, + "LendingPurpose": null, + "LimitExceededCurrently": null, + "LimitExceededPreviously": null, + "LVR": null, + "MaturityDate": null, + "MinimumRepaymentRate": null, + "NCCPStatus": null, + "NegativelyGeared": null, + "NegativelyGearedPercentage": null, + "NewLimit": null, + "NonCapitalisedInterest": null, + "OriginalAmount": null, + "OriginalAmountRequestedInForeignCurrency": null, + "OriginalLoanPurpose": null, + "OriginalTerm": null, + "OriginationDate": null, + "OriginatorReferenceID": null, + "OutstandingBalance": 5000.0, + "Overdrawn": null, + "Package": null, + "PercentOwned": { + "Owner": [ + { + "OwnerType": null, + "Percent": 50.0, + "SequenceNumber": null, + "X_Party": "Family_9901852" + }, { - "LoanPaymentScheduleType": "Even Total Payments", - "PaymentType": "Principal and Interest", - "TaxDeductible": false + "OwnerType": null, + "Percent": 50.0, + "SequenceNumber": null, + "X_Party": "Family_9954969" } ], - "OriginalTerm": { + "Proportions": "Specified" + }, + "ProductCode": null, + "ProductName": null, + "PublicAuthorityOwed": null, + "RateComposition": null, + "RefinanceAmount": null, + "RefinanceCosts": null, + "RemainingTerm": null, + "RepaidDate": null, + "Repayment": [ + { + "CapitalisedInterestAmount": null, + "InterestPayment": null, + "LoanPaymentScheduleType": "Even Total Payments", + "MinimumAmount": null, + "PaymentTiming": null, "PaymentType": "Principal and Interest", - "PaymentTypeUnits": "Years", - "TotalTermDuration": 30 - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 50, - "x_Party": "Family_8477374" - }, - { - "Percent": 50, - "x_Party": "Family_8477375" - } - ] - }, - "Repayment": [ + "PrincipalPayment": null, + "Regular": true, + "RemainingRepayments": null, + "RepaymentAmount": 570.0, + "RepaymentFrequency": "Monthly", + "SequenceNumber": null, + "TaxDeductible": false, + "UniqueID": null + } + ], + "RevertInterestRate": null, + "Secured": null, + "Security": null, + "SequenceNumber": null, + "SMSFLoan": null, + "Software": null, + "Suspended": null, + "TermsAndConditions": null, + "Type": "Credit Card", + "UndrawnAmount": null, + "UniqueID": "FinancialLiability_64827869", + "Verified": null, + "WrittenOff": null, + "X_CustomerTransactionAnalysis": null + } + ], + "LoanDetails": [ + { + "AccelerationPercentage": null, + "AccountNumber": null, + "AmountRequested": 864000.0, + "AmountRequestedInclusive": null, + "AmountRequestedInForeignCurrency": null, + "AmountToBeFinanced": null, + "AuthorityToOperate": null, + "BalloonRepaymentAmount": null, + "BalloonRepaymentDate": null, + "Borrowers": { + "Owner": [ { - "LoanPaymentScheduleType": "Even Total Payments", - "PaymentType": "Principal and Interest", - "Regular": true, - "RepaymentAmount": 2666, - "RepaymentFrequency": "Monthly", - "TaxDeductible": false - } - ], - "Security": [ + "Percent": 50.0, + "PrimaryBorrower": null, + "RelationshipTypeCode": null, + "SequenceNumber": null, + "X_Party": "Family_9901852" + }, { - "Priority": "First Mortgage", - "x_Security": "FinancialInfo_15708480" + "Percent": 50.0, + "PrimaryBorrower": null, + "RelationshipTypeCode": null, + "SequenceNumber": null, + "X_Party": "Family_9954969" } - ] + ], + "Proportions": "Equal" }, - { - "AnnualInterestRate": 5.2, - "ClearingFromThisLoan": false, - "ClearingFromThisLoanAmount": 203000, - "CreditLimit": 203000, - "HasArrears": false, - "OutstandingBalance": 203000, - "Type": "Mortgage Loan", - "UniqueID": "FinancialLiability_47859966", - "AccountNumber": { - "FinancialInstitution": "Other", - "OtherFIName": "Westpac" + "BulkReduction": null, + "BuyNowPayLater": null, + "Cashout": null, + "Commission": null, + "ConsiderLowerLimitIfNotEligible": null, + "DiscountMargin": null, + "DocumentationInstructions": null, + "DSH": null, + "EquityRelease": null, + "EstimatedSettlementDate": null, + "ExactAssetNotIdentified": null, + "FeaturesSelected": { + "ChequeBook": false, + "CreditCard": false, + "DebitCard": null, + "DepositAccount": null, + "DepositAccountRequested": null, + "DepositBook": null, + "ExtraFeature": null, + "HolidayLeave": null, + "NumberOfOffsetAccounts": null, + "Offset": null, + "OffsetAccount": null, + "OffsetPercentage": null, + "ParentalLeave": null, + "PartialOffset": null, + "Portability": null, + "ProgressiveDraw": null, + "RateLock": false, + "Redraw": false, + "SplitLoan": null + }, + "Funder": null, + "FundsDisbursement": null, + "Guarantor": [], + "InterestCalculationFrequency": null, + "InterestChargeFrequency": null, + "IsAmountRequestedInForeignCurrency": null, + "IsEquityRelease": null, + "LenderDDORequirementsSatisfied": null, + "LendingPurpose": [ + { + "ABSLendingPurpose": null, + "ABSLendingPurposeCode": null, + "Description": null, + "IncludesRefinancing": false, + "LenderCode": null, + "NonRefinancingLendingReason": null, + "PayoutQuoteObtained": null, + "PercentBenefit": null, + "PurposeAmount": null, + "PurposeOfFunds": null, + "RefinancingReason": null, + "SecurityForMarginLoan": null, + "SequenceNumber": null, + "SharesOrManagedFundsInvestment": null, + "UniqueID": null, + "X_LoanPurposeAsset": null }, - "ContinuingRepayment": [ + { + "ABSLendingPurpose": "Purchase a Property", + "ABSLendingPurposeCode": "ABS-129", + "Description": null, + "IncludesRefinancing": null, + "LenderCode": null, + "NonRefinancingLendingReason": null, + "PayoutQuoteObtained": null, + "PercentBenefit": null, + "PurposeAmount": 972000.0, + "PurposeOfFunds": null, + "RefinancingReason": null, + "SecurityForMarginLoan": null, + "SequenceNumber": null, + "SharesOrManagedFundsInvestment": null, + "UniqueID": null, + "X_LoanPurposeAsset": null + } + ], + "LoanPurpose": { + "NCCPStatus": null, + "Occupancy": null, + "OwnerBuilderApplication": null, + "PrimaryPurpose": "Owner Occupied", + "RBALendingPurpose": null + }, + "LoanType": "Term Loan", + "LoyaltyProgramNumber": null, + "LVR": 80.0, + "MainProduct": null, + "MaturityDate": null, + "MinimumRepaymentRate": null, + "NegativelyGeared": null, + "NegativelyGearedPercentage": null, + "NominateBalloonRepayment": null, + "OriginatorReferenceID": "Standard-F2-F (PI OO) 0-80%", + "Package": null, + "ProductCode": null, + "ProductName": "Standard 2 Years Fixed <80% (OO PI)", + "ProductSubCategory": null, + "ProposedAnnualInterestRate": 0.0, + "ProposedRepayment": { + "AnniversaryDate": null, + "Authoriser": null, + "CreditCard": null, + "Description": null, + "FromAccount": null, + "Method": null, + "PaymentTiming": null, + "PerDiemPaymentAmount": null, + "PerDiemPaymentDate": null, + "PerDiemPaymentGSTAmount": null, + "PerDiemPaymentStampDutyAmount": null, + "Regular": null, + "RegularRepayment": [ { - "LoanPaymentScheduleType": "Even Total Payments", - "PaymentType": "Principal and Interest", - "TaxDeductible": false + "Amount": 5483.82, + "CapitalisedInterestAmount": null, + "DayOfMonth": null, + "DayOfWeek": null, + "EndOfPeriod": null, + "FirstRepaymentDate": null, + "Frequency": "Monthly", + "FrequencyInterval": null, + "GSTAmount": null, + "InterestPayment": null, + "LastRepaymentDate": null, + "LoanPaymentScheduleType": null, + "MinimumAmount": null, + "PrincipalPayment": null, + "SequenceNumber": null, + "StampDutyAmount": null, + "TotalRepayments": null, + "UniqueID": null, + "Week": null } ], - "OriginalTerm": { - "PaymentType": "Principal and Interest", - "PaymentTypeUnits": "Years", - "TotalTermDuration": 30 - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 100, - "x_Party": "Family_8477375" - }, - { - "Percent": 0, - "x_Party": "Family_8477374" - } - ] - }, - "Repayment": [ + "StructuredPayments": null, + "X_Account": null + }, + "RateComposition": null, + "RevertInterestRate": null, + "Secured": true, + "Security": null, + "SequenceNumber": null, + "SMSFLoan": null, + "Software": null, + "SpecialConcessionCode": null, + "StatementCycle": "Monthly", + "StatementInstructions": null, + "SupplementaryCardholder": null, + "TaxDeductible": false, + "TemplateID": null, + "Term": { + "DistinctLoanPeriod": null, + "GSTOnTermCharges": null, + "GSTOnTermChargesCapitalised": null, + "InterestOnlyReason": null, + "InterestType": null, + "InterestTypeDuration": null, + "InterestTypeUnits": null, + "LoanReviewDate": null, + "LoanReviewPeriod": null, + "PaymentType": "Principal and Interest", + "PaymentTypeDuration": null, + "PaymentTypeUnits": null, + "RolloverPeriodDuration": null, + "RolloverPeriodUnits": null, + "TermChargesAmount": null, + "TotalFeesAmount": null, + "TotalInterestAmount": null, + "TotalRepayments": null, + "TotalRepaymentsAmount": null, + "TotalTermDuration": 30, + "TotalTermType": "Total Term", + "TotalTermUnits": "Years" + }, + "TermsAndConditions": null, + "UniqueID": "LoanStructure_6751965", + "X_MasterAgreement": null + } + ], + "MasterAgreement": null, + "NonRealEstateAsset": [ + { + "AgriculturalAsset": null, + "Aircraft": null, + "AmountToBeReduced": null, + "AssetReferenceNumber": null, + "Business": null, + "CleaningEquipment": null, + "ContractDetails": null, + "ContractOfSale": null, + "EarthMovingMiningAndConstruction": null, + "Encumbered": null, + "Encumbrance": null, + "EstimatedValue": { + "BalloonRVAmount": null, + "BalloonRVInputPattern": null, + "BalloonRVPercent": null, + "EstimateBasis": "Applicant Estimate", + "EstimatedCGTLiability": null, + "MinimumResidualValue": null, + "TaxDepreciationMethod": null, + "TaxDepreciationRate": null, + "Value": 53000.0, + "ValuedDate": null + }, + "EstimatedValues": null, + "FinancialAsset": null, + "FinancialTransactionType": null, + "FundsDisbursement": null, + "HospitalityAndLeisure": null, + "Insurance": null, + "ITAndAVEquipment": null, + "LenderAssessmentReason": null, + "LenderAssessmentRequired": null, + "Licence": null, + "MaterialsHandlingAndLifting": null, + "MedicalEquipment": null, + "MobileComputing": null, + "MotorVehicle": { + "AdditionalIDType": null, + "AdditionalIDValue": null, + "Age": 1, + "Badge": null, + "Body": null, + "Colour": null, + "Condition": null, + "ConditionDescription": null, + "Cylinders": null, + "Description": "2023 Ford Ranger Ute", + "Doors": null, + "EffectiveLife": null, + "EngineCapacity": null, + "EngineHoursTotal": null, + "EngineID": null, + "ExcessUsageCalculationMethod": null, + "ExtraFeature": null, + "FuelType": null, + "IncludedUsage": null, + "Kilometres": null, + "Make": "Ford Ranger Ute", + "Model": null, + "Options": null, + "OtherInformation": null, + "Quantity": null, + "RegisteredInState": null, + "RegistrationExpiryDate": null, + "RegistrationNumber": null, + "SerialNumber": null, + "Series": null, + "Subtype": null, + "Transmission": null, + "Type": "Car", + "UsageAtStart": null, + "UsageUnitOfMeasurement": null, + "Variant": null, + "X_GoodToBeUsedAddress": null, + "Year": "2023" + }, + "OfficeEquipment": null, + "OtherAsset": null, + "OwnershipDocument": null, + "PercentOwned": { + "Owner": [ { - "LoanPaymentScheduleType": "Even Total Payments", - "PaymentType": "Principal and Interest", - "Regular": true, - "RepaymentAmount": 1400, - "RepaymentFrequency": "Monthly", - "TaxDeductible": false + "Percent": 50.0, + "SequenceNumber": null, + "X_Party": "Family_9901852" + }, + { + "Percent": 50.0, + "SequenceNumber": null, + "X_Party": "Family_9954969" } ], - "Security": [ + "Proportions": "Specified" + }, + "PlantEquipmentAndIndustrial": null, + "PPSR": null, + "PrimarySecurity": null, + "SequenceNumber": null, + "ToBeReduced": null, + "ToBeSold": false, + "ToBeUsedAsSecurity": false, + "ToolsOfTrade": null, + "Transaction": null, + "Type": "Motor Vehicle and Transport", + "UniqueID": "FinancialInfo_15514636", + "Verified": null, + "Watercraft": null, + "WaterRights": null, + "X_CustomerTransactionAnalysis": null, + "X_VendorTaxInvoice": null + }, + { + "AgriculturalAsset": null, + "Aircraft": null, + "AmountToBeReduced": null, + "AssetReferenceNumber": null, + "Business": null, + "CleaningEquipment": null, + "ContractDetails": null, + "ContractOfSale": null, + "EarthMovingMiningAndConstruction": null, + "Encumbered": null, + "Encumbrance": null, + "EstimatedValue": { + "BalloonRVAmount": null, + "BalloonRVInputPattern": null, + "BalloonRVPercent": null, + "EstimateBasis": "Applicant Estimate", + "EstimatedCGTLiability": null, + "MinimumResidualValue": null, + "TaxDepreciationMethod": null, + "TaxDepreciationRate": null, + "Value": 32000.0, + "ValuedDate": null + }, + "EstimatedValues": null, + "FinancialAsset": null, + "FinancialTransactionType": null, + "FundsDisbursement": null, + "HospitalityAndLeisure": null, + "Insurance": null, + "ITAndAVEquipment": null, + "LenderAssessmentReason": null, + "LenderAssessmentRequired": null, + "Licence": null, + "MaterialsHandlingAndLifting": null, + "MedicalEquipment": null, + "MobileComputing": null, + "MotorVehicle": { + "AdditionalIDType": null, + "AdditionalIDValue": null, + "Age": 10, + "Badge": null, + "Body": null, + "Colour": null, + "Condition": null, + "ConditionDescription": null, + "Cylinders": null, + "Description": "2014 Mercedes Benz C250", + "Doors": null, + "EffectiveLife": null, + "EngineCapacity": null, + "EngineHoursTotal": null, + "EngineID": null, + "ExcessUsageCalculationMethod": null, + "ExtraFeature": null, + "FuelType": null, + "IncludedUsage": null, + "Kilometres": null, + "Make": "Mercedes Benz C250", + "Model": null, + "Options": null, + "OtherInformation": null, + "Quantity": null, + "RegisteredInState": null, + "RegistrationExpiryDate": null, + "RegistrationNumber": null, + "SerialNumber": null, + "Series": null, + "Subtype": null, + "Transmission": null, + "Type": "Car", + "UsageAtStart": null, + "UsageUnitOfMeasurement": null, + "Variant": null, + "X_GoodToBeUsedAddress": null, + "Year": "2014" + }, + "OfficeEquipment": null, + "OtherAsset": null, + "OwnershipDocument": null, + "PercentOwned": { + "Owner": [ { - "Priority": "First Mortgage", - "x_Security": "FinancialInfo_13162992" + "Percent": 50.0, + "SequenceNumber": null, + "X_Party": "Family_9901852" + }, + { + "Percent": 50.0, + "SequenceNumber": null, + "X_Party": "Family_9954969" } - ] + ], + "Proportions": "Specified" }, - { - "AnnualInterestRate": 0, - "ClearingFromThisLoan": false, - "ClearingFromThisLoanAmount": 291476, - "CreditLimit": 291476, - "HasArrears": false, - "OutstandingBalance": 291476, - "Type": "Mortgage Loan", - "UniqueID": "FinancialLiability_55290391", + "PlantEquipmentAndIndustrial": null, + "PPSR": null, + "PrimarySecurity": null, + "SequenceNumber": null, + "ToBeReduced": null, + "ToBeSold": false, + "ToBeUsedAsSecurity": false, + "ToolsOfTrade": null, + "Transaction": null, + "Type": "Motor Vehicle and Transport", + "UniqueID": "FinancialInfo_15514640", + "Verified": null, + "Watercraft": null, + "WaterRights": null, + "X_CustomerTransactionAnalysis": null, + "X_VendorTaxInvoice": null + }, + { + "AgriculturalAsset": null, + "Aircraft": null, + "AmountToBeReduced": null, + "AssetReferenceNumber": null, + "Business": null, + "CleaningEquipment": null, + "ContractDetails": null, + "ContractOfSale": null, + "EarthMovingMiningAndConstruction": null, + "Encumbered": null, + "Encumbrance": null, + "EstimatedValue": { + "BalloonRVAmount": null, + "BalloonRVInputPattern": null, + "BalloonRVPercent": null, + "EstimateBasis": "Applicant Estimate", + "EstimatedCGTLiability": null, + "MinimumResidualValue": null, + "TaxDepreciationMethod": null, + "TaxDepreciationRate": null, + "Value": 1283.77, + "ValuedDate": null + }, + "EstimatedValues": null, + "FinancialAsset": { "AccountNumber": { + "AccountName": "GXXXXXXXXXXp", + "AccountNumber": "73XXXXXX8", + "AccountTypeName": null, + "BranchDomicile": null, + "BSB": "XXXXXX", "FinancialInstitution": "Other", - "OtherFIName": "Adelaide Bank" - }, - "ContinuingRepayment": [ + "OtherFIName": "National Australia Bank", + "SequenceNumber": null + }, + "Description": "National Australia Bank #2548", + "ExtraFeature": null, + "Shares": null, + "TransferOwnershipToSMSF": null, + "Type": "Savings Account" + }, + "FinancialTransactionType": null, + "FundsDisbursement": null, + "HospitalityAndLeisure": null, + "Insurance": null, + "ITAndAVEquipment": null, + "LenderAssessmentReason": null, + "LenderAssessmentRequired": null, + "Licence": null, + "MaterialsHandlingAndLifting": null, + "MedicalEquipment": null, + "MobileComputing": null, + "MotorVehicle": null, + "OfficeEquipment": null, + "OtherAsset": null, + "OwnershipDocument": null, + "PercentOwned": { + "Owner": [ { - "LoanPaymentScheduleType": "Even Total Payments", - "PaymentType": "Principal and Interest", - "TaxDeductible": true - } - ], - "OriginalTerm": { - "PaymentType": "Principal and Interest", - "PaymentTypeUnits": "Years", - "TotalTermDuration": 26 - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 100, - "x_Party": "Family_8477375" - }, - { - "Percent": 0, - "x_Party": "Family_8477374" - } - ] - }, - "Repayment": [ + "Percent": 100.0, + "SequenceNumber": null, + "X_Party": "Family_9901852" + }, { - "LoanPaymentScheduleType": "Even Total Payments", - "PaymentType": "Principal and Interest", - "Regular": true, - "RepaymentAmount": 1902, - "RepaymentFrequency": "Monthly", - "TaxDeductible": true + "Percent": 0.0, + "SequenceNumber": null, + "X_Party": "Family_9954969" } ], - "Security": [ - { - "Priority": "First Mortgage", - "x_Security": "FinancialInfo_14381322" - } - ] + "Proportions": "Specified" }, - { - "AnnualInterestRate": 7.15, - "ClearingFromThisLoan": false, - "ClearingFromThisLoanAmount": 875000, - "CreditLimit": 875000, - "HasArrears": false, - "OutstandingBalance": 875000, - "Type": "Mortgage Loan", - "UniqueID": "FinancialLiability_51868326", + "PlantEquipmentAndIndustrial": null, + "PPSR": null, + "PrimarySecurity": null, + "SequenceNumber": null, + "ToBeReduced": null, + "ToBeSold": false, + "ToBeUsedAsSecurity": false, + "ToolsOfTrade": null, + "Transaction": null, + "Type": "Financial Asset", + "UniqueID": "FinancialInfo_15481950", + "Verified": null, + "Watercraft": null, + "WaterRights": null, + "X_CustomerTransactionAnalysis": null, + "X_VendorTaxInvoice": null + }, + { + "AgriculturalAsset": null, + "Aircraft": null, + "AmountToBeReduced": null, + "AssetReferenceNumber": null, + "Business": null, + "CleaningEquipment": null, + "ContractDetails": null, + "ContractOfSale": null, + "EarthMovingMiningAndConstruction": null, + "Encumbered": null, + "Encumbrance": null, + "EstimatedValue": { + "BalloonRVAmount": null, + "BalloonRVInputPattern": null, + "BalloonRVPercent": null, + "EstimateBasis": "Applicant Estimate", + "EstimatedCGTLiability": null, + "MinimumResidualValue": null, + "TaxDepreciationMethod": null, + "TaxDepreciationRate": null, + "Value": 7529.08, + "ValuedDate": null + }, + "EstimatedValues": null, + "FinancialAsset": { "AccountNumber": { + "AccountName": "GXXXXXXXXXXp", + "AccountNumber": "32XXXXXX2", + "AccountTypeName": null, + "BranchDomicile": null, + "BSB": "XXXXXX", "FinancialInstitution": "Other", - "OtherFIName": "Commonwealth Bank" - }, - "ContinuingRepayment": [ + "OtherFIName": "National Australia Bank", + "SequenceNumber": null + }, + "Description": "National Australia Bank #2662", + "ExtraFeature": null, + "Shares": null, + "TransferOwnershipToSMSF": null, + "Type": "Savings Account" + }, + "FinancialTransactionType": null, + "FundsDisbursement": null, + "HospitalityAndLeisure": null, + "Insurance": null, + "ITAndAVEquipment": null, + "LenderAssessmentReason": null, + "LenderAssessmentRequired": null, + "Licence": null, + "MaterialsHandlingAndLifting": null, + "MedicalEquipment": null, + "MobileComputing": null, + "MotorVehicle": null, + "OfficeEquipment": null, + "OtherAsset": null, + "OwnershipDocument": null, + "PercentOwned": { + "Owner": [ { - "LoanPaymentScheduleType": "Even Total Payments", - "PaymentType": "Principal and Interest", - "TaxDeductible": false - } - ], - "OriginalTerm": { - "PaymentType": "Principal and Interest", - "PaymentTypeUnits": "Years", - "TotalTermDuration": 30 - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 50, - "x_Party": "Family_8477374" - }, - { - "Percent": 50, - "x_Party": "Family_8477375" - } - ] - }, - "Repayment": [ + "Percent": 100.0, + "SequenceNumber": null, + "X_Party": "Family_9901852" + }, { - "LoanPaymentScheduleType": "Even Total Payments", - "PaymentType": "Principal and Interest", - "Regular": true, - "RepaymentAmount": 5909.81, - "RepaymentFrequency": "Monthly", - "TaxDeductible": false + "Percent": 0.0, + "SequenceNumber": null, + "X_Party": "Family_9954969" } ], - "Security": [ - { - "Priority": "First Mortgage", - "x_Security": "FinancialInfo_13821438" - } - ] + "Proportions": "Specified" }, - { - "AnnualInterestRate": 0, - "ClearingFromThisLoan": false, - "ClearingFromThisLoanAmount": 785406, - "CreditLimit": 785406, - "HasArrears": false, - "OutstandingBalance": 785406, - "Type": "Mortgage Loan", - "UniqueID": "FinancialLiability_55290515", + "PlantEquipmentAndIndustrial": null, + "PPSR": null, + "PrimarySecurity": null, + "SequenceNumber": null, + "ToBeReduced": null, + "ToBeSold": false, + "ToBeUsedAsSecurity": false, + "ToolsOfTrade": null, + "Transaction": null, + "Type": "Financial Asset", + "UniqueID": "FinancialInfo_15481951", + "Verified": null, + "Watercraft": null, + "WaterRights": null, + "X_CustomerTransactionAnalysis": null, + "X_VendorTaxInvoice": null + }, + { + "AgriculturalAsset": null, + "Aircraft": null, + "AmountToBeReduced": null, + "AssetReferenceNumber": null, + "Business": null, + "CleaningEquipment": null, + "ContractDetails": null, + "ContractOfSale": null, + "EarthMovingMiningAndConstruction": null, + "Encumbered": null, + "Encumbrance": null, + "EstimatedValue": { + "BalloonRVAmount": null, + "BalloonRVInputPattern": null, + "BalloonRVPercent": null, + "EstimateBasis": "Applicant Estimate", + "EstimatedCGTLiability": null, + "MinimumResidualValue": null, + "TaxDepreciationMethod": null, + "TaxDepreciationRate": null, + "Value": 7856.51, + "ValuedDate": null + }, + "EstimatedValues": null, + "FinancialAsset": { "AccountNumber": { + "AccountName": "GXXXXXXXXXXp", + "AccountNumber": "44XXXXXX1", + "AccountTypeName": null, + "BranchDomicile": null, + "BSB": "XXXXXX", "FinancialInstitution": "Other", - "OtherFIName": "Adelaide Bank" - }, - "ContinuingRepayment": [ + "OtherFIName": "National Australia Bank", + "SequenceNumber": null + }, + "Description": "National Australia Bank #3361", + "ExtraFeature": null, + "Shares": null, + "TransferOwnershipToSMSF": null, + "Type": "Savings Account" + }, + "FinancialTransactionType": null, + "FundsDisbursement": null, + "HospitalityAndLeisure": null, + "Insurance": null, + "ITAndAVEquipment": null, + "LenderAssessmentReason": null, + "LenderAssessmentRequired": null, + "Licence": null, + "MaterialsHandlingAndLifting": null, + "MedicalEquipment": null, + "MobileComputing": null, + "MotorVehicle": null, + "OfficeEquipment": null, + "OtherAsset": null, + "OwnershipDocument": null, + "PercentOwned": { + "Owner": [ { - "LoanPaymentScheduleType": "Even Total Payments", - "PaymentType": "Principal and Interest", - "TaxDeductible": true - } - ], - "OriginalTerm": { - "PaymentType": "Principal and Interest", - "PaymentTypeUnits": "Years", - "TotalTermDuration": 29 - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 50, - "x_Party": "Family_8477374" - }, - { - "Percent": 50, - "x_Party": "Family_8477375" - } - ] - }, - "Repayment": [ + "Percent": 100.0, + "SequenceNumber": null, + "X_Party": "Family_9901852" + }, { - "LoanPaymentScheduleType": "Even Total Payments", - "PaymentType": "Principal and Interest", - "Regular": true, - "RepaymentAmount": 5199, - "RepaymentFrequency": "Monthly", - "TaxDeductible": true + "Percent": 0.0, + "SequenceNumber": null, + "X_Party": "Family_9954969" } ], - "Security": [ - { - "Priority": "First Mortgage", - "x_Security": "FinancialInfo_14381339" - } - ] - } - ], - "LoanDetails": [ - { - "AmountRequested": 620000, - "LoanType": "Term Loan", - "LVR": 77.5, - "Secured": "true", - "StatementCycle": "Monthly", - "TaxDeductible": false, - "UniqueID": "LoanStructure_6717099", - "Borrowers": { - "Proportions": "Equal", - "Owner": [ - { - "Percent": 50, - "x_Party": "Family_8477374" - }, - { - "Percent": 50, - "x_Party": "Family_8477375" - } - ] - }, - "FeaturesSelected": { - "ChequeBook": false, - "CreditCard": false, - "RateLock": false, - "Redraw": true - }, - "LendingPurpose": [ + "Proportions": "Specified" + }, + "PlantEquipmentAndIndustrial": null, + "PPSR": null, + "PrimarySecurity": null, + "SequenceNumber": null, + "ToBeReduced": null, + "ToBeSold": false, + "ToBeUsedAsSecurity": false, + "ToolsOfTrade": null, + "Transaction": null, + "Type": "Financial Asset", + "UniqueID": "FinancialInfo_15481954", + "Verified": null, + "Watercraft": null, + "WaterRights": null, + "X_CustomerTransactionAnalysis": null, + "X_VendorTaxInvoice": null + }, + { + "AgriculturalAsset": null, + "Aircraft": null, + "AmountToBeReduced": null, + "AssetReferenceNumber": null, + "Business": null, + "CleaningEquipment": null, + "ContractDetails": null, + "ContractOfSale": null, + "EarthMovingMiningAndConstruction": null, + "Encumbered": null, + "Encumbrance": null, + "EstimatedValue": { + "BalloonRVAmount": null, + "BalloonRVInputPattern": null, + "BalloonRVPercent": null, + "EstimateBasis": "Applicant Estimate", + "EstimatedCGTLiability": null, + "MinimumResidualValue": null, + "TaxDepreciationMethod": null, + "TaxDepreciationRate": null, + "Value": 76154.63, + "ValuedDate": null + }, + "EstimatedValues": null, + "FinancialAsset": { + "AccountNumber": { + "AccountName": "GXXXXXXXXXXp", + "AccountNumber": "25XXXXXX4", + "AccountTypeName": null, + "BranchDomicile": null, + "BSB": "XXXXXX", + "FinancialInstitution": "Other", + "OtherFIName": "National Australia Bank", + "SequenceNumber": null + }, + "Description": "National Australia Bank #9694", + "ExtraFeature": null, + "Shares": null, + "TransferOwnershipToSMSF": null, + "Type": "Savings Account" + }, + "FinancialTransactionType": null, + "FundsDisbursement": null, + "HospitalityAndLeisure": null, + "Insurance": null, + "ITAndAVEquipment": null, + "LenderAssessmentReason": null, + "LenderAssessmentRequired": null, + "Licence": null, + "MaterialsHandlingAndLifting": null, + "MedicalEquipment": null, + "MobileComputing": null, + "MotorVehicle": null, + "OfficeEquipment": null, + "OtherAsset": null, + "OwnershipDocument": null, + "PercentOwned": { + "Owner": [ { - "IncludesRefinancing": false + "Percent": 100.0, + "SequenceNumber": null, + "X_Party": "Family_9901852" }, { - "ABSLendingPurpose": "Purchase a Property", - "ABSLendingPurposeCode": "ABS-129", - "PurposeAmount": 620000 + "Percent": 0.0, + "SequenceNumber": null, + "X_Party": "Family_9954969" } ], - "LoanPurpose": { - "PrimaryPurpose": "Owner Occupied" - }, - "ProposedRepayment": { - "RegularRepayment": [ - { - "Amount": 0, - "Frequency": "Monthly" - } - ] - }, - "Term": { - "PaymentType": "Principal and Interest", - "TotalTermDuration": 30, - "TotalTermType": "Total Term", - "TotalTermUnits": "Years" - } - } - ], - "NonRealEstateAsset": [ - { - "ToBeSold": false, - "ToBeUsedAsSecurity": false, - "Type": "Motor Vehicle and Transport", - "UniqueID": "FinancialInfo_12811548", - "EstimatedValue": { - "EstimateBasis": "Applicant Estimate", - "Value": 15000 - }, - "MotorVehicle": { - "Age": 9, - "Description": "2015 Hyundai (Luxury Car)", - "Make": "Hyundai", - "Type": "Car", - "Year": "2015" - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 50, - "x_Party": "Family_8477374" - }, - { - "Percent": 50, - "x_Party": "Family_8477375" - } - ] - } + "Proportions": "Specified" }, - { - "ToBeSold": false, - "ToBeUsedAsSecurity": false, - "Type": "Financial Asset", - "UniqueID": "FinancialInfo_12811552", - "EstimatedValue": { - "EstimateBasis": "Applicant Estimate", - "Value": 55000 - }, - "FinancialAsset": { - "Description": "ANZ Australia", - "Type": "Savings Account", - "AccountNumber": { - "FinancialInstitution": "Other", - "OtherFIName": "ANZ Australia" - } - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 50, - "x_Party": "Family_8477374" - }, - { - "Percent": 50, - "x_Party": "Family_8477375" - } - ] - } - }, - { - "ToBeSold": false, - "ToBeUsedAsSecurity": false, - "Type": "Financial Asset", - "UniqueID": "FinancialInfo_12811556", - "EstimatedValue": { - "EstimateBasis": "Applicant Estimate", - "Value": 80000 - }, - "FinancialAsset": { - "Description": "", - "Type": "Superannuation", - "AccountNumber": { - "FinancialInstitution": "Other", - "OtherFIName": "" - } - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 100, - "x_Party": "Family_8477375" - }, - { - "Percent": 0, - "x_Party": "Family_8477374" - } - ] - } + "PlantEquipmentAndIndustrial": null, + "PPSR": null, + "PrimarySecurity": null, + "SequenceNumber": null, + "ToBeReduced": null, + "ToBeSold": false, + "ToBeUsedAsSecurity": false, + "ToolsOfTrade": null, + "Transaction": null, + "Type": "Financial Asset", + "UniqueID": "FinancialInfo_15481957", + "Verified": null, + "Watercraft": null, + "WaterRights": null, + "X_CustomerTransactionAnalysis": null, + "X_VendorTaxInvoice": null + }, + { + "AgriculturalAsset": null, + "Aircraft": null, + "AmountToBeReduced": null, + "AssetReferenceNumber": null, + "Business": null, + "CleaningEquipment": null, + "ContractDetails": null, + "ContractOfSale": null, + "EarthMovingMiningAndConstruction": null, + "Encumbered": null, + "Encumbrance": null, + "EstimatedValue": { + "BalloonRVAmount": null, + "BalloonRVInputPattern": null, + "BalloonRVPercent": null, + "EstimateBasis": "Applicant Estimate", + "EstimatedCGTLiability": null, + "MinimumResidualValue": null, + "TaxDepreciationMethod": null, + "TaxDepreciationRate": null, + "Value": 959.62, + "ValuedDate": null }, - { - "ToBeSold": false, - "ToBeUsedAsSecurity": false, - "Type": "Financial Asset", - "UniqueID": "FinancialInfo_12811554", - "EstimatedValue": { - "EstimateBasis": "Applicant Estimate", - "Value": 60000 - }, - "FinancialAsset": { - "Description": "", - "Type": "Superannuation", - "AccountNumber": { - "FinancialInstitution": "Other", - "OtherFIName": "" - } - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 100, - "x_Party": "Family_8477374" - }, - { - "Percent": 0, - "x_Party": "Family_8477375" - } - ] - } + "EstimatedValues": null, + "FinancialAsset": { + "AccountNumber": { + "AccountName": "KXXXXXXXXXXXe", + "AccountNumber": "76XXX5", + "AccountTypeName": null, + "BranchDomicile": null, + "BSB": "XXXXXX", + "FinancialInstitution": "Westpac Bank", + "OtherFIName": "Westpac", + "SequenceNumber": null + }, + "Description": "Westpac #4715", + "ExtraFeature": null, + "Shares": null, + "TransferOwnershipToSMSF": null, + "Type": "Savings Account" }, - { - "ToBeSold": false, - "ToBeUsedAsSecurity": false, - "Type": "Other", - "UniqueID": "FinancialInfo_15254658", - "EstimatedValue": { - "EstimateBasis": "Applicant Estimate", - "Value": 150000 - }, - "Insurance": [ + "FinancialTransactionType": null, + "FundsDisbursement": null, + "HospitalityAndLeisure": null, + "Insurance": null, + "ITAndAVEquipment": null, + "LenderAssessmentReason": null, + "LenderAssessmentRequired": null, + "Licence": null, + "MaterialsHandlingAndLifting": null, + "MedicalEquipment": null, + "MobileComputing": null, + "MotorVehicle": null, + "OfficeEquipment": null, + "OtherAsset": null, + "OwnershipDocument": null, + "PercentOwned": { + "Owner": [ + { + "Percent": 100.0, + "SequenceNumber": null, + "X_Party": "Family_9954969" + }, { - "x_Insurance": "Insurance_15254658" + "Percent": 0.0, + "SequenceNumber": null, + "X_Party": "Family_9901852" } ], - "OtherAsset": { - "Description": "Life Insurance", - "Type": "Other" - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 50, - "x_Party": "Family_8477374" - }, - { - "Percent": 50, - "x_Party": "Family_8477375" - } - ] - } - } - ], - "Overview": { - "ApplicationType": "Loan", - "BrokerApplicationReferenceNumber": "5542468", - "IsBridgingFinance": false + "Proportions": "Specified" + }, + "PlantEquipmentAndIndustrial": null, + "PPSR": null, + "PrimarySecurity": null, + "SequenceNumber": null, + "ToBeReduced": null, + "ToBeSold": false, + "ToBeUsedAsSecurity": false, + "ToolsOfTrade": null, + "Transaction": null, + "Type": "Financial Asset", + "UniqueID": "FinancialInfo_15635444", + "Verified": null, + "Watercraft": null, + "WaterRights": null, + "X_CustomerTransactionAnalysis": null, + "X_VendorTaxInvoice": null }, - "PersonApplicant": [ - { - "ApplicantType": "Borrower", - "Citizenship": "AU", - "DateOfBirth": "1986-06-06", - "FirstHomeBuyer": false, - "Gender": "Female", - "HasPreviousName": false, - "IsExistingCustomer": false, - "MaritalStatus": "Single", - "MonthsInCurrentProfession": 3, - "MothersMaidenName": "", - "PrimaryApplicant": true, - "PrincipalForeignResidence": "AU", - "ResidencyStatus": "Permanently in Australia", - "UnderstandApplication": true, - "UniqueID": "Family_8477374", - "x_Household": "Family_7102929", - "YearsInCurrentProfession": 6, - "Contact": { - "PreferredContact": "Mobile", - "EmailAddress": [ - { - "Email": "testEmail@testcompany.com", - "EmailType": "Home" - } - ], - "Mobile": { - "AustralianDialingCode": "04", - "CountryCode": "61", - "Number": "0499999999" - }, - "PostSettlementAddress": { - "HousingStatus": "Own Home", - "x_ResidentialAddress": "Address_13627498" - }, - "PreviousAddress": { - "EndDate": "2018-07-01", - "HousingStatus": "Own Home", - "StartDate": "2011-07-01", - "x_ResidentialAddress": "Address_11168887", - "Duration": { - "Length": 84, - "Units": "Months" - } - } - }, - "Employment": [ + { + "AgriculturalAsset": null, + "Aircraft": null, + "AmountToBeReduced": null, + "AssetReferenceNumber": null, + "Business": null, + "CleaningEquipment": null, + "ContractDetails": null, + "ContractOfSale": null, + "EarthMovingMiningAndConstruction": null, + "Encumbered": null, + "Encumbrance": null, + "EstimatedValue": { + "BalloonRVAmount": null, + "BalloonRVInputPattern": null, + "BalloonRVPercent": null, + "EstimateBasis": null, + "EstimatedCGTLiability": null, + "MinimumResidualValue": null, + "TaxDepreciationMethod": null, + "TaxDepreciationRate": null, + "Value": 212265.0, + "ValuedDate": null + }, + "EstimatedValues": null, + "FinancialAsset": { + "AccountNumber": { + "AccountName": null, + "AccountNumber": null, + "AccountTypeName": null, + "BranchDomicile": null, + "BSB": null, + "FinancialInstitution": "Other", + "OtherFIName": "", + "SequenceNumber": null + }, + "Description": "", + "ExtraFeature": null, + "Shares": null, + "TransferOwnershipToSMSF": null, + "Type": "Superannuation" + }, + "FinancialTransactionType": null, + "FundsDisbursement": null, + "HospitalityAndLeisure": null, + "Insurance": null, + "ITAndAVEquipment": null, + "LenderAssessmentReason": null, + "LenderAssessmentRequired": null, + "Licence": null, + "MaterialsHandlingAndLifting": null, + "MedicalEquipment": null, + "MobileComputing": null, + "MotorVehicle": null, + "OfficeEquipment": null, + "OtherAsset": null, + "OwnershipDocument": null, + "PercentOwned": { + "Owner": [ { - "PAYG": { - "Basis": "Full Time", - "Occupation": "Testing 2", - "OnProbation": false, - "PositionTitle": "Testing 2", - "StartDate": "2018-04-10", - "Status": "Primary", - "UniqueID": "Employment_5283447", - "x_Employer": "EmployerCompany_5283447", - "Duration": { - "Length": 75, - "Units": "Months" - }, - "Income": { - "GrossRegularOvertimeAmountConditionOfEmployment": false, - "GrossSalaryAmount": 90000, - "GrossSalaryFrequency": "Yearly", - "WorkAllowanceAmountConditionOfEmployment": false - } - } + "Percent": 50.0, + "SequenceNumber": null, + "X_Party": "Family_9901852" }, { - "PAYG": { - "Basis": "Full Time", - "EndDate": "2018-03-19", - "Occupation": "Testing", - "OnProbation": false, - "PositionTitle": "Testing", - "StartDate": "2012-07-07", - "Status": "Previous", - "UniqueID": "Employment_5283440", - "x_Employer": "EmployerCompany_5283440", - "Duration": { - "Length": 68, - "Units": "Months" - }, - "Income": { - "GrossRegularOvertimeAmountConditionOfEmployment": false, - "GrossSalaryAmount": 80000, - "GrossSalaryFrequency": "Yearly", - "WorkAllowanceAmountConditionOfEmployment": false - } - } + "Percent": 50.0, + "SequenceNumber": null, + "X_Party": "Family_9954969" } ], - "PersonName": { - "FirstName": "Wanda", - "KnownAs": "Wanda", - "MiddleNames": "", - "NameTitle": "Mrs", - "Surname": "Maximoff" - }, - "Privacy": { - "AllowCreditBureauIdentityCheck": true, - "AllowCreditCheck": true, - "AllowElectronicIdentityCheck": true, - "PrivacyActConsentSigned": true - }, - "ProofOfIdentity": [ - { - "CertifiedCopy": false, - "CountryOfIssue": "AU", - "DocumentNumber": "", - "DocumentType": "Other", - "ExpiryDate": "2027-09-23", - "IssuingOrganisation": "", - "MiddleNameOnDocument": "Wanda", - "NameOnDocument": "Wanda Maximoff", - "Original": false, - "OtherDescription": "Drivers Licence Australia", - "PlaceOfIssue": "" - } - ], - "ResponsibleLending": { - "AnticipatedChanges": false - } + "Proportions": "Specified" }, - { - "ApplicantType": "Borrower", - "Citizenship": "AU", - "DateOfBirth": "1986-01-01", - "FirstHomeBuyer": false, - "Gender": "Male", - "HasPreviousName": false, - "IsExistingCustomer": false, - "MaritalStatus": "Single", - "MothersMaidenName": "", - "PrimaryApplicant": false, - "PrincipalForeignResidence": "AU", - "ResidencyStatus": "Permanently in Australia", - "UnderstandApplication": true, - "UniqueID": "Family_8477375", - "x_Household": "Family_7102929", - "YearsInCurrentProfession": 8, - "Contact": { - "PreferredContact": "Mobile", - "EmailAddress": [ - { - "Email": "testBroker@testCompany.com", - "EmailType": "Home" - } - ], - "Mobile": { - "AustralianDialingCode": "04", - "CountryCode": "61", - "Number": "0488888888" - }, - "PostSettlementAddress": { - "HousingStatus": "Own Home", - "x_ResidentialAddress": "Address_13627498" + "PlantEquipmentAndIndustrial": null, + "PPSR": null, + "PrimarySecurity": null, + "SequenceNumber": null, + "ToBeReduced": null, + "ToBeSold": false, + "ToBeUsedAsSecurity": false, + "ToolsOfTrade": null, + "Transaction": null, + "Type": "Financial Asset", + "UniqueID": "FinancialInfo_15474427", + "Verified": null, + "Watercraft": null, + "WaterRights": null, + "X_CustomerTransactionAnalysis": null, + "X_VendorTaxInvoice": null + }, + { + "AgriculturalAsset": null, + "Aircraft": null, + "AmountToBeReduced": null, + "AssetReferenceNumber": null, + "Business": null, + "CleaningEquipment": null, + "ContractDetails": null, + "ContractOfSale": null, + "EarthMovingMiningAndConstruction": null, + "Encumbered": null, + "Encumbrance": null, + "EstimatedValue": { + "BalloonRVAmount": null, + "BalloonRVInputPattern": null, + "BalloonRVPercent": null, + "EstimateBasis": "Applicant Estimate", + "EstimatedCGTLiability": null, + "MinimumResidualValue": null, + "TaxDepreciationMethod": null, + "TaxDepreciationRate": null, + "Value": 95000.0, + "ValuedDate": null + }, + "EstimatedValues": null, + "FinancialAsset": null, + "FinancialTransactionType": null, + "FundsDisbursement": null, + "HospitalityAndLeisure": null, + "Insurance": null, + "ITAndAVEquipment": null, + "LenderAssessmentReason": null, + "LenderAssessmentRequired": null, + "Licence": null, + "MaterialsHandlingAndLifting": null, + "MedicalEquipment": null, + "MobileComputing": null, + "MotorVehicle": null, + "OfficeEquipment": null, + "OtherAsset": { + "Description": "", + "ExtraFeature": null, + "Type": "Home Contents" + }, + "OwnershipDocument": null, + "PercentOwned": { + "Owner": [ + { + "Percent": 50.0, + "SequenceNumber": null, + "X_Party": "Family_9901852" }, - "PreviousAddress": { - "EndDate": "2018-07-01", - "HousingStatus": "Own Home", - "StartDate": "2011-07-01", - "x_ResidentialAddress": "Address_11168887", - "Duration": { - "Length": 84, - "Units": "Months" - } - } - }, - "Employment": [ { - "PAYG": { - "Basis": "Full Time", - "Occupation": "Senior DevOps Engineer", - "OnProbation": false, - "PositionTitle": "Senior DevOps Engineer", - "StartDate": "2016-08-02", - "Status": "Primary", - "UniqueID": "Employment_4688212", - "x_Employer": "EmployerCompany_4688212", - "Duration": { - "Length": 96, - "Units": "Months" - }, - "Income": { - "GrossRegularOvertimeAmountConditionOfEmployment": false, - "GrossSalaryAmount": 5769, - "GrossSalaryFrequency": "Fortnightly", - "WorkAllowanceAmountConditionOfEmployment": false - } - } + "Percent": 50.0, + "SequenceNumber": null, + "X_Party": "Family_9954969" } ], - "PersonName": { - "FirstName": "Vision", - "KnownAs": "Vision", - "MiddleNames": "", - "NameTitle": "Mr", - "Surname": "Vis" - }, - "Privacy": { - "AllowCreditBureauIdentityCheck": true, - "AllowCreditCheck": true, - "AllowElectronicIdentityCheck": true, - "PrivacyActConsentSigned": true - }, - "ProofOfIdentity": [ + "Proportions": "Specified" + }, + "PlantEquipmentAndIndustrial": null, + "PPSR": null, + "PrimarySecurity": null, + "SequenceNumber": null, + "ToBeReduced": null, + "ToBeSold": false, + "ToBeUsedAsSecurity": false, + "ToolsOfTrade": null, + "Transaction": null, + "Type": "Other", + "UniqueID": "FinancialInfo_15514631", + "Verified": null, + "Watercraft": null, + "WaterRights": null, + "X_CustomerTransactionAnalysis": null, + "X_VendorTaxInvoice": null + }, + { + "AgriculturalAsset": null, + "Aircraft": null, + "AmountToBeReduced": null, + "AssetReferenceNumber": null, + "Business": null, + "CleaningEquipment": null, + "ContractDetails": null, + "ContractOfSale": null, + "EarthMovingMiningAndConstruction": null, + "Encumbered": null, + "Encumbrance": null, + "EstimatedValue": { + "BalloonRVAmount": null, + "BalloonRVInputPattern": null, + "BalloonRVPercent": null, + "EstimateBasis": "Applicant Estimate", + "EstimatedCGTLiability": null, + "MinimumResidualValue": null, + "TaxDepreciationMethod": null, + "TaxDepreciationRate": null, + "Value": 100000.0, + "ValuedDate": null + }, + "EstimatedValues": null, + "FinancialAsset": null, + "FinancialTransactionType": null, + "FundsDisbursement": null, + "HospitalityAndLeisure": null, + "Insurance": null, + "ITAndAVEquipment": null, + "LenderAssessmentReason": null, + "LenderAssessmentRequired": null, + "Licence": null, + "MaterialsHandlingAndLifting": null, + "MedicalEquipment": null, + "MobileComputing": null, + "MotorVehicle": null, + "OfficeEquipment": null, + "OtherAsset": { + "Description": "", + "ExtraFeature": null, + "Type": "Other" + }, + "OwnershipDocument": null, + "PercentOwned": { + "Owner": [ { - "CertifiedCopy": false, - "CountryOfIssue": "AU", - "DocumentNumber": "", - "DocumentType": "Other", - "ExpiryDate": "2027-09-22", - "IssuingOrganisation": "", - "MiddleNameOnDocument": "ion", - "NameOnDocument": "Vision Vis", - "Original": false, - "OtherDescription": "Drivers Licence Australia", - "PlaceOfIssue": "" - } - ], - "ResponsibleLending": { - "AnticipatedChanges": false - } - } - ], - "RealEstateAsset": [ - { - "ApprovalInPrinciple": false, - "Occupancy": "Owner Primary", - "PrimaryPurpose": "Owner Occupied", - "PrimaryUsage": "Residential", - "ToBeUsedAsSecurity": false, - "Transaction": "Owns", - "UniqueID": "FinancialInfo_15708480", - "x_Address": "Address_13531793", - "ContractDetails": {}, - "Encumbrance": [ + "Percent": 50.0, + "SequenceNumber": null, + "X_Party": "Family_9901852" + }, { - "EncumbranceType": "Mortgage", - "Priority": "First Mortgage", - "UniqueID": "FinancialLiability_10219681" + "Percent": 50.0, + "SequenceNumber": null, + "X_Party": "Family_9954969" } ], - "EstimatedValue": { - "EstimateBasis": "Applicant Estimate", - "Value": 453000 - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 100, - "x_Party": "Family_8477374" - }, - { - "Percent": 0, - "x_Party": "Family_8477375" - } - ] - }, - "PropertyType": { - "PropertyTypeName": "Fully Detached House" - }, - "Residential": { - "Type": "Fully Detached House" - }, - "Zoning": { - "Type": "Residential" - } + "Proportions": "Specified" }, - { - "ApprovalInPrinciple": false, - "Occupancy": "Owner Primary", - "PrimaryPurpose": "Investment", - "PrimaryUsage": "Residential", - "ToBeUsedAsSecurity": false, - "Transaction": "Owns", - "UniqueID": "FinancialInfo_13162992", - "x_Address": "Address_11168887", - "ContractDetails": {}, - "Encumbrance": [ + "PlantEquipmentAndIndustrial": null, + "PPSR": null, + "PrimarySecurity": null, + "SequenceNumber": null, + "ToBeReduced": null, + "ToBeSold": false, + "ToBeUsedAsSecurity": false, + "ToolsOfTrade": null, + "Transaction": null, + "Type": "Other", + "UniqueID": "FinancialInfo_15640674", + "Verified": null, + "Watercraft": null, + "WaterRights": null, + "X_CustomerTransactionAnalysis": null, + "X_VendorTaxInvoice": null + } + ], + "OtherExpense": [], + "OtherIncome": [ + { + "Amount": 5000.0, + "BenefitsDescription": null, + "Country": null, + "Description": "", + "EndDate": null, + "Frequency": "Monthly", + "GovernmentBenefitsType": null, + "GSTAmount": null, + "IncomeStatusOnOrBeforeSettlement": null, + "IncomeVerification": null, + "IsTaxable": true, + "NetAmount": null, + "NetAmountFrequency": null, + "NumberOfBoarders": null, + "NumberOfRepeats": null, + "PercentOwned": { + "Owner": [ { - "EncumbranceType": "Mortgage", - "Priority": "First Mortgage", - "UniqueID": "FinancialLiability_7966108" + "Percent": 100.0, + "SequenceNumber": null, + "X_Party": "Family_9954969" } ], - "EstimatedValue": { - "EstimateBasis": "Certified Valuation", - "Value": 740000 - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 100, - "x_Party": "Family_8477375" - }, - { - "Percent": 0, - "x_Party": "Family_8477374" - } - ] - }, - "PropertyType": { - "PropertyTypeName": "Fully Detached House" - }, - "Residential": { - "Type": "Fully Detached House" - }, - "Zoning": { - "Type": "Residential" - } - }, - { - "ApprovalInPrinciple": false, - "Occupancy": "Owner Primary", - "PrimaryPurpose": "Owner Occupied", - "PrimaryUsage": "Residential", - "ToBeUsedAsSecurity": false, - "Transaction": "Owns", - "UniqueID": "FinancialInfo_13790701", - "x_Address": "Address_8247579", - "ContractDetails": {}, - "EstimatedValue": { - "EstimateBasis": "Certified Valuation", - "Value": 1312908 - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 50, - "x_Party": "Family_8477374" - }, - { - "Percent": 50, - "x_Party": "Family_8477375" - } - ] - }, - "PropertyType": { - "PropertyTypeName": "Fully Detached House" - }, - "Residential": { - "Type": "Fully Detached House" - }, - "Zoning": { - "Type": "Residential" - } + "Proportions": "Specified" }, - { - "ApprovalInPrinciple": false, - "Occupancy": "Owner Primary", - "PrimaryPurpose": "Investment", - "PrimaryUsage": "Residential", - "ToBeUsedAsSecurity": false, - "Transaction": "Owns", - "UniqueID": "FinancialInfo_14381322", - "x_Address": "Address_11087379", - "ContractDetails": {}, - "Encumbrance": [ + "PreviousYearAmount": null, + "PrimaryForeignCurrency": null, + "ProofCode": null, + "ProofSighted": null, + "SequenceNumber": null, + "StartDate": null, + "Taxed": null, + "Type": "Dividends", + "UniqueID": "FinancialInfo_6103220", + "X_Asset": null + } + ], + "Overview": { + "ApplicationSubjectToConditionsExpiryDate": null, + "ApplicationSubjectToConditionsIssueDate": null, + "ApplicationType": "Loan", + "ApprovalInPrincipleExpiryDate": null, + "ApprovalInPrincipleIssueDate": null, + "BranchDomicile": null, + "BranchSign": null, + "BranchStamp": null, + "BridgingFinance": null, + "BrokerApplicationReferenceNumber": "5578728", + "BrokerApplicationSequenceNumber": null, + "CombinationLoan": null, + "CreditDecisionEngineReferenceNumber": null, + "CreditDecisionEngineSequenceNumber": null, + "DocType": null, + "ExistingCustomer": null, + "ExitStrategySpecified": null, + "ExpectedSettlementDate": null, + "FastRefinance": null, + "HasSpecialCircumstances": null, + "IsBridgingFinance": false, + "LenderApplicationReferenceNumber": null, + "LenderPreapprovalReferenceNumber": null, + "LetterOfOfferExpiryDate": null, + "LetterOfOfferIssueDate": null, + "LinkedApplication": null, + "LinkedApplicationDetails": null, + "LinkedCommercialApplication": null, + "LodgementReferenceNumber": null, + "LodgementSequenceNumber": null, + "MarketingCampaign": null, + "PolicyAssessmentEffectiveDate": null, + "PricingDetails": null, + "PrivateBanking": null, + "ProPack": null, + "QuoteApprovalCode": null, + "Signature": null, + "SimpleRefinance": null, + "SMSFLoan": null, + "Urgent": null, + "UrgentDetails": null, + "X_MainContactPoint": null, + "X_Solicitor": null + }, + "PersonApplicant": [ + { + "AboriginalOrTorresStraitIslander": null, + "AccountsPreventedFromOverdraw": null, + "AdditionalCitizenship": null, + "AdditionalForeignResidency": null, + "ApplicantType": "Borrower", + "Citizenship": "AU", + "CompanyDirector": null, + "ConcessionCard": null, + "Contact": { + "CurrentAddress": { + "Duration": { + "Length": 0, + "Units": "Months" + }, + "HousingStatus": "Own Home", + "OtherHousingStatusDescription": null, + "StartDate": null, + "X_Landlord": null, + "X_MailingAddress": "Address_10028882", + "X_ResidentialAddress": "Address_65702" + }, + "EmailAddress": [ { - "EncumbranceType": "Mortgage", - "Priority": "First Mortgage", - "UniqueID": "FinancialLiability_9060327" + "Email": "vmssw@sovuxtiivgracdwccclswbntsrs.kn", + "EmailType": "Home", + "SequenceNumber": null, + "UniqueID": null } ], - "EstimatedValue": { - "EstimateBasis": "Applicant Estimate", - "Value": 400000 - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 100, - "x_Party": "Family_8477375" + "FaxNumber": null, + "HomePhone": null, + "Mobile": { + "CountryCode": "61", + "DialingCode": "04", + "Number": "1648410042", + "OverseasDialingCode": null + }, + "PostSettlementAddress": null, + "PreferredContact": "Mobile", + "PreviousAddress": { + "Duration": { + "Length": 25, + "Units": "Months" + }, + "EndDate": "2023-03-01T00:00:00", + "HousingStatus": "Renting", + "OtherHousingStatusDescription": null, + "StartDate": "2021-02-01T00:00:00", + "X_ResidentialAddress": "Address_13683783" + }, + "PriorAddress": null, + "WorkPhone": null + }, + "CountryOfBirth": null, + "CreditHistory": null, + "CreditStatus": null, + "CRMReferenceNumber": null, + "CustomerTypeCode": null, + "CustomerTypeDescription": null, + "DateOfBirth": "1967-06-01T00:00:00", + "DateOfCitizenship": null, + "DirectorOfNonBorrowingCompany": null, + "DiscussedWithBeneficiaries": null, + "DocumentationInstructions": null, + "EligibleForFHOG": null, + "EligibleForKaingaOra": null, + "Employment": [ + { + "ForeignEmployed": null, + "NotEmployed": null, + "PAY": null, + "SelfEmployed": { + "ANZSCOOccupationCode": null, + "AverageHoursPerWeek": null, + "Basis": "Full Time", + "Business": { + "BIC": null, + "BICCode": null, + "CustomIndustryCode": null, + "GICSCode": null, + "Industry": "PXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXD", + "IndustryCode": null, + "IsAFranchise": null, + "MainBusinessActivity": null, + "NumberOfEmployees": null, + "NumberOfLocations": null, + "OwnPremises": null, + "StartDate": "2021-09-28T00:00:00" }, - { - "Percent": 0, - "x_Party": "Family_8477374" - } - ] - }, - "PropertyType": { - "PropertyTypeName": "Std Apartment" - }, - "Residential": { - "Type": "Apartment Unit Flat" + "BusinessIncome": null, + "BusinessIncomePrevious": null, + "BusinessIncomePrior": null, + "BusinessIncomeRecent": { + "Addback": null, + "EndDate": null, + "ForeignSourcedIncome": null, + "HasForeignSourcedIncome": null, + "IncomeGreaterThanPreviousYear": null, + "ProfitAfterTax": null, + "ProfitBeforeTax": 200000.0, + "ProofCode": null, + "ProofSighted": null, + "StartDate": "2021-09-28T00:00:00", + "TaxOfficeAssessments": null, + "X_Accountant": null + }, + "BusinessIncomeYearToDate": null, + "DeclaredIncome": null, + "Duration": { + "Length": 35, + "Units": "Months" + }, + "EndDate": null, + "FinancialAnalysis": null, + "IncomeDocumentationType": null, + "IncomeStatusOnOrBeforeSettlement": null, + "Occupation": "Director", + "OccupationCode": null, + "SequenceNumber": null, + "ServiceabilityCalculationYears": null, + "StartDate": "2021-09-28T00:00:00", + "Status": "Primary", + "UniqueID": "Employment_5554456", + "X_Accountant": null, + "X_Employer": "EmployerCompany_5554456" + }, + "SequenceNumber": null }, - "Zoning": { - "Type": "Residential" + { + "ForeignEmployed": null, + "NotEmployed": null, + "PAY": { + "ANZSCOOccupationCode": null, + "ATOIncomeStatement": null, + "AverageHoursPerWeek": null, + "Basis": "Full Time", + "BIC": null, + "BICCode": null, + "CompanyCar": null, + "CustomIndustryCode": null, + "Duration": { + "Length": 61, + "Units": "Months" + }, + "EmployerType": null, + "EndDate": "2021-09-23T00:00:00", + "EssentialServiceProvider": null, + "FIFODIDO": null, + "GICSCode": null, + "Income": { + "BonusAmount": null, + "BonusFrequency": null, + "CarAllowanceAmount": null, + "CarAllowanceFrequency": null, + "CommissionAmount": null, + "CommissionFrequency": null, + "GrossRegularOvertimeAmount": null, + "GrossRegularOvertimeAmountConditionOfEmployment": false, + "GrossRegularOvertimeFrequency": null, + "GrossSalaryAmount": null, + "GrossSalaryFrequency": null, + "NetBonusAmount": null, + "NetBonusFrequency": null, + "NetCarAllowanceAmount": null, + "NetCarAllowanceFrequency": null, + "NetCommissionAmount": null, + "NetCommissionFrequency": null, + "NetRegularOvertimeAmount": null, + "NetRegularOvertimeFrequency": null, + "NetSalaryAmount": null, + "NetSalaryFrequency": null, + "NetWorkAllowanceAmount": null, + "NetWorkAllowanceFrequency": null, + "NetWorkersCompensationAmount": null, + "NetWorkersCompensationFrequency": null, + "OtherFringeBenefitAmount": null, + "OtherFringeBenefitFrequency": null, + "PermanentAllowanceAmount": null, + "PermanentAllowanceFrequency": null, + "ProofCode": null, + "ProofSighted": null, + "WorkAllowanceAmount": null, + "WorkAllowanceAmountConditionOfEmployment": false, + "WorkAllowanceFrequency": null, + "WorkersCompensationAmount": null, + "WorkersCompensationFrequency": null + }, + "IncomeStatusOnOrBeforeSettlement": null, + "Industry": null, + "IndustryCode": null, + "KiwiSaver": null, + "KiwiSaverPercentage": null, + "MainBusinessActivity": null, + "Occupation": "Construction Site manager", + "OccupationCode": null, + "OnProbation": false, + "PositionTitle": "Construction Site manager", + "ProbationDateEnds": null, + "ProbationDateStarts": null, + "RelatedEmployer": null, + "SalaryTransactionDescription": null, + "SequenceNumber": null, + "StartDate": "2016-08-18T00:00:00", + "Status": "Previous", + "UniqueID": "Employment_5554443", + "X_Employer": "EmployerCompany_5554443" + }, + "SelfEmployed": null, + "SequenceNumber": null } + ], + "ExistingCustomer": null, + "FinancialSituationCheck": null, + "FirstHomeBuyer": false, + "FirstPropertyBuyer": null, + "ForeignTaxAssociation": null, + "Gender": "Male", + "GovernmentGuaranteeScheme": null, + "HasAdditionalCitizenship": null, + "HasAppliedForCitizenship": null, + "HasAppliedForPermanentResidencyVisa": null, + "HasAWill": null, + "HasPreviousName": false, + "IdentityCheck": null, + "Immigrant": null, + "ImmigrationDate": null, + "IndependentAdvice": null, + "IndependentFinancialAdvice": null, + "IndependentLegalAdvice": null, + "Insurance": null, + "IRDNumber": null, + "IsExistingCustomer": false, + "IsLenderStaff": null, + "JointNomination": null, + "JointStatementOfPosition": null, + "LocalAgentOfForeignCompany": null, + "LocalTaxResident": null, + "LOSReferenceNumber": null, + "MaritalStatus": "De Facto", + "MaritalStatusDetails": null, + "MonthsInCurrentProfession": 11.0, + "MothersMaidenName": "BXXXXXXy", + "NextOfKin": null, + "NominatedBorrower": null, + "NonBorrowingCompany": null, + "OnBehalfOfUnincorporatedAssociation": null, + "Pensioner": null, + "PermanentResidencyDate": null, + "PersonName": { + "FirstName": "Grant", + "KnownAs": "GXXXt", + "MiddleNames": "DXXn", + "NameTitle": "Mr", + "OtherNameTitle": null, + "Surname": "BXXXXp" }, - { - "ApprovalInPrinciple": false, - "Occupancy": "Owner Primary", - "PrimaryPurpose": "Owner Occupied", - "PrimaryUsage": "Residential", - "ToBeUsedAsSecurity": false, - "Transaction": "Owns", - "UniqueID": "FinancialInfo_13821438", - "x_Address": "Address_11555582", - "ContractDetails": {}, - "Encumbrance": [ - { - "EncumbranceType": "Mortgage", - "Priority": "First Mortgage", - "UniqueID": "FinancialLiability_8539113" - } - ], - "EstimatedValue": { - "EstimateBasis": "Applicant Estimate", - "Value": 1980000 - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 50, - "x_Party": "Family_8477374" - }, - { - "Percent": 50, - "x_Party": "Family_8477375" - } - ] - }, - "PropertyType": { - "PropertyTypeName": "Fully Detached House" - }, - "Residential": { - "Type": "Fully Detached House" + "PlaceOfBirth": null, + "POAGranted": null, + "PowerOfAttorney": null, + "PreviousName": null, + "PreviousNames": null, + "PrimaryApplicant": true, + "PrincipalForeignResidence": "AU", + "Privacy": { + "AllowApplicationStatusUpdates": null, + "AllowCreditBureauIdentityCheck": true, + "AllowCreditCheck": true, + "AllowDirectMarketing": null, + "AllowElectronicIdentityCheck": true, + "AllowTelemarketing": null, + "AllowThirdPartyDisclosure": null, + "CreditAuthoritySigned": null, + "DateSigned": null, + "FreezeOnCreditReport": null, + "PrivacyActConsentSigned": true, + "ShareCreditContractWithGuarantors": null + }, + "ProofOfIdentity": [ + { + "Attachment": null, + "CardNumber": null, + "CertifiedCopy": false, + "CountryOfIssue": "AU", + "DateDocumentVerified": null, + "DateOfIssue": null, + "DOBVerified": null, + "DocumentCategory": null, + "DocumentNumber": "04XXXXXX3", + "DocumentType": "Other", + "ExpiryDate": "2024-06-04T00:00:00", + "ExpiryMonth": null, + "ExpiryYear": null, + "IsPreviousNameIdentification": null, + "IssuingOrganisation": "Vicroads", + "MedicareCard": null, + "MiddleNameOnDocument": "GXXXXXXXXXXXXp", + "NameOnDocument": "GXXXXXXXXXXXXp", + "NameVerified": null, + "Original": false, + "OtherDescription": "Drivers Licence Australia", + "PhotographVerified": null, + "PlaceOfIssue": "VXC", + "ResidentialAddressVerified": null, + "SequenceNumber": null, + "SignatureVerified": null, + "StateOfIssue": null, + "UniqueID": null, + "X_AddressOnDocument": null, + "X_LocationDocumentVerified": null }, - "Zoning": { - "Type": "Residential" + { + "Attachment": null, + "CardNumber": null, + "CertifiedCopy": false, + "CountryOfIssue": "AU", + "DateDocumentVerified": null, + "DateOfIssue": "2023-07-26T00:00:00", + "DOBVerified": null, + "DocumentCategory": null, + "DocumentNumber": "RAXXXXXX4", + "DocumentType": "Australian Passport", + "ExpiryDate": "2033-07-26T00:00:00", + "ExpiryMonth": null, + "ExpiryYear": null, + "IsPreviousNameIdentification": null, + "IssuingOrganisation": "Australian Government", + "MedicareCard": null, + "MiddleNameOnDocument": "GXXXXXXXXXXXXXXXp", + "NameOnDocument": "GXXXXXXXXXXXXXXXp", + "NameVerified": null, + "Original": false, + "OtherDescription": null, + "PhotographVerified": null, + "PlaceOfIssue": "VXC", + "ResidentialAddressVerified": null, + "SequenceNumber": null, + "SignatureVerified": null, + "StateOfIssue": null, + "UniqueID": null, + "X_AddressOnDocument": null, + "X_LocationDocumentVerified": null } + ], + "PropertySoldToRecoverDebt": null, + "RelationshipToPrimaryApplicant": null, + "ResidencyStatus": "Permanently in Australia", + "ResponsibleLending": { + "AnticipatedChanges": false, + "Mitigant": null, + "SignificantChange": null }, - { - "ApprovalInPrinciple": false, - "Occupancy": "Owner Primary", - "PrimaryPurpose": "Investment", - "PrimaryUsage": "Residential", - "ToBeUsedAsSecurity": false, - "Transaction": "Owns", - "UniqueID": "FinancialInfo_14381339", - "x_Address": "Address_12459614", - "ContractDetails": {}, - "Encumbrance": [ + "SeekingAdditionalFinanceForSecurityPurchase": null, + "SequenceNumber": null, + "ShareholderOrOfficerOfACompanyInDifficulties": null, + "SourceOfFunds": null, + "SourceOfFundsCountry": null, + "SourceOfWealth": null, + "SourceOfWealthCountry": null, + "SubmittedPreviousApplicationToThisLender": null, + "SubmittedSimilarApplicationToOtherLenders": null, + "TaxDeclarationDetails": null, + "TemporaryVisaExpiryDate": null, + "UnderDuress": null, + "UnderstandApplication": true, + "UniqueID": "Family_9901852", + "UnsatisfiedJudgmentInCourt": null, + "VisaSubclassCode": null, + "VisaSubclassDescription": null, + "Will": null, + "X_Accountant": null, + "X_Household": "Family_8061858", + "X_PersonalReference": null, + "X_Solicitor": null, + "YearsInCurrentProfession": 2.0 + }, + { + "AboriginalOrTorresStraitIslander": null, + "AccountsPreventedFromOverdraw": null, + "AdditionalCitizenship": null, + "AdditionalForeignResidency": null, + "ApplicantType": "Borrower", + "Citizenship": "AU", + "CompanyDirector": null, + "ConcessionCard": null, + "Contact": { + "CurrentAddress": { + "Duration": null, + "HousingStatus": null, + "OtherHousingStatusDescription": null, + "StartDate": null, + "X_Landlord": null, + "X_MailingAddress": "Address_10028882", + "X_ResidentialAddress": "Address_10028882" + }, + "EmailAddress": [ { - "EncumbranceType": "Mortgage", - "Priority": "First Mortgage", - "UniqueID": "FinancialLiability_9060352" + "Email": "fvaesyzfdfzk@uvhbaxj.ysm", + "EmailType": "Home", + "SequenceNumber": null, + "UniqueID": null } ], - "EstimatedValue": { - "EstimateBasis": "Applicant Estimate", - "Value": 1000000 - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 50, - "x_Party": "Family_8477374" - }, - { - "Percent": 50, - "x_Party": "Family_8477375" - } - ] - }, - "PropertyType": { - "PropertyTypeName": "Fully Detached House" - }, - "Residential": { - "Type": "Fully Detached House" + "FaxNumber": null, + "HomePhone": null, + "Mobile": { + "CountryCode": "61", + "DialingCode": "04", + "Number": "6368131462", + "OverseasDialingCode": null + }, + "PostSettlementAddress": null, + "PreferredContact": "Mobile", + "PreviousAddress": { + "Duration": { + "Length": 25, + "Units": "Months" + }, + "EndDate": "2023-03-01T00:00:00", + "HousingStatus": "Renting", + "OtherHousingStatusDescription": null, + "StartDate": "2021-02-01T00:00:00", + "X_ResidentialAddress": "Address_13683783" + }, + "PriorAddress": null, + "WorkPhone": null + }, + "CountryOfBirth": null, + "CreditHistory": null, + "CreditStatus": null, + "CRMReferenceNumber": null, + "CustomerTypeCode": null, + "CustomerTypeDescription": null, + "DateOfBirth": "1973-09-06T00:00:00", + "DateOfCitizenship": null, + "DirectorOfNonBorrowingCompany": null, + "DiscussedWithBeneficiaries": null, + "DocumentationInstructions": null, + "EligibleForFHOG": null, + "EligibleForKaingaOra": null, + "Employment": [], + "ExistingCustomer": null, + "FinancialSituationCheck": null, + "FirstHomeBuyer": false, + "FirstPropertyBuyer": null, + "ForeignTaxAssociation": null, + "Gender": "Female", + "GovernmentGuaranteeScheme": null, + "HasAdditionalCitizenship": null, + "HasAppliedForCitizenship": null, + "HasAppliedForPermanentResidencyVisa": null, + "HasAWill": null, + "HasPreviousName": false, + "IdentityCheck": null, + "Immigrant": null, + "ImmigrationDate": null, + "IndependentAdvice": null, + "IndependentFinancialAdvice": null, + "IndependentLegalAdvice": null, + "Insurance": null, + "IRDNumber": null, + "IsExistingCustomer": false, + "IsLenderStaff": null, + "JointNomination": null, + "JointStatementOfPosition": null, + "LocalAgentOfForeignCompany": null, + "LocalTaxResident": null, + "LOSReferenceNumber": null, + "MaritalStatus": "De Facto", + "MaritalStatusDetails": null, + "MonthsInCurrentProfession": null, + "MothersMaidenName": null, + "NextOfKin": null, + "NominatedBorrower": null, + "NonBorrowingCompany": null, + "OnBehalfOfUnincorporatedAssociation": null, + "Pensioner": null, + "PermanentResidencyDate": null, + "PersonName": { + "FirstName": "Katrina", + "KnownAs": "KXXXXXa", + "MiddleNames": "LXXXXe", + "NameTitle": "Ms", + "OtherNameTitle": null, + "Surname": "BXXXe" + }, + "PlaceOfBirth": null, + "POAGranted": null, + "PowerOfAttorney": null, + "PreviousName": null, + "PreviousNames": null, + "PrimaryApplicant": false, + "PrincipalForeignResidence": "AU", + "Privacy": { + "AllowApplicationStatusUpdates": null, + "AllowCreditBureauIdentityCheck": true, + "AllowCreditCheck": true, + "AllowDirectMarketing": null, + "AllowElectronicIdentityCheck": true, + "AllowTelemarketing": null, + "AllowThirdPartyDisclosure": null, + "CreditAuthoritySigned": null, + "DateSigned": null, + "FreezeOnCreditReport": null, + "PrivacyActConsentSigned": true, + "ShareCreditContractWithGuarantors": null + }, + "ProofOfIdentity": [ + { + "Attachment": null, + "CardNumber": null, + "CertifiedCopy": false, + "CountryOfIssue": "AU", + "DateDocumentVerified": null, + "DateOfIssue": "2022-08-03T00:00:00", + "DOBVerified": null, + "DocumentCategory": null, + "DocumentNumber": "PBXXXXXX4", + "DocumentType": "Australian Passport", + "ExpiryDate": "2032-08-03T00:00:00", + "ExpiryMonth": null, + "ExpiryYear": null, + "IsPreviousNameIdentification": null, + "IssuingOrganisation": "Australian Government", + "MedicareCard": null, + "MiddleNameOnDocument": "KXXXXXXXXXXXXXXXXXXe", + "NameOnDocument": "KXXXXXXXXXXXXXXXXXXe", + "NameVerified": null, + "Original": false, + "OtherDescription": null, + "PhotographVerified": null, + "PlaceOfIssue": "VXC", + "ResidentialAddressVerified": null, + "SequenceNumber": null, + "SignatureVerified": null, + "StateOfIssue": null, + "UniqueID": null, + "X_AddressOnDocument": null, + "X_LocationDocumentVerified": null }, - "Zoning": { - "Type": "Residential" + { + "Attachment": null, + "CardNumber": null, + "CertifiedCopy": false, + "CountryOfIssue": "AU", + "DateDocumentVerified": null, + "DateOfIssue": null, + "DOBVerified": null, + "DocumentCategory": null, + "DocumentNumber": "04XXXXXX7", + "DocumentType": "Other", + "ExpiryDate": "2031-09-11T00:00:00", + "ExpiryMonth": null, + "ExpiryYear": null, + "IsPreviousNameIdentification": null, + "IssuingOrganisation": "Vicroads", + "MedicareCard": null, + "MiddleNameOnDocument": "KXXXXXXXXXXXXXe", + "NameOnDocument": "KXXXXXXXXXXXXXe", + "NameVerified": null, + "Original": false, + "OtherDescription": "Drivers Licence Australia", + "PhotographVerified": null, + "PlaceOfIssue": "VXC", + "ResidentialAddressVerified": null, + "SequenceNumber": null, + "SignatureVerified": null, + "StateOfIssue": null, + "UniqueID": null, + "X_AddressOnDocument": null, + "X_LocationDocumentVerified": null } + ], + "PropertySoldToRecoverDebt": null, + "RelationshipToPrimaryApplicant": null, + "ResidencyStatus": "Permanently in Australia", + "ResponsibleLending": { + "AnticipatedChanges": false, + "Mitigant": null, + "SignificantChange": null }, - { - "ApprovalInPrinciple": false, - "Construction": false, - "Holding": "Joint Tenants", - "Occupancy": "Owner Primary", - "PrimaryPurpose": "Owner Occupied", - "PrimarySecurity": true, - "PrimaryUsage": "Residential", - "Status": "Established", - "ToBeUsedAsSecurity": true, - "Transaction": "Purchasing", - "UniqueID": "SecurityInfo_5583881", - "x_Address": "Address_13627215", - "ContractDetails": { - "LicencedRealEstateAgentContract": true - }, - "EstimatedValue": { - "EstimateBasis": "Applicant Estimate", - "Value": 800000 - }, - "PercentOwned": { - "Proportions": "Specified", - "Owner": [ - { - "Percent": 50, - "x_Party": "Family_8477374" - }, - { - "Percent": 50, - "x_Party": "Family_8477375" - } - ] - }, - "PropertyType": { - "PropertyTypeName": "Fully Detached House" - }, - "Residential": { - "Type": "Fully Detached House" - }, - "Title": [ + "SeekingAdditionalFinanceForSecurityPurchase": null, + "SequenceNumber": null, + "ShareholderOrOfficerOfACompanyInDifficulties": null, + "SourceOfFunds": null, + "SourceOfFundsCountry": null, + "SourceOfWealth": null, + "SourceOfWealthCountry": null, + "SubmittedPreviousApplicationToThisLender": null, + "SubmittedSimilarApplicationToOtherLenders": null, + "TaxDeclarationDetails": null, + "TemporaryVisaExpiryDate": null, + "UnderDuress": null, + "UnderstandApplication": true, + "UniqueID": "Family_9954969", + "UnsatisfiedJudgmentInCourt": null, + "VisaSubclassCode": null, + "VisaSubclassDescription": null, + "Will": null, + "X_Accountant": null, + "X_Household": "Family_8061858", + "X_PersonalReference": null, + "X_Solicitor": null, + "YearsInCurrentProfession": null + } + ], + "ProductionData": null, + "ProductPackage": null, + "ProductSet": null, + "RealEstateAsset": [ + { + "ApprovalInPrinciple": false, + "BrokerReferenceNumber": null, + "Commercial": null, + "Construction": null, + "ConstructionDetails": null, + "ContractDetails": { + "ArmsLengthTransaction": null, + "ContractDate": null, + "ContractPriceAmount": null, + "DepositAmount": null, + "DepositPaid": null, + "DepositPaidConstruction": null, + "DepositPaidLand": null, + "DepositPercentageRequested": null, + "EarlyReleaseOfDepositAuthorityRequested": null, + "EstimatedSettlementDate": null, + "FinanceApprovalDate": null, + "LicencedRealEstateAgentContract": null, + "TransferOfLandAmount": null, + "X_Vendor": null + }, + "ContractOfSale": null, + "DataSource": null, + "Encumbered": null, + "Encumbrance": [], + "EstimatedValue": { + "EstimateBasis": "Applicant Estimate", + "EstimatedCGTLiability": null, + "EstimateMethodology": null, + "Value": 1080000.0, + "ValuedDate": null, + "X_Valuer": null + }, + "EstimatedValues": null, + "FundsDisbursement": null, + "FutureRentalIncome": null, + "GSTToBeClaimed": null, + "HeritageListing": null, + "Holding": null, + "Industrial": null, + "InnerCity": null, + "Insurance": null, + "InvestmentPropertyLetter": null, + "LegalRepresentation": null, + "MultipleDwellings": null, + "NRASConsortium": null, + "NRASProperty": null, + "Occupancy": "Owner Primary", + "OnMarketTransaction": null, + "PercentOwned": { + "Owner": [ { - "TenureType": "Other Title", - "TitleSystem": "Torrens" + "Percent": 50.0, + "SequenceNumber": null, + "X_Party": "Family_9901852" + }, + { + "Percent": 50.0, + "SequenceNumber": null, + "X_Party": "Family_9954969" } ], - "Zoning": { - "Type": "Residential" - } - } - ], - "RelatedCompany": [ - { - "BusinessName": "Australian Council of Educational Research", - "CompanyName": "Australian Council of Educational Research", - "UniqueID": "EmployerCompany_4688212", - "Contact": { - "x_Address": "Address_3510876", - "OfficePhone": { - "Number": "61477777777" - } - } + "Proportions": "Specified" }, - { - "BusinessName": "Testing 2", - "CompanyName": "Testing 2", - "UniqueID": "EmployerCompany_5283447", - "Contact": { - "x_Address": "Address_3386157", - "ContactPerson": { - "x_ContactPerson": "EmployerContact_5283447" - }, - "OfficePhone": { - "Number": "61400000000" - } - } + "PopulationSize": null, + "PrimaryLandUse": null, + "PrimaryPurpose": "Owner Occupied", + "PrimarySecurity": null, + "PrimaryUsage": "Residential", + "PropertyExpense": null, + "PropertyExpenses": null, + "PropertyFeatures": null, + "PropertyID": null, + "PropertySearchValidation": { + "OwnerNames": "GrantBXXXXp", + "Reason": null, + "Result": null, + "URL": null }, - { - "BusinessName": "Testing 1", - "CompanyName": "Testing 1", - "UniqueID": "EmployerCompany_5283440", - "Contact": { - "x_Address": "Address_3386157", - "ContactPerson": { - "x_ContactPerson": "EmployerContact_5283440" - }, - "OfficePhone": { - "Number": "61400000000" - } - } - } - ], - "RelatedPerson": [ - { - "UniqueID": "EmployerContact_5283447", - "Contact": { - "x_Address": "Address_3386157", - "Mobile": { - "Number": "61400000000" - } - }, - "PersonName": { - "FirstName": "Testing 2", - "KnownAs": "Testing 2" - } + "PropertyType": { + "CategoryTypeName": null, + "PropertyTypeCode": null, + "PropertyTypeName": "Fully Detached House" }, - { - "UniqueID": "EmployerContact_5283440", - "Contact": { - "x_Address": "Address_3386157", - "Mobile": { - "Number": "61400101010" - } - }, - "PersonName": { - "FirstName": "Testing", - "KnownAs": "Testing 1" - } + "PurchaseUnderAOCWrap": null, + "Remoteness": null, + "RentalIncome": null, + "Representation": null, + "Residential": { + "DisplayHome": null, + "OtherResidentialDetails": null, + "Type": "Fully Detached House", + "WillOwn25PercentOfComplex": null, + "WillOwn3UnitsInComplex": null + }, + "RestrictionOnUseOfLand": null, + "Rural": null, + "SequenceNumber": null, + "SiteDescription": null, + "Status": null, + "Title": null, + "ToBeSold": null, + "ToBeUsedAsSecurity": false, + "Transaction": "Owns", + "UniqueID": "FinancialInfo_15746357", + "ValuationProgram": null, + "ValuationRequired": null, + "Verified": null, + "VisitContact": null, + "X_Address": "Address_7797188", + "X_PropertyAgent": null, + "Zoning": { + "Type": "Residential" } - ], - "SalesChannel": { - "Type": "Mortgage Broker", - "Aggregator": { - "ABN": "67666666666", - "LicenceNumber": "555555", - "LicenceType": "ACL", - "UniqueID": "Aggregator_2", - "Contact": { - "Email": "testcustomerservice@testCompany.com.au", - "x_Address": "Address_807535", - "OfficePhone": { - "Number": "1800 000 000(free call)" - } - } + }, + { + "ApprovalInPrinciple": false, + "BrokerReferenceNumber": null, + "Commercial": null, + "Construction": false, + "ConstructionDetails": null, + "ContractDetails": { + "ArmsLengthTransaction": null, + "ContractDate": null, + "ContractPriceAmount": null, + "DepositAmount": null, + "DepositPaid": null, + "DepositPaidConstruction": null, + "DepositPaidLand": null, + "DepositPercentageRequested": null, + "EarlyReleaseOfDepositAuthorityRequested": null, + "EstimatedSettlementDate": null, + "FinanceApprovalDate": null, + "LicencedRealEstateAgentContract": true, + "TransferOfLandAmount": null, + "X_Vendor": null }, - "Company": { - "ABN": "12313212312", - "CompanyName": "Test Company", - "LicenceNumber": "777777" - }, - "LoanWriter": { - "FirstName": "Jeremy", - "Surname": "Adviser", - "UniqueID": "Family_6430652", - "Contact": { - "Email": "testAdviser@testCompany.com.au", - "x_Address": "Address_3416383", - "Fax": {}, - "Mobile": { - "Number": "0400000000" + "ContractOfSale": null, + "DataSource": null, + "Encumbered": null, + "Encumbrance": [], + "EstimatedValue": { + "EstimateBasis": "Applicant Estimate", + "EstimatedCGTLiability": null, + "EstimateMethodology": null, + "Value": 1080000.0, + "ValuedDate": null, + "X_Valuer": null + }, + "EstimatedValues": null, + "FundsDisbursement": null, + "FutureRentalIncome": null, + "GSTToBeClaimed": null, + "HeritageListing": null, + "Holding": "Joint Tenants", + "Industrial": null, + "InnerCity": null, + "Insurance": null, + "InvestmentPropertyLetter": null, + "LegalRepresentation": null, + "MultipleDwellings": null, + "NRASConsortium": null, + "NRASProperty": null, + "Occupancy": "Owner Primary", + "OnMarketTransaction": null, + "PercentOwned": { + "Owner": [ + { + "Percent": 50.0, + "SequenceNumber": null, + "X_Party": "Family_9901852" }, - "OfficePhone": { - "Number": "0222222222" + { + "Percent": 50.0, + "SequenceNumber": null, + "X_Party": "Family_9954969" } - } - } - }, - "Summary": { - "Fee": [ + ], + "Proportions": "Specified" + }, + "PopulationSize": null, + "PrimaryLandUse": null, + "PrimaryPurpose": "Owner Occupied", + "PrimarySecurity": true, + "PrimaryUsage": "Residential", + "PropertyExpense": null, + "PropertyExpenses": null, + "PropertyFeatures": null, + "PropertyID": null, + "PropertySearchValidation": { + "OwnerNames": "GrantBXXXXp", + "Reason": null, + "Result": null, + "URL": null + }, + "PropertyType": { + "CategoryTypeName": null, + "PropertyTypeCode": null, + "PropertyTypeName": "Fully Detached House" + }, + "PurchaseUnderAOCWrap": null, + "Remoteness": null, + "RentalIncome": null, + "Representation": null, + "Residential": { + "DisplayHome": null, + "OtherResidentialDetails": null, + "Type": "Fully Detached House", + "WillOwn25PercentOfComplex": null, + "WillOwn3UnitsInComplex": null + }, + "RestrictionOnUseOfLand": null, + "Rural": null, + "SequenceNumber": null, + "SiteDescription": null, + "Status": "Established", + "Title": [ { - "Amount": 0, - "CapitaliseFee": false, - "PayFeesFrom": "Account", - "Type": "LMI" + "AdditionalInformation": null, + "AutoConsol": null, + "Block": null, + "County": null, + "District": null, + "DuplicateTitleIssued": null, + "EditionNumber": null, + "EstateType": null, + "Extent": null, + "Folio": null, + "IssueDate": null, + "Location": null, + "Lot": null, + "LotPlan": null, + "Notation": null, + "OtherDetails": null, + "OwnershipDealing": null, + "Parcel": null, + "Parcels": null, + "ParentTitle": null, + "Parish": null, + "Plan": null, + "PlanType": null, + "Portion": null, + "PreviousTitle": null, + "RealPropertyDescriptor": null, + "Register": null, + "RegisteredProprietor": null, + "RequestNumber": null, + "Section": null, + "SecurityInformation": null, + "SequenceNumber": null, + "TenureType": "Other Title", + "TitleReference": null, + "TitleSubType": null, + "TitleSystem": "Torrens", + "UniqueID": null, + "Unit": null, + "UnregisteredLand": null, + "UnregisteredPlan": null, + "Volume": null, + "VolumeTenureType": null, + "Warning": null } ], - "LoanToValuationRatio": { - "ApplicationLVR": 77.5 + "ToBeSold": null, + "ToBeUsedAsSecurity": true, + "Transaction": "Purchasing", + "UniqueID": "SecurityInfo_5620451", + "ValuationProgram": null, + "ValuationRequired": null, + "Verified": null, + "VisitContact": null, + "X_Address": "Address_13492188", + "X_PropertyAgent": null, + "Zoning": { + "Type": "Residential" } } - }, - "NeedsAnalysis": { - "Interview": {}, - "Preferences": { - "ConflictExists": false, - "InterestRateType": "Standard Variable", - "PreferredLenders": true, - "PreferredLendersDetails": ", ", - "FundsAccessTypeDetails": { - "OffsetAccount": { - "Importance": "Important", - "RisksExplained": true, - "Reason": { - "AllowsAccessToFunds": false, - "AllowsPayingOffLoanSooner": true, - "ForTaxPurposes": false, - "Other": false - } - }, - "Redraw": { - "Importance": "Important", - "RisksExplained": true, - "Reason": { - "FlexibilityToAccessPrepaidFundsIfNeeded": true, - "Other": false - } - } + ], + "RelatedCompany": [ + { + "ABNActiveFrom": null, + "ABNLookupDate": null, + "ABNStatus": null, + "ACNActiveFrom": null, + "ACNLookupDate": null, + "ACNStatus": null, + "AFSLNumber": null, + "BeneficialOwner": null, + "Beneficiary": null, + "BusinessName": "PXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXD", + "BusinessNameSameAsCompanyName": null, + "BusinessNumber": "58186426373", + "BusinessNumberVerified": null, + "BusinessStructure": "Sole Trader", + "CompanyName": "uldwzgrvnohvmidbtyvuuszvblrexwhkckpeswpcszhd", + "CompanyNumber": null, + "Contact": { + "ContactPerson": { + "FirstName": null, + "NameTitle": null, + "Role": null, + "Surname": null, + "X_ContactPerson": "EmployerContact_5554456" + }, + "Email": "", + "OfficeFax": null, + "OfficeMobile": null, + "OfficePhone": { + "CountryCode": null, + "DialingCode": null, + "Number": "70777234662", + "OverseasDialingCode": null + }, + "TradingAddress": null, + "WebAddress": "", + "X_Address": "Address_12326334", + "X_RegisteredAddress": null }, - "InterestRateTypeDetails": { - "FixedAndVariableRate": { - "Importance": "Not Important" - }, - "FixedRate": { - "Importance": "Not Important" - }, - "VariableRate": { - "Importance": "Important", - "RisksExplained": true, - "Reason": { - "Flexibility": false, - "Other": false, - "PotentialRateDecreases": true - } - } + "CRMReferenceNumber": null, + "DateRegistered": null, + "Director": null, + "GSTRegisteredDate": null, + "LOSReferenceNumber": null, + "NumberOfBeneficiaries": null, + "NumberOfDirectors": null, + "NumberOfPartners": null, + "NumberOfShareholders": null, + "Partner": null, + "RegisteredForGST": null, + "RegisteredInCountry": null, + "SequenceNumber": null, + "Shareholder": null, + "TPBNumber": null, + "TrusteeType": null, + "UniqueID": "EmployerCompany_5554456" + }, + { + "ABNActiveFrom": null, + "ABNLookupDate": null, + "ABNStatus": null, + "ACNActiveFrom": null, + "ACNLookupDate": null, + "ACNStatus": null, + "AFSLNumber": null, + "BeneficialOwner": null, + "Beneficiary": null, + "BusinessName": "MXXXXXXXXXXXXs", + "BusinessNameSameAsCompanyName": null, + "BusinessNumber": "", + "BusinessNumberVerified": null, + "BusinessStructure": null, + "CompanyName": "wwhiedmrbtjulv", + "CompanyNumber": null, + "Contact": { + "ContactPerson": { + "FirstName": null, + "NameTitle": null, + "Role": null, + "Surname": null, + "X_ContactPerson": "EmployerContact_5554443" + }, + "Email": "", + "OfficeFax": null, + "OfficeMobile": null, + "OfficePhone": { + "CountryCode": null, + "DialingCode": null, + "Number": "yfsrkkuicw6", + "OverseasDialingCode": null + }, + "TradingAddress": null, + "WebAddress": "", + "X_Address": "Address_5949753", + "X_RegisteredAddress": null + }, + "CRMReferenceNumber": null, + "DateRegistered": null, + "Director": null, + "GSTRegisteredDate": null, + "LOSReferenceNumber": null, + "NumberOfBeneficiaries": null, + "NumberOfDirectors": null, + "NumberOfPartners": null, + "NumberOfShareholders": null, + "Partner": null, + "RegisteredForGST": null, + "RegisteredInCountry": null, + "SequenceNumber": null, + "Shareholder": null, + "TPBNumber": null, + "TrusteeType": null, + "UniqueID": "EmployerCompany_5554443" + } + ], + "RelatedPerson": [ + { + "Contact": { + "Email": "", + "EmailType": null, + "FaxNumber": null, + "HomePhone": null, + "Mobile": { + "CountryCode": null, + "DialingCode": null, + "Number": "76226724061", + "OverseasDialingCode": null + }, + "PreferredContact": null, + "WorkPhone": null, + "X_Address": "Address_12326334", + "X_MailingAddress": null + }, + "CRMReferenceNumber": null, + "DateOfBirth": null, + "Employment": null, + "ForeignTaxAssociation": null, + "LOSReferenceNumber": null, + "PersonName": { + "FirstName": "GXXXt", + "KnownAs": "PXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXD", + "MiddleNames": null, + "NameTitle": null, + "OtherNameTitle": null, + "Surname": "BXXXXp" + }, + "SequenceNumber": null, + "TaxDeclarationDetails": null, + "UniqueID": "EmployerContact_5554456" + }, + { + "Contact": { + "Email": "", + "EmailType": null, + "FaxNumber": null, + "HomePhone": null, + "Mobile": { + "CountryCode": null, + "DialingCode": null, + "Number": "qgdxctbzgl0", + "OverseasDialingCode": null + }, + "PreferredContact": null, + "WorkPhone": null, + "X_Address": "Address_5949753", + "X_MailingAddress": null }, - "RepaymentTypeDetails": { - "InterestInAdvance": { - "Importance": "Not Important" + "CRMReferenceNumber": null, + "DateOfBirth": null, + "Employment": null, + "ForeignTaxAssociation": null, + "LOSReferenceNumber": null, + "PersonName": { + "FirstName": "GXX ", + "KnownAs": "MXXXXXXXXXXXXs", + "MiddleNames": null, + "NameTitle": null, + "OtherNameTitle": null, + "Surname": "HXXXXn" + }, + "SequenceNumber": null, + "TaxDeclarationDetails": null, + "UniqueID": "EmployerContact_5554443" + } + ], + "SalesChannel": { + "Aggregator": { + "AccreditationNumber": null, + "BusinessNumber": "31416015855", + "CompanyName": "", + "Contact": { + "Email": "ylfrdbesehprwrr@xuwqvlgyee.nhp.sy", + "OfficeFax": null, + "OfficePhone": { + "CountryCode": null, + "DialingCode": null, + "Number": "3277 082 064 (awlt xthr)", + "OverseasDialingCode": null }, - "InterestOnly": { - "Importance": "Not Important" + "WebAddress": "", + "X_Address": "Address_807535" + }, + "CRMReferenceNumber": null, + "LicenceNumber": "517192", + "LicenceType": "ACL", + "OtherIdentifier": null, + "UniqueID": "Aggregator_2" + }, + "Commission": null, + "Company": { + "AccreditationNumber": null, + "BSB": null, + "BusinessName": null, + "BusinessNameSameAsCompanyName": null, + "BusinessNumber": "22214823171", + "CompanyName": "gyklgvtrl uiabftg nyl bpy", + "Contact": null, + "CRMReferenceNumber": null, + "LicenceNumber": "475676", + "LicenceType": null, + "OtherIdentifier": null, + "UniqueID": null + }, + "Introducer": null, + "LoanWriter": { + "AccreditationNumber": "AO10348", + "Contact": { + "Email": "ptpliq@lpoocnwmuiyif.sq", + "Fax": { + "CountryCode": null, + "DialingCode": null, + "Number": "", + "OverseasDialingCode": null + }, + "Mobile": { + "CountryCode": null, + "DialingCode": null, + "Number": "5742862088", + "OverseasDialingCode": null }, - "LineOfCredit": { - "Importance": "Not Important" + "OfficePhone": { + "CountryCode": null, + "DialingCode": null, + "Number": "5815028765", + "OverseasDialingCode": null }, - "PrincipalAndInterest": { - "Importance": "Important", - "RepaymentFrequency": "Weekly", - "RisksExplained": true - } + "WebAddress": "", + "X_Address": "Address_3605279" + }, + "DelegatedRecipient": null, + "Department": null, + "FirstName": "Damien", + "LenderAccreditation": null, + "LicenceNumber": null, + "LicenceType": null, + "ManagerName": null, + "NameTitle": "Mr", + "OtherIdentifier": null, + "PersonRole": null, + "Surname": "RXXXXXXe", + "UniqueID": "Family_2435409" + }, + "Type": "Mortgage Broker" + }, + "Settlement": null, + "SplitLoan": null, + "Summary": { + "AccountsPreventedFromOverdraw": null, + "AllPartiesAgreeToElectronicSignature": null, + "DocumentationInstructions": null, + "Fee": [ + { + "AccountNumber": null, + "Amount": 0.0, + "ApplicableDuration": null, + "CapitaliseFee": false, + "Category": null, + "CreditCard": null, + "Description": null, + "FeeCode": null, + "Frequency": null, + "GSTAmount": null, + "IsDisclosed": null, + "IsEstimated": null, + "ITCAmount": null, + "NumberOfRepeats": null, + "Paid": null, + "PayableTo": null, + "PayableToAccount": null, + "PayFeesFrom": "Account", + "PaymentTiming": null, + "Percentage": null, + "SequenceNumber": null, + "StartDate": null, + "Type": "LMI", + "UniqueID": null, + "WillNotBeRefundedConsent": null, + "X_Account": null, + "X_FinancialProduct": null, + "X_ProductSet": null, + "X_Security": null } + ], + "FeesDisclosureDate": null, + "HoldsAConcessionCard": null, + "LoanToValuationRatio": { + "ApplicationLVR": 80.0, + "ContributingValuation": null, + "PeakDebtLVR": null, + "UniqueID": null }, - "RetirementDetails": { - "Applicant": [ - { - "ImminentlyRetiring": false, - "IntendedRetirementAge": 70, - "UnderstandsImpactOnRetirementPlans": false, - "x_Applicant": "Family_8477374", - "RepaymentOptions": { - "CoApplicantIncome": false, - "DownsizingHome": false, - "IncomeFromOtherInvestments": false, - "Other": false, - "RecurringIncomeFromSuperannuation": false, - "RepaymentOfLoanPriorToRetirement": false, - "SaleOfAssets": true, - "Savings": false, - "SuperannuationLumpSumFollowingRetirement": false - } - }, - { - "ImminentlyRetiring": false, - "IntendedRetirementAge": 70, - "UnderstandsImpactOnRetirementPlans": false, - "x_Applicant": "Family_8477375", - "RepaymentOptions": { - "CoApplicantIncome": false, - "DownsizingHome": false, - "IncomeFromOtherInvestments": false, - "Other": false, - "RecurringIncomeFromSuperannuation": false, - "RepaymentOfLoanPriorToRetirement": false, - "SaleOfAssets": true, - "Savings": false, - "SuperannuationLumpSumFollowingRetirement": false - } - } - ] - } - } + "RolledUpAmounts": null, + "ServiceabilityResults": null, + "Signature": null + }, + "TrustApplicant": [], + "UniqueID": "LoanScenario-5578728-KVSAFX9", + "VendorTaxInvoice": null }, - "Instructions": { - "ApplicationInstructions": { - "Submit": { - "AssessmentType": "Full", - "IsAccountVariation": false - } - } + "CreditReport": null, + "History": null, + "NeedsAnalysis": { + "BenefitToApplicants": null, + "ClientMandate": null, + "ClientMandateDetails": null, + "CoApplicantInterview": null, + "FutureCircumstances": null, + "Interview": { + "AllApplicantsPresent": null, + "AllApplicantsUnderstandEnglish": null, + "Attendee": null, + "Date": null, + "Details": null, + "InterpreterLanguage": null, + "InterpreterRecommended": null, + "InterviewMethod": null, + "IsFaceToFace": true, + "VisualOrHearingImpairment": null, + "X_Location": null + }, + "LoanAmountSought": null, + "LoanTermSought": null, + "LoanTermSoughtDescription": null, + "Preferences": { + "ConflictDescription": null, + "ConflictExists": false, + "FundsAccessType": null, + "FundsAccessTypeDetails": { + "OffsetAccount": { + "Importance": "Important", + "Reason": { + "AllowsAccessToFunds": false, + "AllowsPayingOffLoanSooner": true, + "Description": null, + "ForTaxPurposes": false, + "Other": false + }, + "RisksExplained": true + }, + "Redraw": { + "Importance": "Important", + "Reason": { + "Description": null, + "FlexibilityToAccessPrepaidFundsIfNeeded": true, + "Other": false + }, + "RisksExplained": true + } + }, + "InterestRateType": "Fixed", + "InterestRateTypeDetails": { + "FixedAndVariableRate": { + "FixedPeriodDuration": null, + "Importance": "Not Important", + "Reason": null, + "RisksExplained": null + }, + "FixedRate": { + "FixedPeriodDuration": { + "Length": 4, + "Units": "Years" + }, + "Importance": "Important", + "Reason": { + "AvoidingRateIncreaseRisk": true, + "Description": null, + "MakeBudgetingEasier": false, + "Other": false + }, + "RisksExplained": true + }, + "VariableRate": { + "Importance": "Not Important", + "Reason": null, + "RisksExplained": null + } + }, + "OtherPreferences": null, + "PreferredLenders": true, + "PreferredLendersDetails": ", ", + "PrioritiesAndReasons": null, + "RepaymentType": null, + "RepaymentTypeDetails": { + "InterestInAdvance": { + "Importance": "Not Important", + "Reason": null, + "RisksExplained": null + }, + "InterestOnly": { + "Importance": "Not Important", + "InterestOnlyDuration": null, + "InterestOnlyDurationReason": null, + "Reason": null, + "RepaymentFrequency": null, + "RisksExplained": null + }, + "LineOfCredit": { + "Importance": "Not Important", + "Reason": null, + "RepaymentPlan": null, + "RisksExplained": null + }, + "PrincipalAndInterest": { + "Importance": "Important", + "Reason": null, + "RepaymentFrequency": "Weekly", + "RisksExplained": true + } + }, + "Summary": null + }, + "PrimaryApplicationPurpose": null, + "ProductSelection": null, + "PurposeOfApplication": [], + "PurposeSummary": null, + "RefinancingAndConsolidation": null, + "RetirementDetails": { + "Applicant": [ + { + "AgeAtEndOfLoan": null, + "ImminentlyRetiring": false, + "IntendedRetirementAge": 30, + "IntendedRetirementAgeDetails": null, + "Name": null, + "Number": "", + "RepaymentOptions": { + "AllRepaymentStrategiesConsidered": null, + "AllRepaymentStrategiesConsideredDescription": null, + "CoApplicantIncome": false, + "CoApplicantIncomeDetails": null, + "Description": "", + "DownsizingHome": false, + "DownsizingHomeDetails": null, + "IncomeFromOtherInvestments": false, + "IncomeFromOtherInvestmentsDetails": null, + "LenderAcceptableAssets": null, + "LenderAcceptableAssetsDetails": null, + "Other": true, + "RecurringIncomeFromSuperannuation": false, + "RecurringIncomeFromSuperannuationDetails": null, + "Refinance": null, + "RefinanceDetails": null, + "RepaymentOfLoanPriorToRetirement": false, + "SaleOfAssets": false, + "SaleOfAssetsDetails": null, + "Savings": false, + "SavingsDetails": null, + "SuperannuationLumpSumFollowingRetirement": false, + "SuperannuationLumpSumFollowingRetirementDetails": null, + "TotalLiability": null, + "WorkPastStatutoryRetirementAge": null, + "WorkPastStatutoryRetirementAgeDetails": null + }, + "SequenceNumber": null, + "UnderstandsImpactOnRetirementPlans": false, + "UniqueID": null, + "X_Applicant": "Family_9901852" + }, + { + "AgeAtEndOfLoan": null, + "ImminentlyRetiring": false, + "IntendedRetirementAge": 51, + "IntendedRetirementAgeDetails": null, + "Name": null, + "Number": "", + "RepaymentOptions": { + "AllRepaymentStrategiesConsidered": null, + "AllRepaymentStrategiesConsideredDescription": null, + "CoApplicantIncome": false, + "CoApplicantIncomeDetails": null, + "Description": "", + "DownsizingHome": false, + "DownsizingHomeDetails": null, + "IncomeFromOtherInvestments": false, + "IncomeFromOtherInvestmentsDetails": null, + "LenderAcceptableAssets": null, + "LenderAcceptableAssetsDetails": null, + "Other": true, + "RecurringIncomeFromSuperannuation": false, + "RecurringIncomeFromSuperannuationDetails": null, + "Refinance": null, + "RefinanceDetails": null, + "RepaymentOfLoanPriorToRetirement": false, + "SaleOfAssets": false, + "SaleOfAssetsDetails": null, + "Savings": false, + "SavingsDetails": null, + "SuperannuationLumpSumFollowingRetirement": false, + "SuperannuationLumpSumFollowingRetirementDetails": null, + "TotalLiability": null, + "WorkPastStatutoryRetirementAge": null, + "WorkPastStatutoryRetirementAgeDetails": null + }, + "SequenceNumber": null, + "UnderstandsImpactOnRetirementPlans": false, + "UniqueID": null, + "X_Applicant": "Family_9954969" + } + ], + "RepaymentOptions": null + }, + "UniqueID": null }, - "Publisher": { - "LIXICode": "ZZZLO1" + "RealEstateValuation": null, + "StatementOfPosition": null + }, + "Instructions": { + "ApplicationInstructions": { + "Submit": { + "AssessmentType": "Full", + "Condition": null, + "IsAccountVariation": false, + "IsPricingRequest": null, + "IsResubmission": null, + "IsSubmissionDocuments": null, + "IsSupportingDocuments": null + }, + "Update": null }, - "Recipient": [ - { - "LIXICode": "ZZZANU1" - } - ], - "SchemaVersion": { - "GuidebookCode": "EGB-XD1ZZ3", - "LIXITransactionType": "CAL", - "LIXIVersion": "2.6.35" + "ErrorInstructions": [] + }, + "ProductionData": false, + "Publisher": { + "CompanyName": "", + "ContactName": null, + "Email": "", + "LIXICode": "LMKLO1", + "PhoneNumber": null, + "PublishedDateTime": null, + "RelatedSoftware": null, + "Software": null + }, + "Recipient": [ + { + "Description": null, + "LIXICode": "KVSAFX9", + "RoutingCode": null, + "SequenceNumber": null, + "Software": null } - + ], + "SchemaVersion": { + "GuidebookCode": "EGB-I1ETBG", + "GuidebookName": null, + "GuidebookVersion": null, + "LIXICustomVersion": null, + "LIXITransactionType": "CAL", + "LIXIVersion": "2.6.35" + }, + "TransformMetadata": null, + "UniqueID": null } \ No newline at end of file diff --git a/samples/MyCRM.Lodgement.Core/Models/SampleLodgementInformation.cs b/samples/MyCRM.Lodgement.Core/Models/SampleLodgementInformation.cs index 693203a..e98e226 100644 --- a/samples/MyCRM.Lodgement.Core/Models/SampleLodgementInformation.cs +++ b/samples/MyCRM.Lodgement.Core/Models/SampleLodgementInformation.cs @@ -1,7 +1,10 @@ -namespace MyCRM.Lodgement.Common.Models; +using LMGTech.DotNetLixi; + +namespace MyCRM.Lodgement.Common.Models; public class SampleLodgementInformation { public int LoanId { get; set; } + public LixiCountry Country{ get; set; } public LoanApplicationScenario Scenario { get; set; } } \ No newline at end of file diff --git a/samples/MyCRM.Lodgement.Core/Utilities/ObjectSerializer.cs b/samples/MyCRM.Lodgement.Core/Utilities/LixiPackageSerializer.cs similarity index 59% rename from samples/MyCRM.Lodgement.Core/Utilities/ObjectSerializer.cs rename to samples/MyCRM.Lodgement.Core/Utilities/LixiPackageSerializer.cs index 05657b9..0aed2eb 100644 --- a/samples/MyCRM.Lodgement.Core/Utilities/ObjectSerializer.cs +++ b/samples/MyCRM.Lodgement.Core/Utilities/LixiPackageSerializer.cs @@ -1,24 +1,24 @@ using System; -using System.Collections.Generic; -using System.IO; +using System.Net.Mime; using System.Text; -using System.Xml.Serialization; +using LMGTech.DotNetLixi; using LMGTech.DotNetLixi.Models; +using LMGTech.DotNetLixi.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace MyCRM.Lodgement.Common.Utilities; -public class ObjectSerializer +public class LixiPackageSerializer { - public static string Serialize(Package package, string mediaType) + public static string Serialize(Package package,LixiCountry country, string mediaType) { if (package == null) throw new ArgumentNullException(nameof(package)); - + var json = new Json { Package = package }; return mediaType switch { - "application/xml" => SerializeAsXml(package), - "application/json" => JObject.FromObject(package).ToString(), + MediaTypeNames.Application.Xml => country==LixiCountry.Australia? SerializeAsCalXml(package): SerializeAsCnzXml(package) , + MediaTypeNames.Application.Json =>country==LixiCountry.Australia? SerializeAsCal(package): SerializeAsCnz(package), _ => throw new NotImplementedException($"Media Type {mediaType} not supported.") }; } @@ -30,7 +30,6 @@ public static string ObfuscateJson(JToken token,string[] propertiesToObfuscate = { foreach (var property in obj.Properties()) { - Console.WriteLine(property.Name); // Check if the property name is in the list to be obfuscated if ((obfscuteCertainProperties && Array.Exists(propertiesToObfuscate, p => p.Equals(property?.Name, StringComparison.OrdinalIgnoreCase))) ||!obfscuteCertainProperties) @@ -43,7 +42,6 @@ public static string ObfuscateJson(JToken token,string[] propertiesToObfuscate = else { // Recursively obfuscate nested objects or arrays - ObfuscateJson(property.Value,propertiesToObfuscate); } } @@ -58,15 +56,9 @@ public static string ObfuscateJson(JToken token,string[] propertiesToObfuscate = return token.ToString(Formatting.Indented); } - - private static string SerializeAsXml(Package package) - { - using var writer = new StringWriter(); - var serializer = new XmlSerializer(package.GetType()); - serializer.Serialize(writer, package); - return writer.ToString(); - } - + public static Json? DeserializeFromJson(string json, LixiCountry country, LixiVersion version) => + LixiSerializer.Deserialize(json, country, version); + static string TransformString(string input) { StringBuilder result = new StringBuilder(); @@ -90,4 +82,30 @@ static string TransformString(string input) return result.ToString(); } + + private static string SerializeAsCalXml(Package package, LixiVersion version = LixiVersion.Cal2635) + { + var json = new Json { Package = package }; + return LixiSerializer.SerializeToXml(json, LixiCountry.Australia, version); + } + + private static string SerializeAsCnzXml(Package package, LixiVersion version = LixiVersion.Cnz218) + { + var json = new Json { Package = package }; + return LixiSerializer.SerializeToXml(json, LixiCountry.NewZealand, version); + } + + private static string SerializeAsCal(Package package) + { + var json = new Json { Package = package }; + return LixiSerializer.Serialize(json, LixiCountry.Australia, LixiVersion.Cal2635); + } + + private static string SerializeAsCnz(Package package) + { + var json = new Json { Package = package }; + return LixiSerializer.Serialize(json, LixiCountry.Australia, LixiVersion.Cnz218); + } + + } \ No newline at end of file diff --git a/samples/MyCRM.Lodgement.Sample.Tests/Services/Client/LodgementClientTests.cs b/samples/MyCRM.Lodgement.Sample.Tests/Services/Client/LodgementClientTests.cs index 6ef252a..d322fd7 100644 --- a/samples/MyCRM.Lodgement.Sample.Tests/Services/Client/LodgementClientTests.cs +++ b/samples/MyCRM.Lodgement.Sample.Tests/Services/Client/LodgementClientTests.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using AutoFixture; using FluentAssertions; +using LMGTech.DotNetLixi; using LMGTech.DotNetLixi.Models; using Microsoft.Extensions.Options; using Moq; @@ -70,7 +71,7 @@ public async Task WhenValidatingAndOkResult_ThenReturnValidationResult() _lixiPackageService.Object, _optionsMock.Object); - var result = await target.Validate(package, CancellationToken.None); + var result = await target.Validate(package,LixiCountry.Australia, CancellationToken.None); result.ExternalReferenceId.Should().Be(validationResult.ExternalReferenceId); } @@ -105,7 +106,7 @@ public async Task WhenSubmittingAndOkResult_ThenReturnSubmissionResult() _lixiPackageService.Object, _optionsMock.Object); - var result = await target.Submit(package, CancellationToken.None); + var result = await target.Submit(package,LixiCountry.Australia, CancellationToken.None); result.Result.ReferenceId.Should().Be(submissionResult.ReferenceId); } } diff --git a/samples/MyCRM.Lodgement.Sample.Tests/Services/Client/PackageSerializerTests.cs b/samples/MyCRM.Lodgement.Sample.Tests/Services/Client/PackageSerializerTests.cs deleted file mode 100644 index 4d8f150..0000000 --- a/samples/MyCRM.Lodgement.Sample.Tests/Services/Client/PackageSerializerTests.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace MyCRM.Lodgement.Sample.Tests.Services.Client -{ - class PackageSerializerTests - { - } -} diff --git a/samples/MyCRM.Lodgement.Sample.Tests/Services/LixiPackage/LixiPackageServiceTests.cs b/samples/MyCRM.Lodgement.Sample.Tests/Services/LixiPackage/LixiPackageServiceTests.cs new file mode 100644 index 0000000..14dece5 --- /dev/null +++ b/samples/MyCRM.Lodgement.Sample.Tests/Services/LixiPackage/LixiPackageServiceTests.cs @@ -0,0 +1,131 @@ +using System; +using Moq; +using Xunit; +using Newtonsoft.Json; +using System.Threading; +using System.Threading.Tasks; +using System.IO; +using LMGTech.DotNetLixi.Models; +using MyCRM.Lodgement.Common.Models; +using MyCRM.Lodgement.Sample.Services.LixiPackage; + +public class LixiPackageServiceTests +{ + private readonly Mock _sut; + private readonly LixiPackageService _lixiPackageService; + private readonly string _basePackagePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "LixiPackageSamples"); + + public LixiPackageServiceTests() + { + // Create a mock for ILixiPackageService + _sut = new Mock(); + + // Create an instance of LixiPackageService + _lixiPackageService = new LixiPackageService(); + } + + [Fact] + public async Task CreatePackageAsync_ShouldSetCorrectValues() + { + // Arrange + var lodgementInformation = new SampleLodgementInformation + { + LoanId = 12345, + Scenario = LoanApplicationScenario.NewLoanApplication + }; + + var package = new Package + { + ProductionData = true, + Content = new PackageContent + { + Application = new Application + { + Overview = new Overview(), + UniqueID = "" + } + } + }; + + // Mock the GetPackageAsync method to return a predefined package + _sut.Setup(service => service.GetPackageAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(package); + + // Act + var result = await _lixiPackageService.CreatePackageAsync(lodgementInformation); + + // Assert + Assert.False(result.ProductionData); + Assert.Equal(lodgementInformation.LoanId.ToString(), result.Content.Application.Overview.BrokerApplicationReferenceNumber); + Assert.Equal($"LoanScenario-{lodgementInformation.LoanId}", result.Content.Application.UniqueID); + } + + [Fact] + public async Task GetPackageAsync_ShouldReturnPackageFromFile() + { + // Arrange + var scenario = LoanApplicationScenario.NewLoanApplication; + var fileName = $"{scenario}.json"; + var packagePath = Path.Combine(_basePackagePath, fileName); + + var packageContent = new Package + { + Content = new PackageContent + { + Application = new Application { } + }, + UniqueID = "test-123" + }; + + var jsonContent = JsonConvert.SerializeObject(packageContent); + + // Simulate the file content + File.WriteAllText(packagePath, jsonContent); + + // Act + var result = await _lixiPackageService.GetPackageAsync(scenario); + + // Assert + Assert.NotNull(result); + Assert.Equal(packageContent.UniqueID, result.UniqueID); + + // Clean up the file + File.Delete(packagePath); + } + + [Fact] + public async Task SavePackageAsync_ShouldWritePackageToFile() + { + // Arrange + var package = new Package + { + Content = new PackageContent + { + Application = new Application { SalesChannel = new SalesChannel() + { + Aggregator = new SalesChannelAggregator() + { + CompanyName = "testCompanyAggregator" + } + }} + } + }; + var scenario = LoanApplicationScenario.NewLoanApplication; + var fileName = $"{scenario}.json"; + var packagePath = Path.Combine(_basePackagePath, fileName); + + // Act + await _lixiPackageService.SavePackageAsync(package, scenario); + + // Assert + Assert.True(File.Exists(packagePath)); + + var fileContent = await File.ReadAllTextAsync(packagePath); + var savedPackage = JsonConvert.DeserializeObject(fileContent); + + Assert.Equal(package.Content.Application.SalesChannel.Aggregator.CompanyName, savedPackage.Content.Application.SalesChannel.Aggregator.CompanyName); + + // Clean up the file + File.Delete(packagePath); + } +} diff --git a/samples/MyCRM.Lodgement.Sample.sln b/samples/MyCRM.Lodgement.Sample.sln index bf44cfa..36a581c 100644 --- a/samples/MyCRM.Lodgement.Sample.sln +++ b/samples/MyCRM.Lodgement.Sample.sln @@ -15,6 +15,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCRM.Lodgement.Automation" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCRM.Lodgement.Common", "MyCRM.Lodgement.Core\MyCRM.Lodgement.Common.csproj", "{54988FFA-E726-4734-827C-E76C990D5290}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCRM.Lodgement.Common.Tests", "MyCRM.Lodgement.Common.Tests\MyCRM.Lodgement.Common.Tests.csproj", "{2BEE7E2E-C6C2-48B9-B512-3878F39A1C66}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -37,6 +39,10 @@ Global {54988FFA-E726-4734-827C-E76C990D5290}.Debug|Any CPU.Build.0 = Debug|Any CPU {54988FFA-E726-4734-827C-E76C990D5290}.Release|Any CPU.ActiveCfg = Release|Any CPU {54988FFA-E726-4734-827C-E76C990D5290}.Release|Any CPU.Build.0 = Release|Any CPU + {2BEE7E2E-C6C2-48B9-B512-3878F39A1C66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2BEE7E2E-C6C2-48B9-B512-3878F39A1C66}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2BEE7E2E-C6C2-48B9-B512-3878F39A1C66}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2BEE7E2E-C6C2-48B9-B512-3878F39A1C66}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -46,6 +52,7 @@ Global {82EFFC13-DE4B-4A57-A9EA-7E18DD65D983} = {881F7FE9-64AE-4F4F-84D3-D94678A98704} {56E4CC0D-4EBB-4280-897F-AB848553EDDD} = {C7A5F525-9F9D-409D-A605-50B451B974CD} {54988FFA-E726-4734-827C-E76C990D5290} = {C7A5F525-9F9D-409D-A605-50B451B974CD} + {2BEE7E2E-C6C2-48B9-B512-3878F39A1C66} = {881F7FE9-64AE-4F4F-84D3-D94678A98704} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {07674D10-FD67-435B-BBF2-F9CE9BF947E2} diff --git a/samples/MyCRM.Lodgement.Sample/Contracts/PostPackageRequest.cs b/samples/MyCRM.Lodgement.Sample/Contracts/PostPackageRequest.cs new file mode 100644 index 0000000..68068ed --- /dev/null +++ b/samples/MyCRM.Lodgement.Sample/Contracts/PostPackageRequest.cs @@ -0,0 +1,9 @@ +using LMGTech.DotNetLixi; + +namespace MyCRM.Lodgement.Sample.Models; + +public record PostPackageRequest +{ + public required LixiCountry Country { get; set; } + public required Package LixiPackage { get; set; } +} \ No newline at end of file diff --git a/samples/MyCRM.Lodgement.Sample/Contracts/PostTestPackageRequest.cs b/samples/MyCRM.Lodgement.Sample/Contracts/PostTestPackageRequest.cs index 68dd35e..ad8302f 100644 --- a/samples/MyCRM.Lodgement.Sample/Contracts/PostTestPackageRequest.cs +++ b/samples/MyCRM.Lodgement.Sample/Contracts/PostTestPackageRequest.cs @@ -1,6 +1,9 @@ -namespace MyCRM.Lodgement.Sample.Models; +using LMGTech.DotNetLixi; + +namespace MyCRM.Lodgement.Sample.Models; public record PostTestPackageRequest { public required LoanApplicationScenario Scenario { get; init; } + public required LixiCountry Country { get; init; } } \ No newline at end of file diff --git a/samples/MyCRM.Lodgement.Sample/Contracts/SaveLixiPackageRequest.cs b/samples/MyCRM.Lodgement.Sample/Contracts/SaveLixiPackageRequest.cs index 1e0c38f..076ba45 100644 --- a/samples/MyCRM.Lodgement.Sample/Contracts/SaveLixiPackageRequest.cs +++ b/samples/MyCRM.Lodgement.Sample/Contracts/SaveLixiPackageRequest.cs @@ -3,6 +3,6 @@ public record SaveLixiPackageRequest { public required LoanApplicationScenario Scenario{ get; init; } - public bool BeObfuscated{ get; init; } + public bool BeObfuscated { get; init; } = false; public required Package LixiPackage { get; init; } } \ No newline at end of file diff --git a/samples/MyCRM.Lodgement.Sample/Controllers/LixiPackageController.cs b/samples/MyCRM.Lodgement.Sample/Controllers/LixiPackageController.cs index 21045be..f05b860 100644 --- a/samples/MyCRM.Lodgement.Sample/Controllers/LixiPackageController.cs +++ b/samples/MyCRM.Lodgement.Sample/Controllers/LixiPackageController.cs @@ -1,3 +1,5 @@ +using LMGTech.DotNetLixi; + namespace MyCRM.Lodgement.Sample.Controllers { [ApiController] @@ -25,7 +27,7 @@ public async Task SaveLixiPackage([FromBody]SaveLixiPackageReque [ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status404NotFound)] - public async Task> GetLixiPackage([FromRoute]LoanApplicationScenario scenario, CancellationToken token) + public async Task> GetLixiPackage([FromRoute]LoanApplicationScenario scenario, CancellationToken token) { var package = await _lixiPackageService.GetPackageAsync(scenario, token); if (package is null) return NotFound(); diff --git a/samples/MyCRM.Lodgement.Sample/Controllers/LodgementSubmissionController.cs b/samples/MyCRM.Lodgement.Sample/Controllers/LodgementSubmissionController.cs index 1525b70..68bf4bd 100644 --- a/samples/MyCRM.Lodgement.Sample/Controllers/LodgementSubmissionController.cs +++ b/samples/MyCRM.Lodgement.Sample/Controllers/LodgementSubmissionController.cs @@ -17,9 +17,9 @@ public LodgementSubmissionController(ILodgementClient lodgementClient) [ProducesResponseType(StatusCodes.Status400BadRequest, Type = typeof(ValidationError))] [ProducesResponseType(StatusCodes.Status500InternalServerError, Type = typeof(ProblemDetails))] [ProducesResponseType(StatusCodes.Status200OK, Type = typeof(SubmissionResult))] - public async Task Post(Package package, CancellationToken token) + public async Task Post(PostPackageRequest request, CancellationToken token) { - var resultOrError = await _lodgementClient.Submit(package, token); + var resultOrError = await _lodgementClient.Submit(request.LixiPackage,request.Country, token); if (resultOrError.IsError) { diff --git a/samples/MyCRM.Lodgement.Sample/Controllers/LodgementValidationController.cs b/samples/MyCRM.Lodgement.Sample/Controllers/LodgementValidationController.cs index 1b68b84..dcee8d1 100644 --- a/samples/MyCRM.Lodgement.Sample/Controllers/LodgementValidationController.cs +++ b/samples/MyCRM.Lodgement.Sample/Controllers/LodgementValidationController.cs @@ -14,9 +14,9 @@ public LodgementValidationController(ILodgementClient lodgementClient) [HttpPost(Routes.Validate)] [ProducesResponseType(StatusCodes.Status500InternalServerError, Type = typeof(ProblemDetails))] [ProducesResponseType(StatusCodes.Status200OK, Type = typeof(ValidationResult))] - public async Task Post(Package package, CancellationToken token) + public async Task Post(PostPackageRequest request, CancellationToken token) { - var validationResult = await _lodgementClient.Validate(package, token); + var validationResult = await _lodgementClient.Validate(request.LixiPackage,request.Country, token); return Ok(validationResult); } } diff --git a/samples/MyCRM.Lodgement.Sample/Mapping/ContractMapping.cs b/samples/MyCRM.Lodgement.Sample/Mapping/ContractMapping.cs index 53fbb57..24dd14d 100644 --- a/samples/MyCRM.Lodgement.Sample/Mapping/ContractMapping.cs +++ b/samples/MyCRM.Lodgement.Sample/Mapping/ContractMapping.cs @@ -9,6 +9,7 @@ public static SampleLodgementInformation MapToLodgementInformation(this PostTest return new SampleLodgementInformation { LoanId = random.Next(0, int.MaxValue), + Country = request.Country, Scenario = request.Scenario }; } diff --git a/samples/MyCRM.Lodgement.Sample/MyCRM.Lodgement.Sample.csproj b/samples/MyCRM.Lodgement.Sample/MyCRM.Lodgement.Sample.csproj index 6e6ce86..0596e91 100644 --- a/samples/MyCRM.Lodgement.Sample/MyCRM.Lodgement.Sample.csproj +++ b/samples/MyCRM.Lodgement.Sample/MyCRM.Lodgement.Sample.csproj @@ -13,6 +13,7 @@ + diff --git a/samples/MyCRM.Lodgement.Sample/Program.cs b/samples/MyCRM.Lodgement.Sample/Program.cs index bc69145..92f5282 100644 --- a/samples/MyCRM.Lodgement.Sample/Program.cs +++ b/samples/MyCRM.Lodgement.Sample/Program.cs @@ -1,14 +1,17 @@ +using System.ComponentModel; using System.Text.Json.Serialization; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Hosting; +using Newtonsoft.Json.Converters; var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(options => { options.Conventions.Add(new ApiExplorerConvention()); }) .AddXmlSerializerFormatters() - .AddJsonOptions(options => { options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); }); + .AddNewtonsoftJson() + .AddJsonOptions(options => { options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); });; IConfiguration config = builder.Configuration; builder.Services.AddServicesSample(config); diff --git a/samples/MyCRM.Lodgement.Sample/Services/Client/ILodgementClient.cs b/samples/MyCRM.Lodgement.Sample/Services/Client/ILodgementClient.cs index 3430fcc..fe0d9dc 100644 --- a/samples/MyCRM.Lodgement.Sample/Services/Client/ILodgementClient.cs +++ b/samples/MyCRM.Lodgement.Sample/Services/Client/ILodgementClient.cs @@ -1,9 +1,11 @@ -namespace MyCRM.Lodgement.Sample.Services.Client +using LMGTech.DotNetLixi; + +namespace MyCRM.Lodgement.Sample.Services.Client { public interface ILodgementClient { - Task Validate(Package package, CancellationToken token); - Task> Submit(Package package, CancellationToken token); + Task Validate(Package package,LixiCountry country, CancellationToken token); + Task> Submit(Package package,LixiCountry country, CancellationToken token); Task> SubmitSampleLixiPackage( SampleLodgementInformation lodgementInformation, CancellationToken token); } diff --git a/samples/MyCRM.Lodgement.Sample/Services/Client/LodgementClient.cs b/samples/MyCRM.Lodgement.Sample/Services/Client/LodgementClient.cs index e646a79..2c74303 100644 --- a/samples/MyCRM.Lodgement.Sample/Services/Client/LodgementClient.cs +++ b/samples/MyCRM.Lodgement.Sample/Services/Client/LodgementClient.cs @@ -1,7 +1,7 @@ using System.Net; using System.Net.Http; using System.Text; -using Microsoft.AspNetCore.Mvc.Formatters; +using LMGTech.DotNetLixi; using MyCRM.Lodgement.Common.Utilities; namespace MyCRM.Lodgement.Sample.Services.Client @@ -21,9 +21,9 @@ public LodgementClient(IHttpClientFactory httpClientFactory, _settings = options?.Value ?? throw new ArgumentNullException(nameof(options)); } - public async Task Validate(Package package, CancellationToken token) + public async Task Validate(Package package, LixiCountry country, CancellationToken token) { - using var response = await SendAsync(package, Routes.Validate, token); + using var response = await SendAsync(package,country, Routes.Validate, token); return response.StatusCode switch { HttpStatusCode.OK => await ReadResponse(response.Content), @@ -32,10 +32,10 @@ public async Task Validate(Package package, CancellationToken }; } - public async Task> Submit(Package package, + public async Task> Submit(Package package, LixiCountry country, CancellationToken token) { - using var response = await SendAsync(package, Routes.Submit, token); + using var response = await SendAsync(package,country, Routes.Submit, token); return response.StatusCode switch { HttpStatusCode.OK => await ReadResponse(response.Content), @@ -48,13 +48,10 @@ public async Task> Submit(Pack public async Task> SubmitSampleLixiPackage( SampleLodgementInformation lodgementInformation, CancellationToken token) { - if (lodgementInformation.Scenario == null) - throw new ArgumentNullException(nameof(lodgementInformation.Scenario)); - var package = await _lixiPackageService.CreatePackageAsync(lodgementInformation.LoanId, - lodgementInformation.Scenario, token); + var package = await _lixiPackageService.CreatePackageAsync(lodgementInformation, token); - using var response = await SendAsync(package, Routes.Submit, token); + using var response = await SendAsync(package, lodgementInformation.Country,Routes.Submit, token); return response.StatusCode switch { HttpStatusCode.OK => await ReadResponse(response.Content), @@ -64,12 +61,12 @@ public async Task> SubmitSampl }; } - private async Task SendAsync(Package package, string route, CancellationToken token) + private async Task SendAsync(Package package,LixiCountry country, string route, CancellationToken token) { if (package == null) throw new ArgumentNullException(nameof(package)); if (route == null) throw new ArgumentNullException(nameof(route)); - var payload = ObjectSerializer.Serialize(package, _settings.MediaType); + var payload = LixiPackageSerializer.Serialize(package,country, _settings.MediaType); var message = new HttpRequestMessage(HttpMethod.Post, $"Lodgement/{route}") { Content = new StringContent(payload, Encoding.UTF8, _settings.MediaType) diff --git a/samples/MyCRM.Lodgement.Sample/Services/LixiPackage/ILixiPackageService.cs b/samples/MyCRM.Lodgement.Sample/Services/LixiPackage/ILixiPackageService.cs index 5dafc97..e1bcd5b 100644 --- a/samples/MyCRM.Lodgement.Sample/Services/LixiPackage/ILixiPackageService.cs +++ b/samples/MyCRM.Lodgement.Sample/Services/LixiPackage/ILixiPackageService.cs @@ -1,8 +1,10 @@ -namespace MyCRM.Lodgement.Sample.Services.LixiPackage; +using LMGTech.DotNetLixi; + +namespace MyCRM.Lodgement.Sample.Services.LixiPackage; public interface ILixiPackageService { - Task CreatePackageAsync(int loanId, LoanApplicationScenario scenario, CancellationToken token = default); + Task CreatePackageAsync(SampleLodgementInformation lodgementInformation, CancellationToken token = default); Task GetPackageAsync(LoanApplicationScenario scenario, CancellationToken token = default); Task SavePackageAsync(Package package, LoanApplicationScenario scenario,bool beObfscuted=true, CancellationToken token = default); diff --git a/samples/MyCRM.Lodgement.Sample/Services/LixiPackage/LixiPackageService.cs b/samples/MyCRM.Lodgement.Sample/Services/LixiPackage/LixiPackageService.cs index baef417..d621d13 100644 --- a/samples/MyCRM.Lodgement.Sample/Services/LixiPackage/LixiPackageService.cs +++ b/samples/MyCRM.Lodgement.Sample/Services/LixiPackage/LixiPackageService.cs @@ -1,4 +1,4 @@ - +using LMGTech.DotNetLixi; using MyCRM.Lodgement.Common.Utilities; using Newtonsoft.Json.Linq; @@ -7,15 +7,15 @@ namespace MyCRM.Lodgement.Sample.Services.LixiPackage; public class LixiPackageService : ILixiPackageService { private readonly string _packagSamplesBasePath =Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "LixiPackageSamples"); - - public async Task CreatePackageAsync(int loanId, LoanApplicationScenario scenario, + private readonly string[] _propertiesToObfuscate = { "CompanyName", "Email", "Number", "ABN", "WebAddress", "BusinessNumber" }; + public async Task CreatePackageAsync(SampleLodgementInformation lodgementInformation, CancellationToken token = default) { - var package = await GetPackageAsync(scenario, token); + var package = await GetPackageAsync(lodgementInformation.Scenario, token); package.ProductionData = false; - package.Content.Application.Overview.BrokerApplicationReferenceNumber = loanId.ToString(); - package.Content.Application.UniqueID = $"LoanScenario-{loanId}"; + package.Content.Application.Overview.BrokerApplicationReferenceNumber = lodgementInformation.LoanId.ToString(); + package.Content.Application.UniqueID = $"LoanScenario-{lodgementInformation.LoanId}"; return package; } @@ -53,10 +53,9 @@ private async Task SavePackageToJsonAsync(Package package,string path,bool beObf try { string jsonObj =JsonConvert.SerializeObject(package); - string[] propertiesToObfuscate = { "CompanyName", "Email", "Number", "ABN", "WebAddress" }; - string obfuscateJsonObj = ObjectSerializer.ObfuscateJson(JToken.Parse(jsonObj),propertiesToObfuscate); - await File.WriteAllTextAsync(path,obfuscateJsonObj, token); - + if(beObfuscated) + jsonObj = LixiPackageSerializer.ObfuscateJson(JToken.Parse(jsonObj),_propertiesToObfuscate); + await File.WriteAllTextAsync(path,jsonObj, token); } catch (Exception e) {